Il va s'agir ici d'indiquer comment configurer Apache pour avoir plusieurs serveurs virtuels sur la même machine. C'est encore un exposé de plus, mais il expose ma façon de faire pour que je ne l'oublie plus et n'aie plus à potasser la doc de référence d'Apache pendant une demi-journée...
Cette configuration concerne Apache 2.4 ! Essayer une config Apache 2.0 ou 2.2 sur une Apache 2.4 mène le plus souvent à une erreur 403 (droits d'accès insuffiants -- parce que la syntaxe afférente a changé).
Le système hôte est une debian ou un dérivé comme Ubuntu ou Linux Mint.
Pour créer le serveur appli.chez.moi sur son serveur personnel il faut déjà permettre la résolution du nom appli.chez.moi et si on n'a pas de dns on va insérer dans /etc/hosts
la ligne suivante (avec une tabulation avant l'adressi ip) :
appli.chez.moi 127.0.0.1
On peut mettre sa vraie adresse ip à la place de 127.0.0.1 si on veut mais ça ne change rien. Cela suffit pour être accessiblle à une machine externe à la condition qu'elle-même puisse modifier pareillement son fichier hosts, avec la vraie adresse ip de votre serveur toutefois (ce n'est pas possible sans avoir les droits administrateur sur la machine externe). Pour windows xp, il s'agit du fichier C:\WINDOWS\system32\drivers\etc\hosts
qui a la même syntaxe que sous linux.
Il faut maintenant créer le fichier /etc/apache2/sites-available/appli
(on peut aussi le nommer appli.chez.moi
et on peut ajouter une extension .conf
). Recopiez y le contenu ci-dessous.
>
<VirtualHost *:80> ServerName appli.chez.moi DocumentRoot /mnt/servers/appli DirectoryIndex index.php <Directory /> Options none AllowOverride None Require all denied </Directory> <Directory /mnt/servers/appli> Require all granted </Directory> ErrorLog /var/log/apache2/appli_error.log LogLevel warn CustomLog /var/log/apache2/appli_access.log combined </VirtualHost>
Cette config est pour un serveur php basique sans framework. Avec un framework, il faut pointer sur un sous répertoire et le fichier par défaut n'est en général toujours index.ph«/code>p aussi voyez ci-après ce que cela donnerait si, par exemple,
appli.chez.moi
était développée avec symphony 2.4.
<VirtualHost *:80> ServerName appli.chez.moi DocumentRoot /mnt/servers/appli/web DirectoryIndex app_dev.php <Directory /> Options none AllowOverride None Require all denied </Directory> <Directory /mnt/servers/appli/web> Require all granted </Directory> ErrorLog /var/log/apache2/appli_error.log LogLevel warn CustomLog /var/log/apache2/appli_access.log combined </VirtualHost>
Et voici le même exemple avec CodeIgniter mais en plus une gestion avec subversion (on veut lancer la version du trunk qui est dans /mnt/servers/appli/trunk
).
<VirtualHost *:80> ServerName appli.chez.moi DocumentRoot /mnt/servers/appli/trunk/web DirectoryIndex index.php <Directory /> Options none AllowOverride None Require all denied </Directory> <Directory /mnt/servers/appli/trunk/web> Require all granted </Directory> ErrorLog /var/log/apache2/appli_error.log LogLevel warn CustomLog /var/log/apache2/appli_access.log combined </VirtualHost>
Bon, ces fichiers interdisent l'emploi de fichiers .htacess. On peut changer cela en ajoutant une ligne
AllowOverride alldans
<Directory /mnt/servers/appli/trunk/web>
(ou quelque chose de moins ouvert que all
).
Ces configurations interdisent l'emploi de liens symboliques. Je n'ai pas réussi à avoir une configuration comme il est recommandé d'en avoir avec des liens symboliques. Bon, en fait, je me suis rendu compte que je pouvais m'en passer, alors je m'en passe. Et d'autant mieux que c'est ce qu'Apache recommande.
Pour que le site soit disponible il faut maintenant lancer la commande
sudo a2ensite appli(ou
appli.chez.moi
le cas échéant). Et enfin relancer apache :
sudo service apache2 restartet alors on pourra voir sa page d'accueil en visitant la page http://appli.chez.moi avec son navigateur.
Aucun commentaire:
Enregistrer un commentaire