Installer WordPress avec LEMP (Nginx, MariaDB, PHP-FPM) sous Arch Linux

Dans ce tutoriel, je vais décrire pas à pas comment installer un serveur web LEMP comprenant Nginx, PHP-FPM et MariaDB afin d'utiliser le CMS WordPress localement sur la distribution Arch Linux.

Travailler en local peut s'avérer fort utile lorsqu'il s'agit par exemple de tenir un blog pour un usage personnel, mais dans le cas où vous souhaiterez utiliser WordPress en production, je ne serais trop vous conseiller de vous tourner vers une distribution plus stable comme Debian sauf si vous savez vraiment ce que vous faites.

En effet, Arch Linux est une distribution en rolling-release et de ce fait, la moindre mise à jour peut s'avérer dramatique pour votre serveur web. Il est donc très important de bien réfléchir avant de vouloir utiliser Arch Linux en production.

Nginx et PHP-FPM

Nous allons commencer la procédure en installant Nginx et PHP-FPM. Ouvrez le terminal pour installer les paquets nécéssaires :

sudo pacman -Syy
sudo pacman -S nginx php-fpm php-gd php-intl php-imagick wget

Editez le fichier /etc/php/php.ini afin d'activer les extensions gd, gettext, intl et mysqli en retirant le caractère ";" au début de chaque ligne correspondante :

sudo nano /etc/php/php.ini

Il faudra également modifier le fichier /etc/nginx/conf.d/imagick.ini afin de retirer le ";" qui permettra l'activation de l'extension :

extension=imagick

Créez les répertoires site-available et site-enabled dans /etc/nginx :

sudo mkdir /etc/nginx/site-available
sudo mkdir /etc/nginx/site-enabled

Ensuite, editez le fichier /etc/nginx.conf afin d'alléger son contenu notamement en supprimant les commentaires inutiles. Vous pouvez directement utiliser ce fichier de configuration minimaliste :

#user html;
worker_processes 1;

events {
    worker_connections  1024;
}

http {
    include mime.types;
    default_type application/octet-stream;

    sendfile on;
    keepalive_timeout 65;

    gzip on;

    # DEFAULT
    server {
        server_name localhost;
        listen 80;

        root /srv/http;
        index index.php;
        server_tokens off;

        include snippets/phpfpm.conf;
    }

    include sites-enabled/*;
}

Dans ce fichier de configuration, le plus important est l'inclusion de tous les fichiers qui se trouveront dans le répertoire sites-enabled et la partie concernant le "virtual host" par défaut avec l'inclusion du snippet phpfpm.conf indispensable pour afficher les pages en PHP.

A ce stade, nous pouvons vérifier le fonctionnement de Nginx et PHP-FPM en créant le fichier /srv/http/phpinfo.php contenant cette unique ligne de code :

<?= phpinfo(); >

Changez les droits sur le dossier /srv/http, sinon il ne sera pas possible pour Nginx d'afficher les pages :

sudo chown http:http /srv/http

Activez et démarrez les services :

sudo systemctl enable php-fpm
sudo systemctl enable nginx
sudo systemctl start nginx

En rentrant l'adresse localhost/phpinfo.php, vous devriez être en mesure de voir toutes les informations sur la configuration de PHP-FPM.

Installation de MariaDB

Procédons à présent à l'installation de MariaDB :

sudo pacman -S mariadb

Avant de démarrer le service, il sera nécéssaire d'exécuter cette commande :

sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Activez et démarrez le service :

sudo systemctl enable mariadb
sudo systemctl start mariadb

Puis connectez-vous au serveur :

sudo mysql -u root -p

Créez un nouvel utilisateur en entrant ces quelques lignes (remplacez naturellement $user par le nom d'utilisateur souhaité et $password pour le mot de passe) :

CREATE USER '$user'@'localhost' IDENTIFIED BY '$password';
GRANT ALL PRIVILEGES ON *.* TO '$user'@'localhost';
FLUSH PRIVILEGES;
quit

Installation de phpMyAdmin

Pour administrer les bases de données du serveur web, il faut installer phpMyAdmin :

sudo pacman -S phpmyadmin

Créez le fichier de configuration pour Nginx /etc/nginx/site-available/phpmyadmin.conf :

server {
    server_name phpmyadmin.localhost;
    listen 80;

    root   /usr/share/webapps/phpMyAdmin;
    index  index.php;
    server_tokens off;

    access_log /var/log/nginx-access.log;
    error_log /var/log/nginx-error.log;
    client_max_body_size 10M;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    include snippets/phpfpm.conf
}

Activez le fichier de configuration de phpMyAdmin en créant un lien symbolique :

sudo ln -s /etc/nginx/site-available/phpmyadmin.conf /etc/nginx/site-enabled/phpmyadmin.conf

Editez le fichier /etc/hosts afin d'ajouter le nom d'hôte phpmyadmin.localhost :

127.0.0.1 phpmyadmin.localhost

Redemarrez Nginx et rendez-vous à l'adresse phpmyadmin.localhost depuis votre navigateur web (de préférence Firefox 😏) :

sudo systemctl restart nginx

Une fois connecté à l'administration, il ne restera plus qu'à créer la base de données à utiliser pour WordPress. Pour ce faire, cliquez sur le lien nouvelle base de données à gauche de la page, indiquez le nom de la base de données (par exemple wordpress) puis cliquez sur le bouton créer. La nouvelle base de données devrait s'afficher aussitôt dans la liste se trouvant à gauche.

Installation de WordPress

Maintenant que nous avons un serveur web fonctionnel, nous pouvons sans plus tarder démarrer l'installation de WordPress. A l'aide de wget, téléchargez et décompressez la dernière version s'avérant être la 5.5.3 au moment où j'écris ce tutoriel.

cd /srv/http
sudo wget https://fr.wordpress.org/latest-fr_FR.zip
sudo unzip latest-fr_FR.zip
sudo chmod -R http:http wordpress

Créez le fichier de configuration wordpress.conf dans le dossier /etc/nginx/site-available :

sudo nano /etc/nginx/site-available/wordpress.conf

Insérez cette configuration dans le fichier :

server {
    server_name wordpress.localhost;
    listen 80;

    root   /srv/http/wordpress;
    index  index.php;
    server_tokens off;

    access_log /srv/http/wordpress/logs/nginx-access.log;
    error_log /srv/http/wordpress/logs/nginx-error.log;
    client_max_body_size 10M;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    include snippets/phpfpm.conf;
}

Encore une fois, éditez le fichier /etc/hosts afin d'y ajouter le nom d'hôte wordpress.localhost afin d'accéder plus simplement à WordPress :

127.0.0.1 phpmyadmin.localhost
127.0.0.1 wordpress.localhost

Redémarrez Nginx afin de prendre compte la configuration de WordPress :

sudo systemctl restart nginx

Nous pouvons alors démarrer l'installation de WordPress en se rendant directement à l'adresse wordpress.localhost depuis le navigateur. Si tout fonctionne correctement, vous devriez voir une page vous invitant à démarrer l'installation de WordPress. Sans plus attendez, cliquez sur le buton c'est parti ! pour commencer.

Remplissez les différentes informations demandées, à savoir le nom de l'host qui est localhost, le nom de la basse de données wordpress puis le nom d'utilisateur et le mot de passe que vous avez indiqués lors de la configuration de MariaDB puis cliquez sur suivant.

Attention, le mot de passe de la base de données sera affiché en clair ! Il sera donc visible par toutes les personnes regardant votre écran. Il est en revanche possible de le masquer en ajoutant au champ l'attribut type="password". Si vous utilisez le navigateur Firefox, faites un clique droit sur le champ et cliquez sur examiner l'élément afin injecter le type password.

Une fois WordPress connecté à la base de données, il ne restera plus qu'à indiquer le nom du site, le nom utilisateur avec son mot de passe pour le compte administrateur et une adresse courriel valide avant de procéder à l'installation.

Et voilà ! L'installation de WordPress est enfin terminée et il est possible de se connecter à l'administration à l'aide de votre identifiant et votre mot de passe.

Article précédent

Développer sur Master System en assembleur

Article suivant

Installer Arch Linux

0 commentaire

Laisser un commentaire