Comme tout développeur web qui se respecte, vous souhaitez surement travailler sur votre propre serveur de développement dédié ou simplement proposé une prestation d’hébergement a vos clients.
Cet article a pour vocation de vous donner les bases vous permettant de créer des vHosts de façon simple et logique. Avant de commencer, ce tutoriel n’est qu’une proposition de configuration de vos vHosts. Je vous suggère d’aller faire un tour sur la documentation officielle d’apache et sur la documentation apache d’ubuntu afin de compléter cet article.
Etape n°1 – Installation Apache
Pour commencer nous allons installer apache sur nos serveurs dédiés.
:~# apt-get install apache2
Etape n°2 – Création du répertoire vHosts
Une fois l’installation terminée nous allons pouvoir créer des vHosts. Vous pouvez choisir l’emplacement des vHosts selon votre choix (srv, var, ..) personnellement j’utilise le répertoire « var ».
:~# mkdir /var/www/vhosts/
Le répertoire que vous venez de créer est destiné à recevoir les différents vHosts que vous souhaitez créer. Vous pouvez maintenant créer votre premier vHost:
:~# mkdir /var/www/vhosts/votre-domaine.com
Afin d’avoir une meilleure visibilité sur les sessions, logs et autres répertoires propres au vHost. Je vous conseille de bien différencier le répertoire « public » destiné à recevoir votre site web, et les autres répertoires destiné aux logs, librairies etc…
:~# mkdir /var/www/vhosts/votre-domaine.com/public
:~# mkdir -P /var/www/vhosts/votre-domaine.com/logs/apache
:~# mkdir /var/www/vhosts/votre-domaine.com/logs/php
:~# mkdir /var/www/vhosts/votre-domaine.com/session
:~# mkdir /var/www/vhosts/votre-domaine.com/tmp
:~# mkdir /var/www/vhosts/framework
Comme vous pouvez le constater cette architecture permet de bien séparer les logs et de les organiser. Elle permet aussi si vous le souhaitez de créer un dossier de librairie qui ne sera pas publique comme par exemple un framework. Une fois votre répertoire créé nous pouvons maintenant passer a la configuration de votre vHost.
Etape n°3 – Configuration du vHost
Pour configurer votre vHost nous allons le créer dans le dossier « sites-available » d’apache.
:~# nano /etc/apache2/sites-available/votre-domaine.com
et vous pouvez appliquer cette configuration :
<VirtualHost *:80> ServerName votre-domaine.com ServerAlias www.votre-domaine.com ServerAdmin thomas@votre-domaine.com DocumentRoot "/var/www/vhosts/votre-domaine.com/public" <Directory "/var/www/vhosts/votre-domaine.com/public"> Options Indexes FollowSymLinks MultiViews AllowOverride FileInfo Order allow,deny Allow from all </Directory> # Active les logs d'erreurs Apache ErrorLog /var/www/vhosts/votre-domaine.com/logs/apache/error.log # Cree une variable d'environnement pour les requetes locales SetEnvIf Remote_Addr "127\.0\.0\.1" loopback # Cree un log d'acces a apache sauf pour les requetes locales CustomLog /var/www/vhosts/votre-domaine.com/logs/apache/access.log combined env=!loopback # Definie le dossier utilise pour l'upload de fichier. Ne peut etre surcharge php_admin_value upload_tmp_dir /var/www/vhosts/votre-domaine.com/tmp/ # Place les fichiers de session PHP. Necessite des droits d'ecriture a PHP php_value session.save_path /var/www/vhosts/votre-domaine.com/session/ # Place les fichiers de cache WSDL. Necessite des droits d'ecriture a PHP php_value soap.wsdl_cache_dir /var/www/vhosts/votre-domaine.com/cache/ # Place les logs d'erreurs PHP. Le dossier doit avoir les droits en ecriture php_value error_log /var/www/vhosts/votre-domaine.com/logs/php/error.log </VirtualHost>
Etape n°4 – Activation de votre vHost
Une fois votre fichier de configuration créé vous pouvez maintenant activer votre vhost avec la commande suivante :
:~# a2ensite votre-domaine.com
:~# service apache2 restart
N’oubliez pas de donner les droits à apache et a php d’accéder à votre vHost avec la commande suivante :
:~# chown -R www-data:www-data /var/www/vhosts/votre-domaine.com/public
Vous avez maintenant accès à votre hosts en vous rendant à l’adresse indiquée sur votre configuration (Votre domaine doit pointer sur l’ip de votre serveur bien sûr). Nous verrons dans un prochain article la configuration d’un serveur FTP pour votre serveur vous permettant de profiter pleinement de vos vHost. En attendant amusez-vous bien sur vos serveurs !
Hey Thomas !
Quelques petites remarques (peut être que ma procédure interne n’est pas à jour non plus)
– Il est préférable d’utiliser « service apache2 restart » plutôt que « /etc/init.d/apache2 restart »
– La propriété « AllowOverride All » n’est pas conseillée sur une serveur mutualisé, « AllowOverride FileInfo » suffit largement
cf http://httpd.apache.org/docs/2.2/fr/mod/core.html#allowoverride
– Tu n’es pas obligé de faire un « mkdir /var/www/vhosts/votre-domaine.com/logs/ » si tu fais un « mkdir -P /var/www/vhosts/votre-domaine.com/logs/apache », le dossier de logs sera créé automatiquement
– La commande « chown -R www-data:www-data /var/www/vhosts/votre-domaine.com » n’est pas non plus conseillée en terme de sécurité car en cas de faille, l’application peut écrire partout.
– La ligne suivante place le framework dans le dossier du vhost « mkdir /var/www/vhosts/votre-domaine.com/framework », en le remontant d’un niveau, il pourrait être accessible et partagé par d’autres VHOSTS
Voila pour ces quelques infos ^^
A+
PS : J’ai testé KewordLvu, on verra bien XD
Merci Arnaud pour tes précisions. j’ai rectifié les erreurs dans le tuto 🙂 au niveau des droits d’accès www:data ça n’est effectivement pas conseillé, un autre tuto sur les droits d’accès va suivre prochainement !