Debian - Apache it works

Vous pouvez créer et administrer votre propre serveur Web sous Linux, ce n’est pas si compliqué que ça en a l’air, il suffit de s’y intéresser un peu. Le choix des distributions ne manque pas, je vous propose de le faire sous Debian 8 Jessie. Celle-ci vous apporte une excellente stabilité et une installation aisée des composants grâce à la commande apt-get.

Dans ce tutoriel, je vous explique comment installer un serveur LAMP, c’est à dire un serveur web avec les technologies Linux, Apache, MySQL, Php.

Je survolerai certains points sur la sécurité, pour une utilisation en production, veillez à bien configurer votre pare-feu, à définir des mots de passe suffisamment fort entre autre.

Un minimum de connaissances linux est requis, aussi je vous conseille de vous entraîner sur une machine virtuelle de test, avec VirtualBox par exemple. Ainsi, vous pourrez revenir plus facilement en arrière en cas d’erreur grâce aux Snapshots.

Comment installer un serveur web LAMP sous Debian 8

Dans ce tutoriel, je ne décris pas l’installation du système d’exploitation Debian. Je pars du principe qu’il est fraîchement installé par vos soins ou votre hébergeur, avec les composants de base (éditeur VI, SSH, …).

1. Préparer le serveur

1.1. Créer un compte utilisateur secondaire

Pour l’exemple, ajoutons l’utilisateur toto :

adduser toto

1.2. Configurer SSH

Un accès SSH est indispensable pour administrer un serveur web, voici quelques bases pour sécuriser votre accès.

Éditer le fichier de configuration SSH avec l’éditeur de votre choix :

vi /etc/ssh/sshd_config

Puis modifier les lignes suivantes :

Port 2208 # Changer le port par défaut pour des raisons de sécurité
PermitRootLogin no	# Interdire la connexion avec le compte root
AllowUsers toto # Autoriser le compte utilisateur toto à se connecter en SSH

Redémarrer le service SSH :

/etc/init.d/ssh restart

Après cette modification, connectez-vous avec un client SSH sous le compte toto puis ouvrez une session avec l’utilisateur root depuis la console (en tapant su root ou utilisez sudo à votre convenance).

1.3. Dépôts et mises à jour des paquets

Éditez le fichier sources.list :

vi /etc/apt/sources.list

Puis ajoutez les dépôts contrib et non free :

# Main update
deb http://ftp.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.debian.org/debian/ jessie main contrib non-free

# Security update
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

# jessie-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ jessie-updates main
deb-src http://ftp.fr.debian.org/debian/ jessie-updates main

Mettez à jour la liste des dépots et des paquets installés :

apt-get update && apt-get upgrade

Passons maintenant aux choses sérieuses 🙂 Nous sommes fin prêts pour installer notre serveur web sous Linux !

2. Installer MySQL

Pour installer MySQL, saisissez la commande suivante :

apt-get install mysql-server mysql-client

L’outil de gestion des paquets vous invitera à définir le mot de passe du compte  root de la base de de. Vous pourrez créer d’autres comptes utilisateurs après avoir installé phpMyAdmin.

Debian - Outils config mysql
Debian –  Configuration mysql

3. Installer Apache2

3.1 Installation

Pour installer Apache 2, exécuter la commande suivante :

apt-get install apache2 apache2-doc

3.2 mod_rewrite

Je vous conseille également d’activer le mod_rewrite utilisé pour la réécriture d’URL:

a2enmod rewrite

Créer votre fichier de configuration personnalisé :

vi /etc/apache2/conf-available/custom.conf

Et ajouter y ces lignes pour activer mod_rewrite :

#Rewrite engine On
<ifModule mod_rewrite.c>
RewriteEngine On
</ifModule>

Enregistrez le fichier puis activez la nouvelle configuration :

a2enconf custom

Puis redémarrer le service apache2 :

/etc/init.d/apache2 restart

3.3 Tester le fonctionnement d’ Apache 2

Vérifiez le bon fonctionnement du serveur apache en visitant l’adresse de votre serveur, par exemple http://<adresse_ip_de_mon_serveur>

La page de bienvenue comme ci-dessous doit s’afficher.

Debian - Apache it works
Debian – Apache it works

Par défaut, le dossier qui contiendra vos sites web se situe dans /var/www/html.

Par mesure de sécurité, je vous conseille de remplacer ou de supprimer le fichier  /var/www/html/index.html.

4. Installer php5

Pour installer php5, la commande est la suivante :

apt-get install php5 php5-mysql libapache2-mod-php5

Votre fichier de configuration php.ini se situera dans /etc/php5/apache2.

A chaque modification de ce fichier, pensez à redémarrer le service Apache pour qu’elles soient prises en compte.

5. Installer phpMyAdmin

C’est au tour de phpMyAdmin. Il nous servira à gérer notre serveur de base de données MySQL :

apt-get install phpmyadmin

Le gestionnaire vous demandera le type de serveur web à utiliser, choisissez apache2 évidemment.

Debian - phpmyadmin
Debian – apache2 et phpmyadmin

Autorisez le également à paramétrer votre base de données et lui fournissant les mots de passe qui vont bien.

Debian - phpmyadmin_base_de_donnees
Debian – phpmyadmin création d’une base de données

Vous pourrez accéder à phpMyAdmin en visitant l’url de votre serveur suivi de phpmyadmin. Ex : http://<adressedemonserveur>/phpmyadmin

Si cela ne fonctionne pas, vérifiez la présence du fichier phpmyadmin.conf dans /etc/apache2/conf-available/.

S’il n’est pas présent, créez le lien symbolique manuellement :

ln /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf

Puis activer la configuration :

a2enconf phpmyadmin

Et enfin relancer le service Apache.

Si vous n’êtes pas dans un environnement de développement et que votre serveur est accessible depuis l’extérieure, je vous conseille de renommer votre alias phpmyadmin et d’ajouter une authentification htpasswd.

6. Ajouter un vhost

Remplacer monsite.fr par votre nom de domaine.

Ajoutons tout d’abord notre utilisateur toto au groupe www-data (groupe apache):

usermod -g www-data toto

Ensuite, il faut créer un sous répertoire dans le dossier document root d’apache :

mkdir /var/www/htdocs/monsite.fr

Changer le propriétaire et le groupe puis donner les droits au dossier nouvellement créé :

chown -R toto:www-data /var/www/htdocs/monsite.fr
chmod -R 770 /var/www/htdocs/monsite.fr

Vous pouvez également affiner les droits en donnant les privilège 640 aux fichiers et 750 aux dossiers. En vous positionnant dans le dossier en question (cd /var/www/htdocs/monsite.fr) , tapez les commandes suivantes :

find . -type d -exec chmod u=rwx,g=rx,o= '{}' \;
find . -type f -exec chmod u=rw,g=r,o= '{}' \;

Pour les dossiers qui doivent être en écriture (upload de fichiers), donnez les droits 770.

Ajouter le vhost en créant le fichier /etc/apache2/sites-available/monsite.conf puis y insérer :

<VirtualHost *:80>
        #ServerName monsite.fr

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/htdocs/monsite
        DirectoryIndex /index.php index.php
        ErrorLog ${APACHE_LOG_DIR}/monsite_error.log
        CustomLog ${APACHE_LOG_DIR}/monsite_access.log combined

        <Directory /var/www/htdocs/monsite>
        Require all granted
        AllowOverride All
        </Directory>
</VirtualHost>

Activer le Vhost :

a2ensite monsite

Et enfin redémarrer apache :

/etc/init.d/apache2 restart

Plus d’informations

Voilà, vous savez dorénavant monter un serveur Web sous Debian 8 Jessie. Vous pouvez aller plus loin en installant php-fpm, des backups automatisés, etc. Je vous invites à farfouiller dans la doc de Debian et d’apache 2 :

Vos suggestions sont les bienvenues 😉

Partagez cet article

Avez-vous trouvé cet article utile ?
Article utile ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *