Comment installer une stack PHP/MySQL sur Mac OS X

Publié le 14 Juin 2014

J'ai récemment eu l'occasion de travailler sous mac et pour commencer il a fallu installer tout l'environnement PHP/MySQL.

Comme OS X est basé sur Unix on retrouve vite ses marques.

Apache

Ainsi Apache est déjà installé par défaut.

Pour vérifier qu'il fonctionne il suffit d'ouvrir un navigateur avec l'adresse: http://localhost

Si un magnifique "It works!" s'affiche c'est que le serveur apache est démarrer. Sinon il suffit de le démarrer avec la commande:

sudo apachectl start

PHP

PHP est également déjà installé mais il n'est pas activé. Pour l'activer il faut éditer la configuration apache qui se trouve dans

/etc/apache2/httpd.conf

Avant de modifier le fichier il est plus prudent d'en faire une copie (au cas où).

Ensuite de le fichier il suffit de décommenter (enlever le #) la ligne suivante pour qu'elle ressemble à ça:

LoadModule php5_module libexec/apache2/libphp5.so

Ensuite il faut redémarrer Apache pour prendre en compte les changements:

sudo apachectl restart

À partir de là Apache/PHP fonctionne. Par défaut le dossier contenant les sites webs se trouvent dans 

/Library/WebServer/Documents

Il suffit de placer un fichier php dans ce répertoire pour qu'il soit servi par Apache.

Pour utiliser un autre répertoire (e.g. /var/www) il faut modifier la ligne suivante dans /etc/apache2/httpd.conf

DocuementRoot "/var/www"

Puis redémarrer Apache.

MySQL

En revanche MySQL n'est pas du tout présent. Il va falloir l'installer from scratch. Le plus simple est de l'installer à partir d'un fichier .dmg disponible sur le site de MySQL: http://dev.mysql.com/downloads/mysql/

MySQL peut également être installé à partir d'un gestionnaire de package tel que homebrew avec la commande:

brew install mysql

Si vous avez opté pour l'installation à partir du .dmg pensez à mettre à jour votre $PATH en y incluant /usr/local/mysql/bin.

Après l'installation il est recommandé de lancer 

mysql_secure_installation

Pour démarrer le serveur mysql:

mysql.server start

Voilà mysql est maintenant installé mais il n'est pas encore accessible depuis un fichier PHP. Pour cela il faut modifier la configuration PHP et activé l'extension MySQL.

Vérifier que le fichier /etc/php.ini.default contient bien une des deux lignes suivantes (non commenté - sans ; au début)

extension=php_mysql.dll
extension=php_mysqli.dll

Normalement l'extension mysqli remplace mysql mais certain sites utilisent encore l'extension mysql.

Une fois le fichier modifier il faut encore une fois redémarrer Apache.

Maintenant tout est en place pour que cela fonctionne mais il y a de fortes chances que vous rencontriez un problème pour se connecter au mysql local que nous venons d'installer.

En fait le problème est que pour les connections locales les communications s'effectue à l'aide d'un fichier .sock est que php ne va pas chercher le fichier là où il se trouve.

Par exemple MySQL crée le fichier mysql.sock dans /tmp/mysql.sock alors que PHP va le chercher dans /var/mysql/mysql.sock

Le moyen le plus simple pour résoudre le problème est de créer un lien symbolique dans /var/mysql:

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Rédigé par Bliz

Publié dans #Php

Repost 0
Commenter cet article