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