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.

  • 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
  • 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

http://homepics

easyphpalbumlite_test_vhost_apache2.jpg

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.

  • utilisateurs/j5012/brouillons/apache2_vhosts_anywhere.txt
  • Dernière modification: Le 05/04/2021, 11:28
  • par L'Africain