Des hôtes virtuels avec Apache2 installés n'importe où
Ce tuto est le résultat d'un approfondissement du fonctionnement de Apache2 suite aux problèmes d'usagers du forum ubuntu-fr pour créer des hôtes virtuels.
Ce tuto n'abordera pas le contexte des vhosts par ip destiné à un environnement de production.
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
- Avoir installé au préalable Apache2.
Configuration
- Associez vos noms d'hôtes à l'IP localhost 127.0.0.1 dans le fichier /etc/hosts
- Utilisez le fichier /etc/apache2/sites-available/default comme modèle de configuration
- Installez les fichiers ressources de vos sites (cms, atelier php, html statique, etc)
Hôte virtuel installé dans la partie root (Méthode fortement déconseillée)
- créer un lien symbolique de /var/www/<nomdemonsite> vers le répertoire réel dans un dossier utilisateur:
sudo ln -s <répertoire réel> /var/www/<nomdemonsite>
- donner suffisamment de droits pour que le lien symbolique soit accessible par l'utilisateur en acces non admin
- modifier le modèle default selon les paramètres du vhost, créer autant de fichiers que de vhosts
Hôte virtuel installé dans la partie /home/votre-login
- installer les données du site du vhost n'importe où dans votre zone utilisateur : /home/votre-login
- modifier le modele default sur le paramètre document_root selon le chemin du vhost dans la zone utilisateur, créer autant de fichiers que de vhosts
Utilisation
- Naviguez à l'adresse indiquée dans le /etc/hosts
Exemple rapide, EasyPhpAlbum Lite Version 2.3.2 : un album photo simple
EasyPhpAlbum Lite se constitue d'un fichier unique programmé en php (compatible v5), utilisant des fichiers textes comme fichiers de base de données. Son objectif est d'indexer et de présenter sous forme de vignettes cliquables les images se trouvant dans le même dossier que lui.
/etc/hosts
127.0.0.1 localhost 127.0.1.1 name-of-your-computer 127.0.0.1 homepics # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
/etc/apache2/sites-available/homepics
<VirtualHost *:80> ServerAdmin webmaster@homepics ServerName homepics DocumentRoot /home3/Images <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home3/Images> Options Indexes FollowSymLinks MultiViews AllowOverride None Require all granted </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted AddHandler cgi-script cgi php phtml </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Installation du script php
- copie du fichier EasyPhpAlbum Lite dans /home3/Images
- renommer le script en index.php
Activation du site homepics avec la commande Apache2 : a2ensite
sudo a2ensite homepics
ou manuellement en créant un lien symbolique
sudo ln -s /etc/apache2/sites-enabled /etc/apache2/sites-available/homepics
homepics peut-être utilisée comme adresse url dans votre navigateur
Exemple avec Flatpress : application de blog à la Wordpress
Flatpress est une application php multi-fichiers ne nécessitant aucun serveur Mysql pour le stockage des donnees. Pour démonstration, l'application sera installée dans le dossier dédié /srv avec des droits d'acces utilisateur ordinaire.
Ajouter le nom de vhost fpress à /etc/hosts
127.0.0.1 fpress
Télécharger
Installer Flatpress dans /srv
sudo cp les-fichiers-flatpress-desarchivés /srv/fpress/
chown /srv/fpress operateur-courant-de-la-session
Suite ...
Contributeurs principaux : J5012.