Installer un serveur LAMP pour WordPress

Installer un serveur LAMP pour Wordpress

Installer un serveur LAMP pour WordPress sur son réseau local peut être un bon moyen de départ pour ceux qui souhaitent s’adonner au développement de thèmes et de plugins.

Certains diront que cette idée est farfelue et qu’il suffit d’installer une suite logicielle telle que Xamp, Wamp pour Windows ou encore Mamp pour Mac OS X.
Mais il faut savoir, que ces suites logicielles ont souvent un train de retard sur les mises à jour, et plugins ne fonctionnent tous simplement pas avec ce type d’installation.

Les prés-requis techniques pour pouvoir installer un serveur LAMP pour WordPress

Avant d’installer WordPress il est primordial d’avoir :

  • un ordinateur dédié qui servira de serveur. Un vieux PC fera l’affaire, mais ne jamais prendre l’ordinateur familial, car il faudra formater le disque dur pour installer le nouvelle OS.
  • un second ordinateur qui fera office de client.
  • une carte Ethernet. Oubliez le Wi-Fi, trop instable.
  • un câble Ethernet pour relier le PC à votre modem box.

Remarque : Debian sera installé sans GUI (Graphical, User, Interface), il est donc toute a fait envisageable d’utiliser une machine virtuelle.

Notre environnement de travail

Notre environnement de travail est configuré de la manière suivante :

  • un PC vierge, connecté à un modem box en Ethernet.
  • un système d’exploitation Linux. Ici c’est Debian qui sera retenu.
  • un serveur Web. Apache est à privilégier avec WordPress
  • un SGBDR (Système de Gestion de Base de Données Récursive). Ici c’est MySQL qui sera retenu.
  • PhpMyAdmin, pour gérer la base de donné de façon plus conviviale.
  • le logiciel PHP afin qu’Apache puisse gérer le langage du même nom.
  • un serveur FTP. Les dépôts de Debian proposent Vsftp.

Remarque : Il sera question uniquement d’héberger WordPress. Le nom de domaine ne sera pas abordé ici. Pour plus de renseignements sur le sujet, rendez-vous sur la documentation officielle de Bind9.

Etape 1 : Installation système

Téléchargez la dernière version de Debian, puis fait une installation typique de Debian.
Pour plus de renseignements sur cette étape, n’hésitez pas à consulter la documentation officielle.

Optionnels : afin de ne pas encombrer le système de packages inutiles, lors de la sélection de logiciel, n’hésitez pas à décocher : environnement de bureau Debian et serveur d’impression. Ne gardez que : Utilitaires usuels du système.

Une fois l’installation terminée, l’ordinateur démarre pour la première fois sur le nouveau système. Par défaut la carte réseau est configurée en DHCP. La première étape va consister à l’attribution d’une IP fixe.

Etape 2 : Adresse IP fixe.

Dans le terminal, se connecter en tant que root :

$ su root
Mot de passe

Editez le fichier /etc/networks/interface :

# nano /etc/networks/interface

Modifiez le fichier comme ci-dessous en remplacent les valeurs en rouge par en fonction de vos paramètres réseau.

# The primary network interface
2 auto eth0
3 iface <span style="color: #ff0000;">eth0</span> inet static
4 address <span style="color: #ff0000;">192.168.1.254</span>
5 netmask <span style="color: #ff0000;">255.255.255.0</span>
6 gateway <span style="color: #ff0000;">192.168.1.1</span>

Modifiez également le fichier resolv.conf pour le DNS

#nano /etc/resolv.conf

Modifiez-le en renseignant les serveurs DNS 1 et DNS 2 fourni par votre FAI. Ces informations sont disponibles dans l’interface Web de votre box.

Redémarrer l’interface réseau eth0 afin qu’ils soient pris en considération

# /etc/init.d/networking restart

Afin de s’assurer que tous fonctionnent, profitez-en pour mettre à jour la liste des dépôts de Debian à l’aide la commande suivante :

# atp-get update

Si la mise à jour fonctionne, c’est que les paramètres sont bons. Dans le cas contraire il faut recommencer cette étape.

Etape 3: Le serveur FTP

Installation et configuration du serveur FTP à l’aide du deamon vsftpd (Very Secure FTP Daemon).

# apt-get install vsftpd

Le serveur est maintenant lancé et écoute sur le port 21.
Si le serveur n’est pas derrière un firewall, en attendant de l’avoir configuré il est sage de l’arrêter :

# /etc/init.d/vsftpd stop

Ouvrez le fichier de configuration, et suivez l’article pour les principales options :

# nano /etc/vsftpd.conf

A noter que le fichier est abondamment commenté en anglais et que toutes les options sont listées dans le manuel du même nom :
man vsftpd.conf

Par défaut seule la connexion anonyme est autorisée, elle a accès au répertoire /srv/ftp/ ce qui constitue une faille de sécurité. Pour le désactiver, modifiez la ligne comme ci-dessous :

anonymous_enable=NO

A la place définissez un compte du système précis comme propriétaire des fichiers envoyés. Pour cela retirer les commentaires (supprimer le # devant la ligne) pour :

chown_uploads=YES
chown_username=<span style="color: #ff0000;">$USER</span>

Pour permettre l’identification des utilisateurs système :
local_enable=YES
Pour autoriser l’écriture :

write_enable=YES

Enregistrez les modifications puis quittez nano. A présent il faut redémarrer le deamon :

# /etc/init.d/vsftpd start

Etape 4 : Installation de MySQL

Installez ensuite Mysql en utilisant les commandes suivantes :

# apt-get install mysql-server mysql-client

Durant l’installation MySQL demandera de créer un mot de passe pour l’utilisateur root de MySQL.

Etape 5 : Installation d’Apache2

Installez le serveur web comme ceci :

# apt-get install apache2 apache2-doc

Activez le module :

# a2enmod userdir

En tant qu’utilisateur (pas comme root), créez un dossier dans son dossier home :

# exit
$mkdir /home/$USER/public_html

En tant que root, changez le groupe du dossier et redémarrez le serveur :

# chgrp www-data /home//public_html
# service apache2 restart

Afin d’éviter toute erreur 403 « Forbidden » lorsque l’on essaye d’accéder à une page personnelle, mettez les permissions de /home/$USER en chmod 755 :

# chmod 755 /home/$USER

Vérifiez que le serveur Apache fonctionne bien. Sur l’ordinateur client tapez l’adresse IP du serveur dans la barre d’adresse du navigateur Web. Le message It Works ! doit apparaitre.

Etape 6: Installation de PHP

Le P de LAMP peut signifier PHP, Python ou encore Perl. WordPress étant écrit en PHP, c’est donc PHP qui sera installé avec la commande :

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

Testons à présent PHP. Supprimer le fichier /var/www/index.html en tant que root :

# rm /var/www/index.html

Créez à présent le fichier index.php mais cette fois-ci en qu’utilisateur :

# exit
$ nano /var/www/index.php

Dans ce fichier ajoutez la ligne de code suivante.

<!--?php phpinfo(); ?-->

Enregistrez, quittez.
Sur l’ordinateur client, dans le navigateur, retaper l’adresse IP du serveur, à la place du message It Works !, doit s’afficher la configuration de PHP.

Etape 7 : Installation de PhpMyAdmin

Worpdress nécessite la création d’une base de données. Les puristes créeraient la base donnée directement dans le terminal, mais pour ceux qui souhaitent quelques chose de plus user friendly, installez PhpMyAdmin comme suite :

# apt-get install phpmyadmin

Durant l’installation le mot de passe root de MySQL sera demandé, de même qu’un mot de passe root pour PhpMyAdmin. Inutile de préciser que pour des raisons de sécurité il est recommandé de choisir un mot de passe différent.

Retourner dans le navigateur Web de votre machine cliente, puis taper l’adresse IP du serveur suivit de /phpmyadmin

Ex : 192.168.1.254/phpmyadmin

Entez le nom d’utilisateur root, puis le mot de passe créé pendant l’installation.
Toujours pour des raisons de sécurité, il est conseillé de créer un nouvel utilisateur, pour cela allez dans Privilèges puis Ajouter un utilisateur. Renseignez les champs Nom d’utilisateur, Client (sélectionnez Utiliser la table Host) et Mot de passe. Cochez également la ligne :  Créer une base portant son nom et donner à cet utilisateur tous les privilèges sur cette base

A présent votre serveur est prêt à accueillir WordPress. L’installation de WordPress est décrite dans l’article intitulé: Sécuriser WordPress dès l’installation

2 Comments

Leave a Reply