Installer Apache, PHP et MySQL sous MacOSX
Par Rémi TAUPIN le samedi 18 juin 2011, - Lien permanent
Pour faire du développement web avec un
Mac, on peut soit installer MAMP, soit activer apache/php déjà présents dans la
machine et installer MySQL. Voici comment mettre en œuvre rapidement la
deuxième solution.
Pour se faciliter la tache et éviter de commencer les commandes par sudo, on va passer en root :
MacBook:~ Remi$ sudo su -
root
Password:********
Activation de apache et php
Paramétrage
Apache et PHP sont déjà installés dans Snow Leopard. Il suffit de les configurer et de les activer.
On commence par activer la prise en charge de php dans apache :
MacBook:~ root# vi /etc/apache2/httpd.conf
#Décommenter la ligne ci-dessous :
LoadModule php5_module libexec/apache2/libphp5.so
Créer le fichier /etc/php.ini et le rendre exécutable :
MacBook:~ root# cp
/etc/php.ini.default /etc/php.ini
MacBook:~
root# chmod 666 /etc/php.ini
Ensuite, dans le fichier /etc/php.ini, trouver la ligne
;date.timezone =
et la transformer en
date.timezone = Europe/Paris
Si vous êtes dans une autre région, il faudra adapter cette ligne en fonction des infos de timezone que vous pourrez trouver ici : http://php.net/manual/en/timezones.php.
Toujours dans le même fichier, on va préparer l'installation de MySQL en remplaçant les 3 occurrences de /var/mysql/mysql.sock par /tmp/mysql.sock. Ca évitera un message d'erreur au démarrage de MySQL quand on l'aura installé.
On peut maintenant lancer apache avec la commande :
MacBook:~ root# apachectl start
Pour vérifier si ça fonctionne, il faut ouvrir la navigateur internet et entrer l'adresse : http://localhost ou http://127.0.0.1. Une page avec le message "It Works" doit s'afficher.
Pour info, cette page se trouve dans /Library/WebServer/Documents/index.html.en. Pour le changer, il faudra modifier la directive DocumentRoot du fichier /etc/apache2/httpd.conf et redémarrer apache.
Téléchargement et installation de Weblock
Weblock est une interface simple pour configurer apache via les Préférences Système de MacOSX.
Installation de MySQL
Téléchargement et installation
Télécharger le .dmg de MySQL Community Serveur ici : http://dev.mysql.com/downloads/mysql/ puis ouvrir le package.
Installer dans l'ordre les éléments suivant :
- MySQL
- StartUp Item
- Preference Pane
Note : le fait d'installer StartUp Item crée entre autre le fichier /Library/StartupItems/MySQLCOM/MySQLCOM qui contient le script d’arrêt/démarrage automatique du serveur.
Ouvrir les Préférences Système, démarrer le serveur MySQL, et vérifier que tout fonctionne bien avec la commande :
MacBook:~ root# /usr/local/mysql/bin/mysql
Arrêter le serveur en appuyant sur ctrl-C
Dans les Préférences Système, décocher la case Automatically Start MySQL Server on Startup.
Paramétrage de MySQL
On commence par inclure les binaires et scripts utiles dans le path en créant le fichier /etc/paths.d/mysql :
MacBook:~ root# vi /etc/paths.d/mysql
/usr/local/mysql/bin
/usr/local/mysql/support-files
Il suffit alors de sortir et de relancer un terminal root pour que le nouveau path soit pris en compte.
Ensuite, on renseigne le mot de passe root du serveur :
MacBook:~ root# mysqladmin -u root password 'MotDePasse'
Le serveur MySQL est maintenant prêt. Pour le lancer ou l’arrêter à la main il faudra exécuter la commande :
MacBook:~ root# mysql.server start|stop
La commande ci-dessous est un script qui se trouve dans /usr/local/mysql/support-files, et qui est exécutée automatiquement par /Library/StartupItems/MySQLCOM/MySQLCOM si on a coché la case Automatically Start MySQL Server on Startupdans les Préférences Système. (Note : si cette case est cochée, la directive MYSQLCOM du fichier /etc/hostconfig est -YES- au lieu de -NO-.)
Comme nous ne travaillons pas sur un serveur, il vaut mieux le lancer à la main quand on en a besoin, cela permet d'économiser des ressources,mais aussi la batterie si c'est un portable.
Gestion des domaines (sites) virtuels
Lorsqu'on tape l'adresse http://www.antiseches.net dans un navigateur, le serveur DNS résous cette URL en adresse IP et le navigateur se connecte au serveur web en utilisant cette adresse IP. Nous allons faire en sorte que cette URL soit redirigée en local lorsque on utilise notre environnement de développement. Pour cela, on va mettre l'adresse IP du serveur en dur dans le fichier
Pour que ce soit plus simple, on va créer créer 2 copies de /etc/hosts : une normale que nous appellerons /etc/hosts.nodev et une avec l'adresse IP locale pour www.antiseches.net que nous nommerons /etc/hosts.dev. Puis nous ferons un script qui modifiera ce fichier /etc/host lorsque les serveurs apache et mysql démarrerons et s’arrêteront :
MacBook:~ root# cp
-p/etc/host /etc/hosts.dev
MacBook:~ root# cp
-p/etc/host /etc/hosts.nodev
MacBook:~
root# echo'127.0.0.1 www.antiseches.net' >>
/etc/hosts.dev
En parallèle, il faut éditer le fichier /etc/apache2/extra/httpd-vhosts.conf pour configurer l’hôte virtuel www.antiseches.net en rajoutant les lignes ci-dessous à la fin :
MacBook:~ root# vi/etc/apache2/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot
"/Users/Remi/Sites/www.antiseches.net"
ServerName www.antiseches.net
</VirtualHost>
Il ne faudra pas oublier de configurer apache pour qu'ils prenne en charge les domaines virtuels car ce n'est pas le cas par défaut. Pour cela, décommenter la ligne suivante de /etc/apache2/httpd.conf :
Include /private/etc/apache2/extra/httpd-vhosts.conf
Démarrage et arrêt de l'ensemble Apache/PHP/MySQL
Nous allons créer un script tout simple qui va en une seule commande :
- Démarrer/stopper Apache et MySQL
- Configurer le fichier /etc/hosts
MacBook:~ root# vi/usr/local/mysql/support-files/webserver
#!/bin/sh
# /usr/local/mysql/support-files/webserver
# Ce script permet de démarrer et de stopper l'environnement de
développement
# N'hésitez pas a l'utiliser et a l’améliorer...
# Remi TAUPIN - 06/2011
#
# Donne la syntaxe si on oublie les paramètres
if [ -z $1 ] ; then
echo "Usage: $0 [start|stop|restart] "
exit 1
fi
#
# Initialise les fonctions de base des scripts de demarrage
test -r /etc/rc.common || exit 1
. /etc/rc.common
#
#
# Démarrage...
StartService ()
{
# Copie de /etc/hosts.dev ->
/etc/hosts
ConsoleMessage "Setting
/etc/hosts..."
cp -p /etc/hosts.dev /etc/hosts
# Démarrage de apache
ConsoleMessage "Starting Apache
WebServer..."
/usr/sbin/apachectl start
# Démarrage de mysql
/usr/local/mysql/support-files/mysql.server start
}
#
#
# Arret...
StopService ()
{
# Rétablissement de /etc/hosts
ConsoleMessage "Restoring
/etc/hosts..."
cp -p /etc/hosts.nodev /etc/hosts
# Arret de apache
ConsoleMessage "Stopping Apache
WebServer..."
/usr/sbin/apachectl stop
# Arret de mysql
/usr/local/mysql/support-files/mysql.server stop
}
#
#
# Redémarrage...
RestartService ()
{
StopService
StartService
}
#
#
# Lancement des services...
RunService "$1"
Il suffira maintenant de lancer le serveur avec la commande :
MacBook:~ root# sudo webserver start
Pour l’arrêter, on lancera la commande :
MacBook:~ root# sudo webserver stop