Étant développeur front-office de métier, je n’ai pas souvent l’occasion de me mettre les mains dans le cambouis pour tout ce qui est configuration serveur.
J’ai passé le plus clair de mon temps à utiliser MAMP et je souhaitais donc pouvoir m’en passer et utiliser les ressources natives installées d’origine avec mon système d’exploitation.
Beaucoup de sites internet proposent des tutoriaux fort utiles qui m’ont permis de m’affranchir de cette tâche (cf liens en bas de l’article), j’ai cependant un peu bataillé pour compiler l’ensemble des informations et arriver à un résultat qui me satisfasse.
Apache, Php, Mysql
Avant tout activez le partage web dans :
Menu Pomme >> Préférences Système >> Partage
cliquez sur la checkbox « Partage web », elle est coché, apache est démarré, elle est décoché, apache est arrêté ainsi vous pouvez redémarré visuellement votre serveur local.
Ouvrez ensuite une nouvelle fenêtre du finder puis allez dans le menu :
Aller >> Aller au Dossier …
tapez : /private/ puis validez.
Pour plus de facilité d’accès aux fichiers à modifier, je vous propose de vous créez un dossier sur le bureau et d’y glisser déposer les raccourcis de fichiers suivants (en maintenant les boutons pomme/cmd et alt enfoncé lors du glissé déposé) :
- /private/etc/apache2/httpd.conf
- /private/etc/apache2/extras/httpd-vhosts.conf
- /private/etc/php.ini
- /private/etc/hosts
Nous allons maintenant dire à apache que nous souhaitons activer php sur le serveur local, pour cela éditez le fichier « httpd.conf » Les lignes suivante ne doivent pas êtres commentés (comprendre un # en début de ligne, enlevez le si il y est).
- LoadModule php5_module
- Include /private/etc/apache2/extra/httpd-vhosts.conf
La première ligne correspond au support du module php5 pour votre serveur apache local. Depuis la version 2 d’apache, la déclaration des « vhosts » est importé depuis un fichier séparé « httpd-vhosts.conf » .Sauvegardez puis fermez le fichier httpd.conf, une fenêtre s’ouvre vous invitant à rentrer le mot de passe de votre compte utilisateur mac, insérez le puis validez.
Ensuite ouvrez le fichier php.ini, c’est le fichier de configuration de php, nous le modifions afin de donner le chemin vers le socket de mysql et d’en définir les ports par défaut. Remplacez donc les lignes suivantes par leur pendant :
- mysql.default_port = par mysql.default_port =3306
- mysql.default_socket = par mysql.default_socket = /private/var/mysql/mysql.sock
- memory_limit = 8M par memory_limit = 16M
Nous allons maintenant vérifier que l’utilisateur « root » de mysql possède bien un mot de passe.
Pour cela, ouvrez votre application Terminal que vous trouverez dans le dossier Applications/Utilitaires/Terminal.app
entrez la commande suivante en remplaçant « mon_password_pour_root » par votre mot de passe entre guillemets :
mysqladmin -u root password "mon_password_pour_root"
Si vous avez l’erreur suivante qui s’affiche c’est que l’utilisateur root possède déjà un mot de passe :
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
Configuration des vhosts
Pour chaque nouveau nom de domaines virtuels nous avons trois manipulations à effectuer :
- Ajout d’un bloc de définition de dossier dans le fichier httpd-vhosts.conf
- Ajout d’un bloc de définition de nom de domaine virtuel dans le fichier httpd-vhosts.conf
- Ajout du nom de domaine dans le fichier hosts
Ouvrez donc le fichier « httpd-vhosts.conf », nous allons commencer par modifier une fois pour toute la ligne suivante :
Remplacez NameVirtualHost *:80 par NameVirtualHost *
Ensuite le but du jeu est de définir à la fois le dossier et le nom de domaine virtuel.
Il nous faut donc choisir un dossier sur l’ordinateur qui soit la référence de la racine lié au nom de domaine virtuel.
Avec le temps j’ai pris l’habitude de m’organiser dans mes fichier de la manière suivante :
/Users/monNom/Documents/www/nomprojet/www/
Pour lequel monNom correspond à mon nom d’utilisateur et nomprojet correspond au nom du projet sur lequel je dois travailler.
Créez donc un dossier « monsitelocal » à l’emplacement suivant :/Users/monNom/Documents/ tel qu’on puisse y accéder /Users/monNom/Documents/monsitelocal/ en pensant bien à remplacer « monNom » par votre nom d’utilisateur mac.
Retournez ensuite à votre fichier « httpd-vhosts.conf » ajoutez les blocs suivants en suivant les indications qui suivent.
# déclaration du dossier et des droits <Directory "/Users/etiennesamson/Documents/monsitelocal"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> # déclaration du vhost monsitelocal <VirtualHost *> DocumentRoot "/Users/monNom/Documents/monsitelocal" ServerName monsitelocal ServerAlias www.monsitelocal.com <\VirtualHost>
Pensez à bien changer « monNom » par votre nom d’utilisateur mac, ouvrez ensuite le fichier hosts
entre les lignes 255.255.255.255 broadcasthost et ::1 localhost insérez la ligne suivante :
127.0.0.1 www.monsitelocal.com
Il vous est également possible de changer l’ip 127.0.0.1 par votre ip personnelle que vous trouverez dans le panneau Partage Web depuis le Menu Pomme >> Préférences Système >> Partage
Avec cette technique je peux, depuis Parallels Desktop accéder à mon serveur local en modifiant chaque fichier hosts de mes machines virtuelles, c’est extrêmement pratique pour toutes mes vérifications navigateurs.
Sauvegardez votre fichier hosts, votre mot de passe peut vous être demandé.
Normalement à ce stade vous devriez pouvoir accéder à votre dossier sur votre serveur local depuis l’url http://www.monsitelocal.com.
Ressources
- Virtual hosts, PHP and MySQL on Mac OS X 10.5 Leopard sur le site de 456bereastreet,
- Mysql modifier le mot de passe root sur le site de Benjamin Baudouin,
- Apache Virtual Host documentation sur sur la doc Apache.
Comme vous pouvez le voir, je ne suis pas administrateur réseau, donc si vous avez des remarques, des conseils ou des suggestions pour améliorer le tout, je suis preneur avec grand plaisir.
Par avance Merci !