Haut de page

PHP, MySQL sur Mac OS X


Cette page est destinée aux utilisateurs plus expérimentés de MacOS X ou aux personnes venant du monde Unix. Elle contient des informations pour l'activation de PHP et l'installation de MySQL.


Quoi de neuf ?


PHP


Problèmes de connexion en localhost via php sur MacOS 10.4.4

Remplacer localhost par 127.0.0.1

par dans config.inc.php de PhpMysql

$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname or IP address


Activation de php 5.3 sur MacOS X v10.6

Pour l'activation, même chose qu'en 10.5 (ci-dessous)

Activation de php 5.3 sur MacOS X v10.6

Pour l'activation, même chose qu'en 10.5 (ci-dessous)
Si vous utilisez la fonction date() de php, à partir de php 5.3, il faut définir le timezone sinon vous aurez le message suivant: "Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function.". dans php.ini (en recopiant le sudo cp /etc/php.ini.default /etc/php.ini)
dans le fichier /etc/php.ini, remplacer ;date.timezone = par date.timezone = "Europe/Paris"

Activation de php 5.2.4 sur MacOS X v10.5

La configuration du serveur Web est fait de manière à ne pas changer le fichier /etc/httpd/httpd.conf de base. Cela permet d'effectuer des mises à jours de système sans avoir à reconfigurer le serveur. Sur MacOS X v10.5, les fichiers de configuration d'apache se trouve dans /etc/apache2. Les fichiers de configuration des utilisateurs se trouve dans le sous répertoire users. Il y a une fichier php5.conf qui se trouve dans le sous-répertoire other. Pour activer php, il faut rajouter la ligne :

LoadModule php5_module libexec/apache2/libphp5.so

au début du fichier /etc/apache2/other/php5.conf. Il faut ensuite désactiver et activer le Partage Web des Préférences Système...

Attention : lors de mise à jour de MacOS 10.4 à 10.5, les fichiers de configuration d'Apache 1.3 situés /etc/httpd/users/*.conf doivent être transférés dans /etc/apache2/users/
sudo mv /etc/httpd/users/*.conf /etc/apache2/users/.


Activation de php 4.1.2 sur MacOS X 10.2, 10.3, 10.4

[MàJ] MacOS X 10.3 incorpore la version 4.3.2, certains scripts PHP risquent de ne plus marcher, il faut éventuellement copier le fichier /etc/php.ini.default -> /etc/php.ini en mettant register_globals = On en attendant de corriger les scripts.

La configuration du serveur Web est fait de manière à ne pas changer le fichier /etc/httpd/httpd.conf de base. Cela permet d'effectuer des mises à jours de système sans avoir à reconfigurer le serveur. Les paramétrages du serveur sont pour cela situés dans le répertoire /etc/httpd/users/ dont l'ensemble des fichiers sont automatiquement inclus à la fin de /etc/httpd/httpd.conf.
-rw-r--r-- 1 root wheel 268 Apr 14 22:40 php.conf

Dans le fichier /etc/httpd/users/php.conf

# # Activation de PHP # LoadModule php4_module libexec/httpd/libphp4.so #AddModule mod_php4.c AddType application/x-httpd-php .php AddType application/x-httpd-php .php3 AddType application/x-httpd-php-source .phps <IfModule mod_dir.c><br> DirectoryIndex index.php index.php3 index.html </IfModule>

Remarque : La configuration d'Apache (fichier /etc/httpd/httpd.conf ) de MacOS X 10.2 a fait disparaître les lignes suivantes par rapport à 10.1.5 !

# For example, the PHP 3.x module (not part of the Apache distribution - see # http://www.php.net) will typically use: # #AddType application/x-httpd-php3 .php3 #AddType application/x-httpd-php3-source .phps # # And for PHP 4.x, use: # #AddType application/x-httpd-php .php #AddType application/x-httpd-php-source .phps


Installation de MySQL 3.23.56 sur MacOS X 10.2 [avril 2003]

[MàJ] Cela fonctionne aussi en 3.23.57 [juin 2003], 3.23.58 sur MacOS X 10.3 [novembre 2003].

Pour faire la mise à jour, ne par oublier de déplacer le dossier data.

Sur MacOS X 10.2, utilisateur et le groupe mysql existent déjà. MySQL utilise le port TCP 3306 par défault.

Première installation

# On passe en root pour les commandes suivantes
sudo -s
# Installe l'arborescence MySQL en /usr/local

cd /usr/local/ gunzip /mysql-max-3.23.56-apple-darwin6.4-powerpc.tar.gz tar xvf /Users/.../mysql-max-3.23.56-apple-darwin6.4-powerpc.tar # Fait un lien symbolique mysql vers la version installée ln -s mysql-max-3.23.56-apple-darwin6.4-powerpc mysql exit

Configuration manuelle

sudo -s cd /usr/local/mysql # Crée les bases de données de configuration de MySQL (à n'effectuer qu'à la toute première installation) scripts/mysql_install_db

# Change les droits d'accès et ne laisse que l'utilisateur mysql accéder au dossier data
# drwxr-x--- 4 mysql mysql 136 Mar 14 00:06 data

chown -R root . chown -R mysql data chgrp -R mysql . exit

Lancement manuel du démon MySQL

# Lancement manuel du démon mysqld au nom de l'utilisateur msql

sudo -s cd /usr/local/mysql bin/safe_mysqld --user=mysql& # Plus besoin d'être root pour la suite exit

Configuration et lancement automatique du démon MySQL (à la MacOS X Server)

MacOS X Server 10.2.
MacOS X 10.2.

Si on veut que le lancement se fasse automatiquement au démarrage de la machine, il va falloir le mettre dans les scripts d'installation.

Récupérer le fichier d'installation StartUp-MySQL.tar.gz que j'ai créé.

gunzip StartUp-MySQL.tar.gz cd /Library/StartupItems/ cela peut être aussi mis dans /System/Library/StartupItems/ sudo tar xvf StartUp-MySQL.tar

rajouter MYSQL=-YES- dans le fichier /etc/hostconfig

Redémarrer la machine, MySQL démarrera automatiquement.

Pour effectuer cela MacOS X Server utilise l'utilitaire "Gestionnaire MySQL" (icône en couleur ne respectant donc pas le guide de style :-). Cette application devrait pouvoir être modifiée (Contents/Resources/tool_strings) afin de s'appliquer à l'installation dans /usr/local/mysql.

Voici le fichier Contents/Resources/tool_strings :

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>adminLaunchPath</key> <string>/usr/bin/mysqladmin</string> <key>configAttribute</key> <string>MYSQL=</string> <key>configFilePath</key> <string>/etc/hostconfig</string> <key>configYesAttribute</key> <string>MYSQL=-YES-</string> <key>dbInstallPath</key> <string>/var/mysql/mysql</string> <key>dbInstallScript</key> <string>/usr/bin/mysql_install_db</string> <key>no</key> <string>-NO-</string> <key>ping</key> <string>ping</string> <key>serverLaunchPath</key> <string>/usr/bin/safe_mysqld</string> <key>shutdown</key> <string>shutdown</string> <key>user</key> <string>--user=mysql</string> <key>yes</key> <string>-YES-</string> <key>chown</key> <string>/usr/sbin/chown</string> </dict>

Mise en place d'un mot de pase global aux bases de données MySQL

# mise en place du mot de passe root de mysql (cela n'a rien à voir avec le mot de passe root de la machine)
./bin/mysqladmin -u root password 'mot_de_passe'

Pour supprimer le mot de passe

./bin/mysqladmin -u root -p password ''

puis taper le mot de passe actuel

Pour effectuer les test sans sql-bench, par exemple ./run-all-tests, il faut installer l'interface perl / base de données sinon on obtient un message d'erreur indiquant : Can't locate DBI.pm --- A FAIRE ---


Activation de MySQL 4.1.13a sur MacOS X Server 10.4.5 [février 2006]

sudo -s mysql_install_db cd /var/mysql chown -R mysql * /usr/bin/mysql_safe & /usr/bin/mysqladmin -u root password 'yyyy' ou /usr/local/mysql/bin/ comme chemin


Passage de MySQL 4.1.18 à 5.0.51a [mars 2008]

Exporter les tables mysql dans des fichier .sql

/usr/local/mysql/bin/mysqldump --flush-logs --add-drop-table -u root --password="•••" base table > fichier.sql

Arrêter le serveur actuel

sudo /usr/local/mysql/support-files/mysql.server stop

Télécharger le fichier .dmg de la bonne version (par exemple mysql-5.0.51a-osx10.5-x86_64.dmg). L'installer.

Fichiers avant l'installation :

ls -al /usr/local/

lrwxr-xr-x 1 root wheel 44 13 jan 13:53 mysql -> mysql-standard-4.1.18-apple-darwin8.3.1-i686 drwxr-xr-x 19 root wheel 646 28 jan 2006 mysql-standard-4.1.18-apple-darwin8.3.1-i686

ls -al /usr/local/mysql

drwxr-xr-x 19 root wheel 646 28 jan 2006 . drwxr-xr-x 16 root wheel 544 13 jan 13:53 .. -rw-r--r-- 1 root wheel 19071 27 jan 2006 COPYING -rw-r--r-- 1 root wheel 5712 28 jan 2006 EXCEPTIONS-CLIENT -rw-r--r-- 1 root wheel 7994 28 jan 2006 INSTALL-BINARY -rw-r--r-- 1 root wheel 1379 27 jan 2006 README drwxr-xr-x 54 root wheel 1836 3 oct 21:17 bin -rwxr-xr-x 1 root wheel 801 28 jan 2006 configure drwxr-x--- 15 _mysql wheel 510 5 mar 17:32 data drwxr-xr-x 4 root wheel 136 28 jan 2006 docs drwxr-xr-x 61 root wheel 2074 28 jan 2006 include drwxr-xr-x 11 root wheel 374 28 jan 2006 lib drwxr-xr-x 3 root wheel 102 28 jan 2006 man drwxr-xr-x 12 root wheel 408 28 jan 2006 mysql-test drwxr-xr-x 3 root wheel 102 28 jan 2006 scripts drwxr-xr-x 5 root wheel 170 28 jan 2006 share drwxr-xr-x 31 root wheel 1054 28 jan 2006 sql-bench drwxr-xr-x 14 root wheel 476 28 jan 2006 support-files drwxr-xr-x 21 root wheel 714 28 jan 2006 tests

Fichiers après l'installation :

ls -al /usr/local/

lrwxr-xr-x 1 root wheel 28 5 mar 17:59 mysql -> mysql-5.0.51a-osx10.5-x86_64 drwxr-xr-x 19 root wheel 646 14 jan 09:20 mysql-5.0.51a-osx10.5-x86_64

Démarrage du serveur, mise en place du mot de passe root et création de la base

cd /usr/local/mysql sudo ./support-files/mysql.server start ./bin/mysqladmin -u root password '•••' #Creation des bases ./bin/mysql -u root --password="•••" mysql> CREATE DATABASE base; mysql> quit

Importation des tables

/usr/local/mysql/bin/mysql -u root --password="•••" base < fichier.sql

En cas de client trop ancien

Si vous utiliser un MacOS X Server 10.3, votre version php/mysql intégré dans apache ne reconnait pas les nouveau formats de mots de passe de MySQL. Voic obtiendrez l'erreur suivante au moment du chargement d'une page web :

Client does not support authentication protocol requested by server; consider upgrading MySQL client

Sans rien changer à php/mysql, vous pouvez mettre l'ancien format de mot passe au root de mysql avec la commande suivante :

/usr/local/mysql/bin/mysql -u root --password='•••' mysql> set password = old_password('•••'); mysql> quit

Passage à une version antérieure [juillet 2010]

Si vous avez installé par erreur une version récente, lors de l'installation de la version plus ancienne, il faut supprimer le lien symbolique rm /usr/local/mysql ainsi que le contenu du répertoire pointé par exemple rm -Rf /usr/local/mysql-5.1.41-osx10.5-x86_64. Ne pas oublier de supprimer le paquet installé rm -Rf /Library/Receipts/mysql-5.1.41-osx10.5-x86_64.pkg


Interfaces SQL, MySQL, Postgress

FileMaker Pro

ODBC


Références:

Voir aussi

Téléchargement mysql http://dev.mysql.com/downloads/
http://developer.apple.com/internet/
PHP3 http://www.math.ohio-state.edu/~ccunning/php/
MySQL http://www.prnet.de/RegEx/mysql.html
WebDAV http://www.simonganiere.ch/mac/webdave.html
Interface WebDAV http://www.webdav.org/goliath/
Installe dernière version http://www.serverlogistics.com/mysql.php
Documentation PHP et MySQL en Français http://www.nexen.net/docs/
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
sudo /usr/libexec/locate.updatedb

2003-2014



FutureShare

 | 

Glossaire

 |