Apache pour le développement local
Le développement local d'un site dynamique nécessite la mise en place d'un serveur web, Apache en général. Voici quelques petits trucs qui pourront vous faciliter la vie sous Ubuntu/Linux.
Nota : le meilleur moyen d'appliquer les modifications listées ci-dessous sans perdre les configurations initiales, c'est de commenter les lignes que l'on modifie - en ajoutant un « # » devant - puis d'écrire en dessous la nouvelle ligne.
Le répertoire de travail
Occupons-nous d'abord du dossier qui héberge les pages accessibles par le serveur Apache. Par défaut, c'est /var/www. Pour travailler ailleurs, un répertoire /www dans votre dossier personnel par exemple, ouvrez et éditez en tant que root le fichier « default » et changez-y la racine du répertoire web :
sudo gedit /etc/apache2/sites-available/default
#DocumentRoot /var/www/
DocumentRoot /home/[login]/www/
(...)
#<Directory /var/www/>
<Directory /home/[login]/www/>
Le propriétaire des fichiers
Il peut être aussi utile d'être le propriétaire des fichiers créés lors d'une session Apache. Par défaut, le propriétaire est un utilisateur virtuel www-data. Pour changer cela, effectuez les modifications suivantes :
sudo gedit /etc/apache2/apache2.conf
# USER MODIFIE
#User www-data
#Group www-data
User [login]
Group [login]
Cette modification n'est bien sur judicieuse (l'est-elle vraiment ?!) que si vous êtes seul à utiliser Apache sur votre machine.
Hôtes virtuels
Enfin, un dernier point : il est parfois utile que l'adresse de la copie locale de votre site et celle de la version en ligne soient construites de la même manière, surtout pour que certaines variables PHP comme $_SERVER aient la même valeur en local et sur le web.
Si vous ne développez qu'un seul site (site1) et que vos pages sont placées directement dans le répertoire racine d'Apache (/home/login/www), il n'y a aucun problème :
| Répertoire local | Adresse locale | Adresse distante |
|---|---|---|
| /home/[login]/www | http://127.0.0.1/ | http://www.site1.com/ |
Par contre, si vous avez plusieurs sites en local (plusieurs répertoires dans /home/login/www), ce qui peut être le cas par exemple si vous développez votre site tout en testant des CMS à côté, les adresses seront différentes puisque l'adresse locale aura un niveau hiérarchique supplémentaire :
| Répertoire local | Adresse locale | Adresse distante |
|---|---|---|
| /home/[login]/www/site1 | http://127.0.0.1/site1/ | http://www.site1.com/ |
| /home/[login]/www/site2 | http://127.0.0.1/site2/ | http://www.site2.com/ |
Pour remédier à cela, ouvrez avec les droits root le fichier « hosts » :
sudo gedit /etc/hosts
Placez sous la première ligne les entrées qui correspondront à des hôtes virtuels pour « site1 » et « site2 » dans cet exemple :
127.0.0.1 site1
127.0.0.1 site2
Ouvrez ensuite le fichier « default » des sites disponibles avec Apache :
sudo gedit /etc/apache2/sites-available/default
Ajoutez en fin de fichier les deux nouveaux hôtes virtuels :
<VirtualHost *>
DocumentRoot /home/[login]/www/site1
ServerName site1
</VirtualHost>
<VirtualHost *>
DocumentRoot /home/[login]/www/site2
ServerName site2
</VirtualHost>
Avec ces modifications, adresse locale et adresse distante seront construites de la même manière :
| Répertoire local | Adresse locale | Adresse distante |
|---|---|---|
| /home/[login]/www/site1 | http://site1/ | http://www.site1.com/ |
| /home/[login]/www/site2 | http://site2/ | http://www.site2.com/ |
Références
Apache Virtual Host documentation. Documentation du Serveur Apache Version 2.0,
OTTELLO, D.. Virtual Host identiques aux sites réels. Forum Wampserver, . Ce texte explique le système d'hôte virtuel pour le serveur Wamp sous Windows.