Changer le répertoire racine avec Apache
Par défaut, le serveur apache utilise le répértoire/var/www/html/
comme racine, celle accessible en tant que (à l'adresse) "localhost", ou "http://localhost/" dans un navigateur web.
On peut avoir envie de changer ce répertoire par défaut, soit pour pouvoir travailler localement sur son compte utilisateur, soit aussi parce qu'on développe plusieurs projets de sites web chacun se trouvant dans des répertoires distincts.
Le fichier
/etc/apache2/sites-enabled/000-default.conf
contient des éléments de configuration d'apache, entre autre les lignes
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
qu'il suffit de modifier pour ajouter le répertoire local site-web
présent sur mon compte
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /home/yoann/site-web/
Le "#" indiquant comme d'habitude un commentaire.
À ce stade, la racine de notre site pointe bien vers le répertoire local
/home/yoann/site-web/
, mais à l'adresse localhost/ dans un navigateur on obtient le message "Forbidden. You don't have permission to access this resource."
Bien sû il faut avoir donné les droits d'accès en lecture au moins à tout le monde au répertoire en question, mais cela ne suffit pas.
Le fichier
/etc/apache2/apache2.conf
donne, ou non, les droits d'accès d'Apache. On y trouve entre autre initialement
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
qu'il suffit d'adapter ici en modifiant, ou ajoutant le paragraphe
<Directory /user/yoann/site-web/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Il faut alors enfin, une fois ces modifications faites, relancer apache par
service apache2 restart
Toutes ces modifications et cette dernière commande doivent être effectuées avec des droits adaptés (superutilisateur, ou root, certainement).
Dans le cas de muliples sites web, il suffit d'ajouter dans les deux fichiers de configuration précédents tous les répertoires correspondants et de relancer apache à chaque changement.
À ne pas oublier aussi: lorsqu'on passe d'un site local à un autre, le navigateur web n'en est pas informé, et utilisera encore a priori tous les fichiers en cache à sa disposition, d'où des surprises éventuels par exemple si les fichiers de style ont le même nom et chemin relatif ! Il faut alors simplement imposer au navigateur de tout recharger (crtl+F5 pour firefox).