Ceci est une ancienne révision du document !
Apache2 , Astuces et DynDNS
Cette documentation a pour but de donner un exemple de mise en place d'hôtes virtuels sur son PC dans le cadre d'un développeur de page internet, souhaitant séparer des sections : Administration , Privée , Publique ; en utilisant un nom de domaine gratuit du type DynDNS.
Pré-requis
Avoir un serveur LAMP installé et fonctionnel.
Mise en place
(Ceci concerne principalement les utilisateurs de Livebox/Orange)
Pour rendre un domaine mon_domaine.dnsalias.net accessible en local,
éditez le fichier avec des droits root /etc/hosts
127.0.0.1 localhost mon_domaine.dnsalias.net
Pour appliquer le nom de domaine à votre serveur (ServerName),
éditez le fichier avec des droits root /etc/apache2/apache2.conf
ServerName mon_domaine.dnsalias.net ServerRoot "/etc/apache2"
Puis rechargez la configuration d'Apache
sudo /etc/init.d/apache2 reload
Vous avez désormais accès à votre serveur via votre nom de domaine DynDNS
Nous allons rester dans l'esprit Ubuntu et se baser sur le principe d'un disque ou d'une partition monté au démarrage de votre ordinateur soit : /media/web ; pour ce qui est des sections 'privée' et 'publique'.(il sera ainsi accessible depuis le bureau)
Bien sur vous pouvez choisir un tout autre chemin.
Préparation des espaces de travail
Zone Administration
Racine : /var/www
Cette "zone" doit être accessible en local et/ou dans le réseau local. Elle contient entre autre phpMyAdmin (le gestionnaire de base de données MySql).
L'erreur de beaucoup de personnes arrivant sur Ubuntu est de créer des pages internet avec des droits d'administration ou d'affecter le répertoire /var/www
à un utilisateur. En contrepartie, beaucoup d'utilisateurs trouvent également peu pratique de devoir travailler dans un répertoire qu'ils n'ont pas choisit.
Nous allons donc rendre ce répertoire strictement local et interdit au "reste du monde".
Pour ce faire, éditez le fichier avec des droits root /etc/apache2/sites-available/default
Dans la section <Directory /var/www/>…</Directory>, Changez la ligne
Order Allow,Deny
en
Order Deny,Allow
On interdit tout le monde
Deny from all
Et on autorise localhost et éventuellement le réseau/pc
Allow from localhost Allow from 192.168.1.0/24
Zone Privée
Racine : /media/web/private
Cet espace vous permet de créer des pages internet/applications web strictement privées.
Créez le dossier qui contiendra ces fichiers
sudo mkdir /media/web/private
Nous rendons ce dossier accessible à l'utilisateur principal en écriture/lecture
sudo chown -R $USER:users /media/web/private
Éditez le fichier avec des droits root /etc/apache2/sites-available/default
Après la section <Directory /var/www/>…</Directory>, nous allons créer un Alias et définir les droits d'accès pour cet alias
Alias /private /media/web/private <Directory /media/web/private> Options Indexes FollowSymLinks MultiViews AllowOverride All Order deny,allow Deny from all Allow from localhost </Directory>
Explications :
Alias /private /media/web/private
permet l'accès à cet espace depuis l'URL http://nom_domaine.aliasdns.net/private
AllowOverride All
permet de gérer l'URLRewriting (entre autre).
Deny from all
interdit l'accès à tout le monde.
Allow from localhost
autorise l'accès en local.
Pour que cette espace vous soit accessible depuis votre dossier principal /var/www –> http://nom_domaine.aliasdns.net, nous allons créer un lien symbolique.
sudo ln -s /media/web/private /var/www/private
On recharge la configuration d'apache
sudo /etc/init.d/apache2 reload
Zone Publique
Racine : /media/web/public
Cette espace vous permet de mettre en ligne vos créations et sera accessible à tout le monde.
Créez le dossier destiné à accueillir vos fichiers
sudo mkdir /media/web/public
Rendons ce dossier accessible à l'utilisateur principal en écriture/lecture
sudo chown -R $USER:users /media/web/public
Éditez le fichier avec des droits root /etc/apache2/sites-available/default
Après la section <Directory /var/www/>…</Directory>, nous allons créer un Alias et créer les droits de cet alias
Alias /public /media/web/public <Directory /media/web/public> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory>
Explications :
Alias /public /media/web/public
permet d'accèder à cet espace depuis l'URL http://nom_domaine.aliasdns.net/public
AllowOverride All
permet de gérer l'URLRewriting (entre autre).
Allow from all
autorise l'accès pour tout le monde
Pour que cette espace vous soit accessible depuis votre dossier principal /var/www –> http://nom_domaine.aliasdns.net, nous allons créer un lien symbolique.
sudo ln -s /media/web/public /var/www/public
On recharge la configuration d'apache
sudo /etc/init.d/apache2 reload
Astuces
Erreur 403
Afin d'éviter l'affichage d'erreur 403 à vos visiteurs (erreur d'URL ou non) on va les rediriger automatiquement vers la section publique.
il suffit d'ajouter pour les sections
<Directory /var/www/>
<Directory /media/web/private>
<Directory /media/web/public>
une ligne de gestion d'erreur qui sera uniquement valable pour ces sections.
Éditez le fichier avec des droits root /etc/apache2/sites-available/default et insérez pour chaque section :
<Directory /....> ErrorDocument 403 "http://nom_domaine.dnsalias.net/public" ..... </Directory>
Conclusion
Vous disposez à présent d'un serveur 'web' vous permettant de travailler directement sur vos fichiers publics et privés et ce dans un environnement séparé (pratique dans le cas d'un média amovible, pour emporter son travail) et vous pouvez donner des liens "complet" depuis votre nom de domaine gratuit sans devoir remplacer localhost par nom_domaine.aliasdns.net avant de coller vos liens. De plus vos visiteurs dans le cas d'une erreur d'url (omission du répertoire /public) seront automatiquement redirigés vers celui-ci.
— virtualhosts_avec_apache2_et_dyndns Contributeurs : McPeter