Version en ligne

Tutoriel : Apprenez à installer un serveur Web sous Debian !

Table des matières

Apprenez à installer un serveur Web sous Debian !
Le serveur web, Apache
Le serveur FTP, ProFTPD
Le serveur SQL, MySQL
Installation de phpMyAdmin

Apprenez à installer un serveur Web sous Debian !

Le serveur web, Apache

Bonjour et bienvenue sur mon premier tutoriel, nous allons apprendre à installer et configurer un serveur web sur Debian.

Le serveur web, Apache

Le serveur FTP, ProFTPD

Nous nous occuperons en premier d'Apache, le serveur qui enverra les pages web aux visiteurs. :)

Commençons par installer les paquets nécessaires :

C'est très rapide avec aptitude :

aptitude install apache2 apache2-utils php5 php5-dev php5-gd

La Configuration

Passons maintenant à la configuration d'Apache.

Les Adresses et les Ports

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 :

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 :

# 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'


Le serveur FTP, ProFTPD

Le serveur FTP, ProFTPD

Le serveur web, Apache Le serveur SQL, MySQL

Nous allons ensuite installer et configurer un serveur FTP, j'ai retenu ProFTPD qui est très simple et rapide à configurer. ;)

On l'installe:

apt-get install proftpd

Aptitude vous demandera comment installer ProFTPD :
Choisissez "standalone" pour démarrer ProFTPD indépendamment.

Configuration

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

Le serveur web, Apache Le serveur SQL, MySQL

Le serveur SQL, MySQL

Le serveur FTP, ProFTPD Installation de phpMyAdmin

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) :


Le serveur FTP, ProFTPD Installation de phpMyAdmin

Installation de phpMyAdmin

Le serveur SQL, MySQL

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. ;)

Si vous voulez en savoir plus, je vous conseille ce tutoriel sur les DNS et celui-ci sur la sécurité d'un serveur.


Le serveur SQL, MySQL