Depuis debian 8, dans le fichier /etc/apache2/apache2.conf il faut mettre le dossier contenant vos sites dans une liste blanche pour pouvoir les afficher. Pour cela, dans le fichier /etc/apache2/apache2.conf, il faut repérer :
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
copier/coller le paragraphe et remplacer /var/www/ par le dossier racine de vos sites.
Dans le fichier
/etc/apache2/conf-enabled/security.conf
Modifier les valeurs de
ServerTokens OS
par
ServerTokens Prod
et
ServerSignature On
par
ServerSignature Off
Sous Debian squeeze, les fichiers de conf se trouvent dans
/etc/apache2/
A l'intérieur, se trouve deux dossiers : sites-available et sites-enabled. Le premier dossier contient les fichiers de conf des sites qui sont disponibles et le deuxième contient les fichiers de conf pour les sites activé.
On commence par vider le dossier sites-enabled puis on créer un fichier monsite.tld.conf dans le dossier site-available. Dans lequel on met :
<VirtualHost ip_local_du_serveur:80> ServerAdmin adress_mail@admin_du.site ServerName monsite.tld ServerAlias www.monsite.tld DocumentRoot /emplacement/du/dossier/du/site/ </VirtualHost>
Ensuite on vas dans le dossier site-enabled et on créé un lien symbolique de notre fichier de conf dans le dossier sites-enabled :
cd /etc/apache2/site-enabled/ ln -s ../site-available/monsite.tld.conf
Finalement, il faut éditer le fichier de conf et trouver les lignes :
NameVirtualHost *:80 ServerName
Qu'il faut modifier pour mettre :
NameVirtualHost adresse.ip.local.du_serveur:80 ServeurName adresse.ip.local.du_serveur
Pensez à redémarrer le serveur et là, ca doit marcher.
On peut ajouter autant de virtualhost que l'on souhaite. Il suffit pour ce faire de créer un autre fichier.conf dans le dossier site-available et de le lier dans site-enabled. On remplace bien sur les nom de domaine par ceux souhaités et on n'oublie pas de déclarer les domaines et sous domaines dans le dns et ca roule.
A chaque modification de la config d'apache arrêter et relancer le service apache comme ca:
/etc/init.d/apache2 restart
Pour pouvoir utiliser ssl sur apache, il faut récupérer un certificat. Soit en acheter un auprès d'une autorité compétente, soit en généré un auto-signé.
Vous pouvez voir comment faire pour en créer un auto signé ici
Mettre la clé et son certificat dans le dossier :
/etc/apache2/ssl/
Il faut aussi copier la ligne
NameVirtualHost adresse.ip.local.du_serveur:80
Et la modifier pour avoir :
NameVirtualHost adresse.ip.local.du_serveur:80 NameVirtualHost adresse.ip.local.du_serveur:443
Ensuite dans le dossier /etc/apache2/site-available il faut créer un fichier de configuration que l'on nommera https.monsite.tld.conf pour le sous domaine :
<VirtualHost 192.168.0.10:443> ServerAdmin webmaster@localhost ServerAlias www.monsite.tld ServerName monsite.tld DocumentRoot /mnt/documents/www/weave/ SSLEngine on SSLCertificateFile /etc/apache2/ssl/monsite.tld.crt SSLCertificateKeyFile /etc/apache2/ssl/monsite.tld.key </VirtualHost>
Taper :
a2enmod ssl
Pensez à relancer le serveur après ca :
/etc/init.d/apache2 restart
exemple de fichier .htaccess
AuthUserFile /fichier/de/pwd AuthGroupFile /dev/null AuthName "Utilisateur inconnu" AuthType Basic <LIMIT GET POST> Require valid-user </LIMIT>
Utiliser un nom de fichier de mot de passe compliqué pour éviter que quelqu'un ne le trouve et l'ouvre et ne vois ainsi la liste des utilisateurs autorisé.
Créer un fichier de mot de passe et ajouter un utilisateur :
htpasswd -c /chemin/du/fichier/de/pwd utilisateur
Ajouter les utilisateurs suivant :
htpasswd /chemin/du/fichier/de/pwd utilisateur