Pour débuter
Outils de base
VIM
06 min
SSH
14 min
rsync
20 min
Shell fish
13 min
Serveur HTTP
Apache
40 min
Nginx
30 min
PHP
NodeJS
Base de données
MySQL
15 min
Redis
08 min
Emails
HTTPS
FTP
ProFTPD
14 min
Sécurité
Pour le confort
Déploiement

Le principal but de notre serveur est d'héberger des sites web. Pour cela on a besoin d'installer un serveur HTTP qui va être capable de comprendre les requêtes faites par le navigateur et de renvoyer les bonnes informations en fonction. Dans ce chapitre nous allons voir l'installation d'Apache.

Pourquoi Apache ?

Avant d'installer une nouvelle technologie, il est important de comprendre ses points forts

  • Apache est relativement ancien (1995) et dispose du coup d'une communauté assez importante. Du coup il sera facile de trouver des réponses en cas de problème.
  • Il utilise un système de module qui permet de rajouter des fonctionnalités après coup (on ne sera pas obligé de recompiler depuis les sources pour rajouter une fonction particulière)
  • La configuration peut être modifiée en utilisant des '.htaccess ce qui va permettre d'adapter la configuration suivant les sites

Installation

L'installation se fait très simplement et se fait via le gestionnaire de paquet

sudo apt-get install apache2

Si vous essayez de vous rendre sur votre serveur après avoir installé Apache vous devriez déjà voir une page s'afficher. Cette page se trouve dans le dossier /var/www/html.

Configuration

La configuration d'Apache est morcelée en plusieurs fichiers pour s'y retrouver plus facilement et se trouve dans le dossier /etc/apache2.

  • apache2.conf, contient la configuration générale
  • ports.conf, indique les ports utilisés par Apache
  • mods-enabled/*.conf, contient les configurations pour les différents modules
  • sites-enabled/*.conf, contient les configurations pour les virtualhosts

Les virtual hosts

Les hôtes virtuels permettent à Apache de gérer plusieurs arborescences Web en simultanées. Si vous regardez dans le dossier sites-enabled vous remarquerez que vous n'avez pour le moment qu'une configuration qui est un lien symbolique vers le dossier sites-available. De manière générale, pour pouvoir activer et désactiver rapidement des configurations, on placera nos configurations dans le dossier sites-available et on fera un lien symbolique depuis le dossier sites-enabled pour activer la configuration.

# /etc/apache2/sites-available/monsupersite.conf
<VirtualHost *:80>
    ServerAdmin contact@grafikart.fr

 # Domaines gérés par ce virtualhost
    ServerName monsupersite.fr
    ServerAlias *.monsupersite.fr

 # Racine Web
    DocumentRoot /var/www/monsupersite.fr

 # Règles spécifiques s'appliquant à ce dossier
    <Directory /var/www/monsupersite.fr>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    # Où placer les logs pour cette hôte
    ErrorLog /home/dev/logs/error.log
    CustomLog /home/dev/logs/access.log combined

</VirtualHost>

Par défaut on rendra nos sites accessibles depuis le dossier /var/www qui est un dossier qu'Apache peut consulter. Inutile de tout déplacer dans ce dossier-là, car l'option FollowSymLinks est active et il nous suffit de faire un lien symbolique.

ln -s /home/dev/www /var/www/monsupersite.fr

Enfin, il faut placer notre configuration dans le dossier sites-enabled. On peut faire le lien symbolique manuellement ou utiliser la commande

sudo a2ensite monsupersite

Une fois ces modifications effectuées il ne faut pas oublier de recharger la configuration d'Apache.

# Pour tester la configuration
sudo apache2ctl configtest 
# Pour recharger la configuration
sudo service apache2 reload

Rajouter des modules

Si vous essayez d'utiliser un .htaccess sur votre site avec des règles d'écritures, vous devriez tomber sur une erreur. Pour en comprendre l'origine, n'hésitez pas à vous rendre sur les logs (c'est une habitude à prendre pour comprendre ce qui ne se passe pas correctement et être indépendant).

Dans notre cas, Apache n'a pas activé le module rewrite qui permet de gérer la redirection, mais il est tout de même installé. Il suffit d'analyser le dossier /etc/apache2/mods-available pour s'en rendre compte. Pour l'activer, il nous faut donc placer le fichier de configuration du module dans le dossier mods-enabled. Il existe une petite commande pour faire ça sans avoir à utiliser le ln -s

sudo a2enmod rewrite

Cette commande va simplement créer les liens symboliques à votre place. Il vous faut ensuite redémarrer Apache pour prendre en compte ce nouveau module

sudo apache2 restart

Et voilà, votre installation supporte maintenant la réécriture d'URL !