Apache peut écouter sur différentes adresses et ports, pour cela nous éditerons le fichier ports.conf. Dans ce fichier, les directives vont par deux :
NameVirtualHost : On défini un VirtualHost. (prochaine sous-partie)
Listen : Dit a apache d'écouter sur un certain port.
Exemple : vim /etc/apache2/ports.conf
# On définit un VH toutes les adresses (*) et le port 80
NameVirtualHost *:80
# On dit à Apache d'écouter sur le port 80
Listen 80
# Vous pouvez en faire plusieurs, par exemple sur un autre port.
# On en défini un autre sur toutes les adresses (*) et le port 8080
NameVirtualHost *:8080
# On dit a Apache d'écouter aussi sur le port 8080
Listen 8080
# Je n'expliquerai pas l'utilisation de SSL (https) ici.
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>
La Sécurité
Les directives concernant la sécurité sont dans le fichier conf.d/security : vim /etc/apache2/conf.d/security Nous changerons :
ServerTokens : Envoi des informations (comme l'OS et la version d'Apache) aux clients ;
ServerSignature : Donne des informations en bas des pages d'erreurs ;
TraceEnable : La méthode TRACE est réservée pour le débogage.
# Chercher la ligne du ServerTokens et remplacer par :
ServerTokens Prod
# Chercher la ligne du ServerSignature et remplacer par :
ServerSignature Off
# Chercher la ligne du TraceEnable et remplacer par :
TraceEnable Off
Les VirtualHosts
Les VirtualHosts (en français "hôtes virtuels") permettent de "découper" le serveur en plusieurs sites.
Pour en fabriquer un, créez un fichier du nom de votre site dans "sites-available" : vim /etc/apache2/sites-available/monsite
# Le virtualHost de monsite.fr
<VirtualHost *:80>
ServerAdmin [email protected] # L'E-Mail de l'administrateur
ServerName monsite.fr # L'adresse du site
ServerAlias www.monsite.fr monsite.com # Les alias du site
# Les documents du site (Souvent /var/www/monsite ou /home/monsite)
DocumentRoot /var/www/monsite.fr/
# Les options du site (comme dans un .htaccess)
<Directory /var/www/monsite.fr/>
# On autorise tous le monde a voir le site
Order allow,deny
allow from all
</Directory>
# Les logs (historiques des IPs et des fichiers envoyés)
ErrorLog /var/log/apache2/monsite.fr-error_log # Erreurs
TransferLog /var/log/apache2/monsite.fr-access_log # Acces
</VirtualHost>
Nous avons fini la configuration, activons le VH et redémarrons le serveur :
a2ensite monsite
/etc/init.d/apache2 restart
Testons Apache
Pour vérifier que tout cela fonctionne, connectez vous au serveur avec son IP : http://aaa.bbb.ccc.ddd/ Vous devez normalement voir un grand "It works!" : C'est la page par défaut.
Si vous avez un problème ici, regardez les dernières lignes du log d'erreurs : tail /var/log/apache2/error.log Si il n'y a rien d'anormal dans le log, le firewall bloque surement apache : iptables -L | grep 'DROP'
Ouvrez proftpd.conf : vim /etc/proftpd/proftpd.conf Et modifiez :
# Le nom de votre serveur FTP (sera affiché à la connexion) :
ServerName "Le serveur FTP de monsite.fr"
# Vérifiez que ServerType est bien "standalone" :
ServerType standalone
# Dé-commentez cette ligne pour que les utilisateurs restent dans leurs dossier:
DefaultRoot ~
# Vous pouvez changer le port pour des raisons de sécurité (défaut : 21)
Port 2121
Vous pouvez donc redémarrer ProFTPD :
/etc/init.d/proftpd restart
Pour vous connecter, utilisez le même compte qu'avec SSH.
Nous pouvons donc créer des comptes utilisateurs facilement :
adduser <nom>
# Exemple pour monsite.fr :
adduser monsitefr --home /var/www/monsite.fr/
# Quand vous vous connecterez, vous serez dans /var/www/monsite.fr/
# Pour savoir plus d'arguments
man adduser
Dans cette partie très courte, nous allons installer MySQL, qui est le serveur SQL plus répandu.
Commençons par installer les paquets mysql-server et l'extension PHP :
apt-get install mysql5-server php5-mysql
MySQL va vous demander un mot de passe, entrez-en un, de préférence compliqué.
Configuration
Ouvrez le fichier my.cnf: vim /etc/mysql/my.cnf
# Cherchez la ligne commençant par "language" pour changer la langue:
#language = /usr/share/mysql/english
language = /usr/share/mysql/french
Redémarrez MySQL :
/etc/init.d/mysql restart
Sécurisation
Pour terminer, entrez la commande mysql_secure_installation pour sécuriser l'installation : il vous demandera le mot de passe root MySQL entré précédemment, puis vous pourrez (dans l'ordre) :
Changer le mot de passe ;
Enlever l'accès anonyme ;
Empêcher l'accès root depuis un autres ordinateur ;
Supprimer la base de donnée de test et son accès ;
Pour mettre en pratique tout ce que nous avons appris, nous allons installer phpMyAdmin. :)
Le VirtualHost
Ouvrons le fichier du VH de votre site : vim /etc/apache2/sites-available/monsite Ajoutez y ce code :
# Le virtualHost de sql.monsite.fr
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName sql.monsite.fr
DocumentRoot /var/www/sql.monsite.fr/
<Directory /var/www/sql.monsite.fr/>
# On autorise tous le monde a voir le site
Order allow,deny
allow from all
# Vous pouvez mettre ici une protection comme dans le tutoriel xHTML de M@teo21
</Directory>
ErrorLog /var/log/apache2/sql.monsite.fr-error_log # Erreurs
TransferLog /var/log/apache2/sql.monsite.fr-access_log # Accès
</VirtualHost>
Pour que Apache n'affiche pas d'erreurs, il faut créer le dossier "/var/www/sql.monsite.fr/" :
mkdir /var/www/sql.monsite.fr/
Il faut encore redémarrer apache :
/etc/init.d/apache2 restart
Télécharger phpMyAdmin
Comme l'indique le titre, nous allons maintenant télécharger et installer phpMyAdmin.
Allez sur le site de phpMyAdmin, http://www.phpmyadmin.net/ et repérez a droite dans une boite "Download" le ".gz" : Copiez l'adresse du lien. Vous vous retrouvez donc normalement avec une URL de sourceforge.net.
Sur votre serveur, téléchargez l'archive et déplacez son contenu dans "/var/www/sql.monsite.fr/" : (sans oublier les ' au wget)
cd ~
wget 'http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.3.4/phpMyAdmin-3.3.4-all-languages.tar.gz/download#!md5!7ef6078dd709f01a6cf10c718b98e4c5' -O phpmyadmin.tar.gz
tar -xzvf phpmyadmin.tar.gz
rm phpmyadmin.tar.gz
mv phpMyAdmin-*/* /var/www/sql.monsite.fr/
rm -r phpmyadmin-*/
Entrez dans le dossier contenant PMA déplacez la configuration :
mv config.sample.inc.php config.inc.php
Si vous avez déjà installé le serveur DNS (lien dans la conclusion), vous pouvez y accéder avec http://sql.monsite.fr/
Vous avez maintenant un serveur web fonctionnel, il n'y a plus qu'à y mettre votre site. ;)