Agence web » Actualités du digital » Comment configurer un site WordPress sur vos propres serveurs (avec Ubuntu et NGINX)

Comment configurer un site WordPress sur vos propres serveurs (avec Ubuntu et NGINX)

Bien que vous puissiez toujours payer à quelqu’un d’autre des frais mensuels pour gérer votre instance WordPress, l’auto-hébergement a beaucoup de sens pour de nombreuses personnes qui ont du matériel existant pour profiter, ou qui veulent simplement un projet amusant pour configurer leur blog. Nous montrerons comment installer et configurer un site WordPress de base sur Ubuntu Linux à l’aide de NGINX.

Installation des dépendances

Tout d’abord, nous devrons installer NGINX. Mise à jour apt et installez-le:

sudo apt update
sudo apt install nginx

Si vous avez un pare-feu activé, comme UFW, vous devrez l’ouvrir:

sudo ufw allow 'Nginx HTTP'

Nous configurerons NGINX une fois WordPress installé. En attendant, nous devrons créer une base de données MySQL que WordPress pourra utiliser.

Si MySQL n’est pas installé, vous pouvez l’obtenir à partir de apt. Assurez-vous de courir mysql_secure_installation une fois qu’il est installé pour le verrouiller. Vous pouvez lire notre guide sur la sécurité générale des bases de données pour plus d’informations, mais tant que MySQL fonctionne sur localhost, ça devrait aller.

sudo apt install mysql-server
sudo mysql_secure_installation

Créez une base de données à utiliser par WordPress. Vous n’avez pas besoin de configurer de tables ou quoi que ce soit, juste une base de données vide fera l’affaire:

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Créez ensuite un utilisateur, appelé wordpressuser, et lui donner accès à la base de données. Assurez-vous de changer le mot de passe.

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

WordPress fonctionne sur PHP, il aura donc besoin de PHP installé pour fonctionner. Installez-le avec les extensions suivantes:

sudo apt install php-fpm php-mysql
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

Et redémarrez le service PHP pour vous assurer qu’il est à jour avec les nouvelles extensions. Notez que vous devrez peut-être modifier le numéro de version ici.

sudo systemctl restart php7.4-fpm.service

Installer WordPress

Téléchargez la dernière version de WordPress depuis leur site:

cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz

Ensuite, copiez l’exemple de configuration à l’emplacement que WordPress lit réellement:

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Déplacez le répertoire temporaire vers l’emplacement d’installation approprié, et chown les données:

sudo cp -a /tmp/wordpress/. /var/www/wordpress
sudo chown -R www-data:www-data /var/www/wordpress

Vous devrez définir les sels utilisés pour la sécurité et la gestion des mots de passe. Vous pouvez récupérer un nouvel ensemble de sels à partir de l’API de WordPress:

curl -s https://api.wordpress.org/secret-key/1.1/salt/

Ensuite, ouvrez le fichier de configuration de WordPress et collez les valeurs dans:

sudo nano /var/www/wordpress/wp-config.php

Pendant que vous êtes dans ce fichier, vous devrez configurer les paramètres de la base de données.

define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpressuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

define('FS_METHOD', 'direct');

Une fois que cela est fait, WordPress devrait être configuré et nous devrons configurer NGINX pour servir le contenu.

Configurer NGINX

NGINX utilise des fichiers de configuration dans /etc/nginx/sites-available/ pour configurer différents points de terminaison. Créez-en un nouveau pour votre site dans ce dossier et collez ce qui suit:

# Upstream to abstract backend connection(s) for php
upstream php {
        server unix:/var/run/php/php7.4-fpm.sock;
        server 127.0.0.1:9000;
}

server {
        ## Your website name goes here.
        server_name domain.tld;
        ## Your only path reference.
        root /var/www/wordpress;
        ## This should be in your http block and if it is, it's not needed here.
        index index.php;

        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }

        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }

        location / {
                # This is cool because no php is touched for static content.
                # include the "?$args" part so non-default permalinks doesn't break when using query string
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ .php$ {
                #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                include fastcgi_params;
                fastcgi_intercept_errors on;
                fastcgi_pass php;
                #The following parameter can be also included in fastcgi_params file
                fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
                expires max;
                log_not_found off;
        }
}

Notez que vous devrez entrer vos informations pour le nom d’hôte et d’autres paramètres, ainsi que mettre à jour la version PHP si vous en utilisez une plus récente. Vous devrez l’enregistrer dans sites-available, puis créez un lien symbolique vers sites-enabled pour l’allumer.

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Une fois activé, redémarrez NGINX et vous verrez WordPress si vous visitez le site dans votre navigateur. Vous devrez effectuer la procédure de configuration initiale.

sudo service nginx restart

Vous pourrez désormais consulter votre tableau de bord à tout moment à https://example.com/wp-admin/.

Ensuite, vous devrez configurer SSL pour sécuriser les connexions sur votre site. Vous pouvez le faire gratuitement en utilisant certbot, une interface CLI pour les certificats gratuits de LetsEncrypt.

sudo apt-get install certbot

sudo apt install python3-certbot-nginx

Ensuite, exécutez certbot:

sudo certbot nginx -certonly

Après cela, vous devrez redémarrer NGINX.

redémarrage du service sudo nginx

Configuration de votre site

Toutes nos félicitations! Vous avez un site WordPress en cours d’exécution. Cela a probablement l’air terrible avec le thème par défaut. La première chose que vous voudrez faire est de changer le thème, ce que vous pouvez faire à partir du tableau de bord:

Quel que soit le thème que vous choisissez, vous devrez l’activer à partir de l’onglet Apparence.

Ensuite, vous pouvez configurer les paramètres et le style en visitant le site et en cliquant sur «Personnaliser» dans l’en-tête. L’une des meilleures choses que vous puissiez faire est d’ajouter du CSS entièrement personnalisé au site, ce qui peut modifier n’importe quel élément de la page.

Si vous souhaitez modifier quelque chose dans le thème et que cela ne vous dérange pas de jouer avec PHP, vous pouvez modifier directement vos fichiers de thème. Par exemple, j’ai modifié mon fichier de thème pour mettre en page une grille avec deux côtés de publication, plutôt qu’une simple liste de publications.

cd /var/www/wordpress/wp-content/themes/dark-press/
sudo nano index.php

Comment profiter pleinement de son site ensuite ?

La gestion d’un serveur est donc complexe, bien plus que l’installation de WordPress qui, au final, est assez simple et rapide comme vous avez pu le constater. Si la configuration d’un serveur relève de vraies compétences pointues, installer un site wordpress et l’alimenter est plutôt un jeu d’enfants, en comparaison. Tout a en effet été pensé pour que l’utilisateur ait à utiliser une interface qui soit la plus intuitive possible. WordPress est devenu le CMS – outil de gestion de contenus pour le web – le plus utilisé au monde, laissant derrière lui tous ces concurrents. C’est d’abord parce qu’il y avait une véritable volonté d’offrir aux utilisateurs des outils de la plus grande facilité d’utilisation possible. Désormais la plus grande partie des sites internet sur lesquels on peut naviguer ont une base WordPress. En effet les développeurs sont en mesure de prendre le package de base du CMS et d’en faire pratiquement ce qu’ils veulent. Ils gagnent donc un temps précieux, et peuvent de plus donner satisfaction à ceux qui souhaitent un site web ayant telle ou telle forme, avec en plus un back office simple à prendre en main, même par ceux qui n’ont pas l’habitude du web.

L’hébergement du site joue aussi un rôle très important, c’est pourquoi le fait de pouvoir administrer son propre serveur est de la plus grande importance, quand on veut être tout-à-fait indépendant dans la gestion de son projet web. Avec toutes les informations ci-dessus, ce ne sera pas difficile à faire, même si au départ vous avez peur de vous tromper à chaque étape ou presque. Il faudra prendre votre temps et bien lire chaque conseil qui vous est donné ici, et à partir de là, vous n’aurez aucune difficulté à gérer votre hébergement, ni à utiliser votre site.

★★★★★