Catégories
Debian Linux

Installer un serveur web LAMP sous Debian 9 Stretch

Un serveur LAMP, est la combinaison de 4 paquets, (L) Linux, (A) Apache, (M) Mysql / MariaDB, (P) PHP / Pearl / Python. Ce pack est tous simplement un serveur web complet qui va permettre d’héberger vos sites web avec des bases de données.

L’installation d’un serveur LAMP n’as rien de bien compliquer, il suffit juste d’en connaître les bonnes pratiques.


Ce tutoriel n’a pas de pré-requis, même si je vous recommande chaudement d’aller lire au moins en diagonale mon article sur  Les indispensables après l’installation de Debian pour êtres sûr de partir sur des bases saines.

Si vous souhaité héberger votre propre site, il vous faudra un accès FTP, pour pouvoir transféré vos fichiers, aller consulté mon article pour faire un serveur FTP.

Dans ce tutoriel, nous utiliserons PHP version 7.0 et MariaDB comment moteur de bases de données.

Installation et Configuration de Apache 2

Apache est le serveur web qui est certainement le plus utilisé dans le monde de l’hébergement de site web.

# Installation Apache2 et modules complémentaire pour PHP 7
apt-get update && apt-get install apache2 apache2-mod-php7.0 libapache2-mod-php7.0

À cette étape là, on peut vérifier le bon fonctionnement de apache en ce rendant sur l’ip de votre serveur via votre navigateur préféré.

Apache dispose de beaucoup de modules très utile, nous allons en installer quelques-uns utilisés couramment par les CMS.

# Pour la réécriture d'url
a2enmod rewrite

# Pour la compression
a2enmod deflate

# Pour contrôler et modifier les headers
a2enmod headers

Un petit tour dans le fichier de configuration d’Apache s’impose pour activer les modules et au passage, on va désactiver la signature du serveur dans les erreurs du type 404, 403 … Cela permet de ne pas donner la version de apache utilisé à n’importe qui.

# vim /etc/apache2/apache2.conf

# Ajout à la fin du fichier // activation module rewrite
<ifModule mod_rewrite.c>
RewriteEngine On
</ifModule>

# Ajout à la fin du fichier // désactivation de la signature serveur
ServerSignature Off

Avant de continuer nous allons redémarrer apache pour que toutes les modifications soit prises en compte.

service apache2 restart

Apache fonctionne sous forme de virtual-host, dans des fichiers de configuration. Pour nous simplifier la tache j’ai pour habitude de créer un template pré-configuré, qui va permettre de déployer un site rapidement sans aller chercher la doc.

# On se rend dans le dossier en question
# cd /etc/apache2/sites-available/

# On créer un template et on y ajoute
# vim template.conf

<VirtualHost *:80>
	ServerName 
	ServerAlias 

	DocumentRoot /var/www/

	<Directory /var/www/>
		Options -Indexes +FollowSymLinks
		AllowOverride All
		Require all granted
	</Directory>
</VirtualHost>

Pour mettre en ligne votre premier site que nous allons appeler monsupersite, on va devoir copier et configuré notre template.

# On copie le template
cp /etc/apache2/sites-available/template.conf /etc/apache2/sites-available/monsupersite.conf

# On le configure avec votre nom de domaine et le chemin du site
vim /etc/apache2/sites-available/monsupersite.conf

<VirtualHost *:80>
	ServerName monsupersite.fr
	ServerAlias www.monsupersite.fr

	DocumentRoot /var/www/monsuperdirectory

	<Directory /var/www/monsuperdirectory>
		Options -Indexes +FollowSymLinks
		AllowOverride All
		Require all granted
	</Directory>
</VirtualHost>

Une fois configuré, il ne nous reste plus qu’a l’activé, rien de plus simple.

# Activaton du site
a2ensite monsupersite

# Reload apache pour qu'il le prenne en compte le changement
service apache2 reload

# Pour dans le cas contraire désactivation d'un site
a2dissite monsupersite


# Reload apache pour qu'il le prenne en compte le changement
service apache2 reload

Nous allons maintenant installer PHP v 7 et ses modules pour êtres tranquilles.

apt-get install php7.0 php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php7.0-cli php7.0-cgi php7.0-imagick php7.0-imap php7.0-mcrypt php7.0-memcache php7.0-pspell php7.0-recode php7.0-snmp php7.0-sqlite php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-imagick imagemagick libruby php7.0-memcached memcached php7.0-mbstring

On redémarre le serveur web

service apache2 restart

Voilà, nous avons à présent un serveur web en capable d’afficher des sites web en php, sans base de données.

Installation et configuration de MariaDB

MariaDB et tous simplement un fork plus performant de Mysql, et toutes les commandes sont identiques, donc libre à vous de choisir le moteur de bases de données que vous préférez installer.

# Installation de MariaDB
apt-get -y install mariadb-server

Nous allons le configurer et au passage un peu de sécurisation, avec cette commande qui va nous poser des questions sur la configuration souhaité. Pour toutes les question répondre « Y » et pour la première vous allez pouvoir définir le mot de passe root de Mysql/MariaDB.

mysql_secure_installation

# Voici les questions poser et les réponses, pour la première vous allez définir le mot de passe root du moteurDB
# Set root password? [Y/n] Y
# Remove anonymous users? [Y/n] Y
# Disallow root login remotely? [Y/n] Y
# Remove test database and access to it? [Y/n] Y
# Reload privilege tables now? [Y/n] Y

Pour contrôler facilement nos bases de données nous allons utiliser phpMyAdmin, alors on va préparer le terrain en créant un utilisateur. N’oubliez pas de remplacer « MONSUPERPASSWD » par le mot de passe désiré pour ce connecté au panel phpMyAdmin.

# On ce connecte à la DB en root
mysql --user=root mysql

# Création de l'utilisateur phpmyadmin et attribution des droits
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'MONSUPERPASSWD';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

# On se déconnecte
exit

Mise en place de phpMyAdmin, on va le télécharger l’extraire dans le répertoire /var/www. Vérifier s’il n’existe pas une version plus récente de phpMyAdmin sur leur site web phpmyadmin.net.

cd /var/www

wget https://files.phpmyadmin.net/phpMyAdmin/4.7.3/phpMyAdmin-4.7.3-all-languages.zip

unzip phpMyAdmin-4.7.3-all-languages.zip

rm phpMyAdmin-4.7.3-all-languages.zip

mv phpMyAdmin-4.7.3-all-languages phpmyadmin

J’ai choisi de le rendre disponible sur le sous-domaine phpmyadmin.monsupersite.fr. Configuration et activation sur le serveur web pour rendre le panel disponible via internet.

# Création virtual host pour phpmyadmin
cp /etc/apache2/sites-available/template.conf /etc/apache2/sites-available/phpmyadmin.conf

# On modifie la configuration
vim /etc/apache2/sites-available/phpmyadmin.conf

<VirtualHost *:80>
	ServerName phpmyadmin.monsupersite.fr
	ServerAlias www.phpmyadmin.monsupersite.fr

	DocumentRoot /var/www/phpmyadmin

	<Directory /var/www/phpmyadmin>
		Options -Indexes +FollowSymLinks
		AllowOverride All
		Require all granted
	</Directory>
</VirtualHost>

# On active le site et ont reload
a2ensite phpmyadmin && service apache2 reload

Notre phpMyAdmin est donc disponible maintenant à cette adresse phpmyadmin.monsupersite.fr.
Vous pouvez, vous y connecter avec les identifiants phpmyadmin créer précédemment.

Lors de votre première connexion, vous aurez un message en bas en bleu demandant d’initialiser phpmyadmin, vous avez juste à suivre les instructions, cela permet à phpmyadmin d’initialiser sa base de données.


Conclusion

Nous avons dès à présent, un serveur web LAMP fonctionnel et un minimum configurer et avec un panel de gestion de bases de données phpmyadmin. Il ne vous reste plus qu’à installer un serveur FTP pour transféré les fichiers de vos site sur votre serveur, si ce n’est pas déjà fait.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.