dokkun

Installer Apache, MySQL et PHP sous OSX sans passer par MAMP

1 message dans ce sujet

Venant tout juste de changer de Mac, je découvre Mountain Lion et je me suis dit qu’il était temps de mettre un peu d’ordre dans mon environnement de développement. J’avais l’habitude d’utiliser MAMP pour le développement web, car celui-ci a l’avantage indéniable de fournir un package prêt à l’emploi, le tout en un clic. Revers de la médaille, il nous rend tributaire des versions de logiciels qu’il propose et s’intègre parfois mal avec d’autres environnements. Ainsi, nous verrons dans ce tutoriel comment mettre en place un stack AMP (Apache, MySQL et PHP) sous Mac OSX simplement et rapidement, le tout en utilisant au maximum les outils déjà intégrés au système.

Note : ce tutoriel a été réalisé sous Mountain Lion, mais il devrait fonctionner pour les autres versions. En effet, les versions précédentes (Snow Leopard et Lion) possèdent, elles aussi un serveur Apache intégré. Si vous rencontrez des difficultés, n’hésitez pas à laisser un commentaire à la suite de l’article.

Installer Apache

Première bonne nouvelle, Apache est déjà intégré à votre système. Pour en avoir la preuve, lancez donc la commande suivante :

 
1
httpd -v

Le retour devrait ressembler à ceci :

 
1
2
Server version: Apache/2.2.22 (Unix)
Server built:   Aug 24 2012 17:16:58

L’administration d’apache se fait grâce aux commandes suivantes :

 
1
2
3
4
sudo apachectl start
sudo apachectl restart
sudo apachectl stop
sudo apachectl graceful # relance apache en attendant la fermeture des connexions établies

 

Le document root

En vous rendant sur http://localhost, vous devriez voir le célèbre “It Works”.

Pour le moment, le document root se trouve dans :

 
1
/Library/WebServer/Documents/

Sur les anciennes versions de l’OS, les utilisateurs disposaient d’un dossier Sites dans leur répertoire personnelet l’on pouvait accéder à celui-ci via l’adresse http://localhost/~user (notez l’utilisation du tilde dans l’adresse).

Nous allons utiliser ce système. On commence donc par créer le répertoire Sites s’il n’existe pas déjà (c’est votre cas si vous êtes sous Mountain Lion).

 
1
mkdir ~/Sites

Création d’un fichier de configuration pour votre utilisateur :

 
1
sudo vim /etc/apache2/users/votreuser.conf

Note : si vous ne connaissez pas votre utilisateur, lancer la commande suivante :

 
1
whoami

On y insère la configuration suivante :

 
1
2
3
4
5
6
7
8
<Directory "/Users/votreuser/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
 
Include /Users/votreuser/Sites/httpd-vhosts.conf

Le include à la ligne 8 permet d’apporter un peu de commodités dans la gestion des vhosts car le fichier de conf sera disponible à la racine de ~/Sites, donc accessible rapidement. Notez que vous pourriez très bien mettre vos vhosts à la suite du fichier votreuser.conf.

Il faut donc créer le fichier alloué à la configuration des vhosts :

 
1
touch ~/Sites/httpd-vhosts.conf

On vérifie les permissions du fichier “votreuser.conf”  qui doivent être à 644 :

 
1
sudo chmod 644 /etc/apache2/users/robin.conf

On test les changements :

 
1
2
3
4
sudo apachectl restart
cd ~/Sites/
touch index.html
echo "It works from my personal folder" > index.html

Rendez vous sur http://localhost/~votreuser/index.html. La page devrait afficher votre texte “It works from my personal folder”.

Édition d’un vhost

Les vhosts vous permettront de tester plusieurs sites en utilisant des noms de domaine en local.

On édite  le fichier httpd-vhosts.conf :

 
1
vim ~/Sites/httpd-vhosts.conf

On y ajoute la configuration suivante :

 
 
NameVirtualHost *:80
<Directory "/Users/votreuser/Sites">
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
 
<VirtualHost _default_:80>
  ServerName localhost
  DocumentRoot /Library/WebServer/Documents
</VirtualHost>
 
<VirtualHost *:80>
  ServerName site1.local
  DocumentRoot "/Users/votreuser/Sites/site1"
</VirtualHost>

La dernière section est celle que vous devrez copier/coller pour créer autant de vhost que nécessaire.

Bien sûr, nous ne disposons pas d’un nom de domaine réel pour tester le vhost et nous n’en avons d’ailleurs pas besoin. Nous allons tout simplement ajouter un host dans le fichier /etc/hosts :

 
1
sudo vim /etc/hosts

On ajoute la ligne suivante (à la fin du fichier) :

 
1
127.0.0.1 site1.local

Cette ligne aura pour effet de faire pointer le nom de domaine site1.local sur localhost.

Pour tester, l’on créé un dossier site1 dans ~/Sites :

 
 
mkdir ~/Sites/site1
touch ~/Sites/site1/index.html
echo "It Works from site1" > ~/Sites/site1/index.html

On relance Apache :

 
1
sudo apachectl restart

On se rend sur http://site1.local pour tester le résultat.

Installer PHP

Comme pour Apache, la procédure se révèle simplissime. Il suffit de décommenter la ligne du module php5 dans le httpd.conf :

 
1
sudo vim /etc/apache2/httpd.conf

On décommente la ligne suivante :

 
1
LoadModule php5_module libexec/apache2/libphp5.so

On redémarre Apache :

 
1
sudo apachectl restart

On teste le fonctionnement de php avec notre fichier créé précédemment :

 
1
2
mv ~/Sites/site1/index.html ~/Sites/site1/index.php
echo  '<?php phpinfo(); ?>' > ~/Sites/site1/index.php

Puis on pointe sur l’adresse http://site1.local. Si tout s’est bien passé, le phpinfo() devrait s’afficher.

Note : la configuration de php se situe dans /etc/php.ini.default (à renommer en php.ini).

 
 
cd /etc
sudo cp php.ini.default php.ini
sudo chmod ug+w php.ini
sudo chgrp staff php.ini

 

Installer MySQL

Avant d’installer MySQL, rendez vous dans Préférences systèmes->Système et confidentialité. Après avoir dévérrouillé le cadenas, cochez “n’importe où” pour la section “Autoriser les applications téléchargées de”.

autorisation-app-osx.png

Sur le site de MySQL, on télécharge la version 64 bits sous format d’archive DMG  (Mac OS X ver. 10.6 (x86, 64-bit), DMG Archive)

Le site : http://dev.mysql.com/downloads/mysql/

Note : vous n’êtes pas obligé de vous inscrire pour télécharger MySQL

telechargement-mysql1.png

Une fois l’archive décompressée et lancée, il vous suffit d’installer les 3 composants :

mysql-installation1.png

Pour démarrer/arrêter MySQL, rendez vous dans vos préférences systèmes :

administrer-mysql.png

Pour tester MySQL :

 
1
/usr/local/mysql/bin/mysql -v

Cela devrait vous ouvrir un shell MySQL en affichant le numéro de version. Pour le quitter, faites Ctrl + C.

Pour utiliser le binaire directement, on ajoute celui-ci à notre path (à adapter selon votre configuration). SI vous débuter et utilisez bash, créer tout simplement un fichier .bash_profile dans votre home.

 
1
vim ~/.bash_profile

Ajoutez-y la ligne suivante :

 
1
export PATH="/usr/local/mysql/bin:$PATH"

On teste sans le chemin absolu :

 
1
mysql -v

 

Un mot de passe root pour MySQL

Il est important de définir un mot de passe root pour MySQL à l’aide de la commande suivante :

 
1
mysqladmin -u root password 'motdepasse'

Faites attention à bien utiliser les simples quotes.

Installer phpMyAdmin

Se rendre sur la page de download de phpMyAdmin :

http://www.phpmyadmin.net/home_page/downloads.php

On récupère le fichier phpMyAdmin-3.5.3-all-languages.zip.

Une fois décompressé, on renomme le dossier en phpmyadmin puis on le place à la racine dans ~/Sites.

On fixe un problème d’erreur 2002 :

erreur-200-phpmyadmin.png

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

On pointe sur l’adresse http://localhost/~votreuser/phpmyadmin/

Il suffit alors de se connecter avec l’utilisateur root et le mot de passe que vous avez configuré dans l’étape précédente.

connexion-phpmyadmin.png

En bonus : un script pour générer vos vhosts

Dans le but de simplifier un peu plus la procédure d’ajout de vhosts, j’ai créé un petit script bash dédié à cette tâche qui :

  • éditera le fichier /etc/hosts
  • créera un repertoire dédié au site dans ~/Sites (s’il n’existe pas déjà)
  • éditera un vhost dans votre httpd-vhosts.conf
  • redémarrera Apache pour prendre en compte les changements

vhosts-generator.png

  Pour l’utiliser

Récupérez  le script sur Github :

 
1
curl -OL https://raw.github.com/robinparisi/scripts-osx/master/vhosts-generator.sh

Rendez-le exécutable :

 
1
chmod +x vhosts-generator.sh

Editez la partie concernant le user :

 
1
USER="votre_user_ici"

Lancez-le (sans oublier sudo nécessaire car demande l’édition du fichier hosts et le contrôle d’Apache) :

 
1
sudo ./vhosts-generator.sh

Choisir un nom de domaine (celui que vous entrerez dans votre navigateur pour accéder au site en local) et un nom pour le répertoire du site.

Et voilà, vous avez maintenant un environnement de développement fonctionnel et pleinement intégré à votre système. Si vous testez ce tutoriel depuis une autre version de Mac OS X, n’hésitez pas à valider la procédure dans les commentaires.

Bon dev à tous icon_smile.gif

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant