Christophe Ti

(Christophe TREMBLAY-GUILLOUX)

Ingénieur système Linux – TJM: 630 € HT

L’impression d’être entouré ou conseillé par des soi-disant « Expert Linux » (avant qu’ils ne disparaissent du radar) ?

Christophe est l’ULTIME expert en système Linux, hébergement web et développement Puppet que vous garderez dans vos contacts… à vie.

Comment installer WordPress sur un VPS OVH, à la perfection ?

Les conseils privés de Christophe Ti

Quelles sont les mystérieuses techniques que j’utilise pour vous fournir un serveur Linux Debian (ou hébergement web), fiable, performant et sécurisé, sans devoir monter la garde jour et nuit ?

Bienvenue ! Vous avez eu raison de choisir un hébergement dédié (VPS, Public Cloud, Serveur dédié) pour votre WordPress, il sera plus rapide.

Voici le tutoriel pour installer manuellement un serveur Debian pour WordPress.

Bon tuto !

Nous allons installer ensemble WordPress :

  • sur un VPS OVHCloud dédié à cette utilisation. (Vous pouvez démarrer sur la gamme starter et augmenter la puissance par la suite).
  • MAIS : les instances Public Cloud disposent de plus de puissance CPU (sauf les gammes sandbox/discovery).

Ce tutoriel se concentre volontairement sur les actions minimum pour obtenir rapidement un WordPress en ligne. Certains aspects plus poussés seront abordés dans d’autres tutoriels.

N’ayant pas de VPS de test, ce tutoriel a été préparé sur une machive virtuelle proxmox.

1. Réservez une URL pour le site web

D’abord, vous avez besoin d’un nom de domaine sinon il n’y aura pas de site internet.

Mon URL sera : https://wordpress-dmo.libreok.ovh

2. Notez l'adresse IP du VPS

Il faut se rendre dans le manager OVH et lire l’IPv4 :

3. Configurez la zone DNS de votre nom de domaine

Mon nom de domaine est libreok.ovh., je me rends dans sa configuration pour ajouter une entrée de type A pour mon site de test :

4. Connectez-vous au compte root du VPS

Pour administrer le VPS, vous devez vous connecter au compte root par SSH.

(Beaucoup de tutoriels sur internet présentent les commandes à taper préfixées de la commande sudo afin de préciser que la commande se lance sous le compte root. Je ne vais préfixer ici aucune commande de sudo car je me connecte en permanence avec le compte root. Si vous suivez le tutoriel dans l’ordre, il n’y aura aucun soucis.)

Pour vous connecter au compte root des VPS OVH, vous devez passer par le compte intermédiaire créé par OVH : debian (pour le cas des distributions Debian).

Si vous travaillez sous Windows, je vous invite à utiliser Putty pour vous connecter par le protocole SSH au VPS. Vous pouvez aussi utiliser aussi le Powershell.

Si vous êtes déjà sous Linux ou Mac, c’est nettement plus simple, vous lancez juste un terminal :

				
					ssh -4 debian@vps-xxxxxxxx.vps.ovh.net
				
			
				
					Linux dmo1 5.10.0-15-cloud-amd64 #1 SMP Debian 5.10.120-1 (2022-06-09) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Jun 25 22:50:52 2022 from 2001:41d0:302:1100::9:ef69
debian@dmo1:~$

				
			

Puis passez root :

				
					sudo su -
				
			

5. Mettez à jour le système

Avant de continuer, on va mettre à jour le système fraîchement installé et le redémarrer :

5.1 Mise à jour des index des paquets logiciels

				
					apt update
				
			
				
					Hit:1 http://deb.debian.org/debian bullseye InRelease
Hit:2 http://security.debian.org/debian-security bullseye-security InRelease
Hit:3 http://deb.debian.org/debian bullseye-updates InRelease
Hit:4 http://deb.debian.org/debian bullseye-backports InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
root@dmo1:~#

				
			

5.2 Mise à jour des paquets (dans mon cas, c'est déjà à jour)

				
					apt upgrade
				
			
				
					Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
				
			

5.3 Redémarrage

On redémarre le VPS et on attend une minute avant de se reconnecter en root :

				
					reboot
				
			

6. Installation du service de base de données MariaDB (anciennement MySQL)

WordPress aura besoin d’enregistrer une partie de ses données en base de données. Voici comment préparer le service de base de données :

6.1 Connectez-vous de nouveau serveur en tant que root.

				
					ssh debian@vps-xxxxxxxx.vps.ovh.net
sudo su -
				
			

6.2 Installez les paquets de base de données

				
					apt install mariadb-server
				
			
				
					Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  galera-4 gawk libcgi-fast-perl libcgi-pm-perl libclone-perl libconfig-inifiles-perl libdbd-mariadb-perl libdbi-perl
  libencode-locale-perl libfcgi-bin libfcgi-perl libfcgi0ldbl libgdbm-compat4 libhtml-parser-perl libhtml-tagset-perl
  libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl liblwp-mediatypes-perl libmariadb3
  libmpfr6 libperl5.32 libsigsegv2 libsnappy1v5 libterm-readkey-perl libtimedate-perl liburi-perl lsof
  mariadb-client-10.5 mariadb-client-core-10.5 mariadb-common mariadb-server-10.5 mariadb-server-core-10.5 mysql-common
  perl perl-modules-5.32 rsync
Suggested packages:
  gawk-doc libmldbm-perl libnet-daemon-perl libsql-statement-perl libdata-dump-perl libipc-sharedcache-perl libwww-perl
  mailx mariadb-test netcat-openbsd perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make
  libtap-harness-archive-perl
The following NEW packages will be installed:
  galera-4 gawk libcgi-fast-perl libcgi-pm-perl libclone-perl libconfig-inifiles-perl libdbd-mariadb-perl libdbi-perl
  libencode-locale-perl libfcgi-bin libfcgi-perl libfcgi0ldbl libgdbm-compat4 libhtml-parser-perl libhtml-tagset-perl
  libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl liblwp-mediatypes-perl libmariadb3
  libmpfr6 libperl5.32 libsigsegv2 libsnappy1v5 libterm-readkey-perl libtimedate-perl liburi-perl lsof
  mariadb-client-10.5 mariadb-client-core-10.5 mariadb-common mariadb-server mariadb-server-10.5
  mariadb-server-core-10.5 mysql-common perl perl-modules-5.32 rsync
0 upgraded, 39 newly installed, 0 to remove and 0 not upgraded.
Need to get 26.7 MB of archives.
After this operation, 208 MB of additional disk space will be used.
Do you want to continue? [Y/n]
				
			

Note importante : dans beaucoup de tutoriels sur internet, vous trouverez des exemples qui proposent de lancer la commande mysql_secure_installation. Cette commande ne sert, a priori, à rien sur Debian. Le service installé par défaut est déjà sécurisé. Il n’y a pas de bases de données « test », il n’y a pas de compte anonyme. Le compte root du système est autorisé à se connecter en root de façon sécurisée sur MariaDB par socket et sans mot de passe, c’est très bien comme ça.

6.3 Créez un utilisateur pour WordPress dans MariaDB

6.3.1 Connexion à l’utilisateur root de MariaDB

Note importante : l’utilisateur root de MariaDB n’a rien à voir avec l’utilisateur root du système.

				
					mysql -u root mysql
				
			
				
					Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 30
Server version: 10.5.15-MariaDB-0+deb11u1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [mysql]>
				
			

6.3.2 Création de la base de données wordpress

Sous le prompt de MariaDB, tapez ces commandes suivantes :

				
					CREATE DATABASE wordpress CHARACTER SET utf8 COLLATE utf8_unicode_ci;
				
			
				
					Query OK, 1 row affected (0.000 sec)

MariaDB [mysql]> 
				
			

6.3.3 Création de l’utilisateur wordpress

Inventez un mot de passe pour l’utilisateur wordpress et notez-le pour plus tard (vous pouvez le conserver sur un gestionnaire de mot de passe).

Attention ! Remplacez mot_de_passe dans ce qui suite par un mot de passe !

				
					CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'mot_de_passe';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
FLUSH PRIVILEGES;
				
			
				
					MariaDB [mysql]> CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'xxxxxxxxx';
Query OK, 0 rows affected (0.001 sec)

MariaDB [mysql]> GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
Query OK, 0 rows affected (0.002 sec)

MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)

MariaDB [mysql]> 
				
			

6.3.4 Quittez le prompt MariaDB

				
					MariaDB [mysql]> \q
				
			

7. Installez PHP

				
					apt install php-soap php-fpm php-curl php-intl php-mbstring php-gd php-zip php-xml php-mysql php-imap php-imagick php-redis
				
			
				
					Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  bzip2 fontconfig-config fonts-dejavu-core fonts-droid-fallback fonts-noto-mono fonts-urw-base35 ghostscript gsfonts
  imagemagick-6-common libaom0 libavahi-client3 libavahi-common-data libavahi-common3 libc-client2007e libcups2
  libdav1d4 libde265-0 libdeflate0 libfftw3-double3 libfontconfig1 libgd3 libgomp1 libgs9 libgs9-common libheif1
  libidn11 libijs-0.35 libjbig0 libjbig2dec0 libjpeg62-turbo liblcms2-2 liblqr-1-0 libltdl7 libmagickcore-6.q16-6
  libmagickwand-6.q16-6 libnuma1 libonig5 libopenjp2-7 libpaper-utils libpaper1 libsodium23 libtiff5 libwebp6
  libwebpdemux2 libwebpmux3 libx11-6 libx11-data libx265-192 libxau6 libxcb1 libxdmcp6 libxext6 libxpm4 libxslt1.1
  libzip4 mailcap mime-support mlock php-common php-igbinary php7.4-cli php7.4-common php7.4-curl php7.4-fpm php7.4-gd
  php7.4-imap php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline php7.4-soap
  php7.4-xml php7.4-zip poppler-data
Suggested packages:
  bzip2-doc fonts-noto fonts-freefont-otf | fonts-freefont-ttf fonts-texgyre ghostscript-x uw-mailutils cups-common
  libfftw3-bin libfftw3-dev libgd-tools liblcms2-utils libmagickcore-6.q16-6-extra redis-server php-pear poppler-utils
  fonts-japanese-mincho | fonts-ipafont-mincho fonts-japanese-gothic | fonts-ipafont-gothic fonts-arphic-ukai
  fonts-arphic-uming fonts-nanum
Recommended packages:
  ttf-dejavu-core
The following NEW packages will be installed:
  bzip2 fontconfig-config fonts-dejavu-core fonts-droid-fallback fonts-noto-mono fonts-urw-base35 ghostscript gsfonts
  imagemagick-6-common libaom0 libavahi-client3 libavahi-common-data libavahi-common3 libc-client2007e libcups2
  libdav1d4 libde265-0 libdeflate0 libfftw3-double3 libfontconfig1 libgd3 libgomp1 libgs9 libgs9-common libheif1
  libidn11 libijs-0.35 libjbig0 libjbig2dec0 libjpeg62-turbo liblcms2-2 liblqr-1-0 libltdl7 libmagickcore-6.q16-6
  libmagickwand-6.q16-6 libnuma1 libonig5 libopenjp2-7 libpaper-utils libpaper1 libsodium23 libtiff5 libwebp6
  libwebpdemux2 libwebpmux3 libx11-6 libx11-data libx265-192 libxau6 libxcb1 libxdmcp6 libxext6 libxpm4 libxslt1.1
  libzip4 mailcap mime-support mlock php-common php-curl php-fpm php-gd php-igbinary php-imagick php-imap php-intl
  php-mbstring php-mysql php-redis php-soap php-xml php-zip php7.4-cli php7.4-common php7.4-curl php7.4-fpm php7.4-gd
  php7.4-imap php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline php7.4-soap
  php7.4-xml php7.4-zip poppler-data
0 upgraded, 88 newly installed, 0 to remove and 0 not upgraded.
Need to get 35.4 MB of archives.
After this operation, 133 MB of additional disk space will be used.
Do you want to continue? [Y/n]
				
			

8. Installez le service web NGINX

				
					apt install nginx-extras
				
			
				
					Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  geoip-database libgeoip1 libluajit-5.1-2 libluajit-5.1-common libnginx-mod-http-auth-pam
  libnginx-mod-http-cache-purge libnginx-mod-http-dav-ext libnginx-mod-http-echo libnginx-mod-http-fancyindex
  libnginx-mod-http-geoip libnginx-mod-http-geoip2 libnginx-mod-http-headers-more-filter libnginx-mod-http-image-filter
  libnginx-mod-http-lua libnginx-mod-http-ndk libnginx-mod-http-perl libnginx-mod-http-subs-filter
  libnginx-mod-http-uploadprogress libnginx-mod-http-upstream-fair libnginx-mod-http-xslt-filter libnginx-mod-mail
  libnginx-mod-nchan libnginx-mod-stream libnginx-mod-stream-geoip libnginx-mod-stream-geoip2 nginx-common
Suggested packages:
  geoip-bin fcgiwrap nginx-doc ssl-cert
The following NEW packages will be installed:
  geoip-database libgeoip1 libluajit-5.1-2 libluajit-5.1-common libnginx-mod-http-auth-pam
  libnginx-mod-http-cache-purge libnginx-mod-http-dav-ext libnginx-mod-http-echo libnginx-mod-http-fancyindex
  libnginx-mod-http-geoip libnginx-mod-http-geoip2 libnginx-mod-http-headers-more-filter libnginx-mod-http-image-filter
  libnginx-mod-http-lua libnginx-mod-http-ndk libnginx-mod-http-perl libnginx-mod-http-subs-filter
  libnginx-mod-http-uploadprogress libnginx-mod-http-upstream-fair libnginx-mod-http-xslt-filter libnginx-mod-mail
  libnginx-mod-nchan libnginx-mod-stream libnginx-mod-stream-geoip libnginx-mod-stream-geoip2 nginx-common nginx-extras
0 upgraded, 27 newly installed, 0 to remove and 0 not upgraded.
Need to get 6620 kB of archives.
After this operation, 17.2 MB of additional disk space will be used.
Do you want to continue? [Y/n]
				
			

9. Créez un compte utilisateur système pour wordpress

Nous allons organiser les répertoires de façon à être un peu tout-terrain comme si on pourrait avoir d’autres applications et en séparant l’exécution de wordpress sous son propre utilisateur.

9.1 Création des répertoires d’accueil

Attention : remplacez « wordpress-dmo.libreok.ovh » par votre URL à vous (sans le https://)

				
					SITEURL=wordpress-dmo.libreok.ovh
mkdir -p /var/www/users/wor /var/www/users/wor/home /var/www/users/wor/${SITEURL} /var/www/users/wor/${SITEURL}/app /var/www/users/wor/${SITEURL}/data /var/www/users/wor/${SITEURL}/scripts /var/www/users/wor/${SITEURL}/log /var/www/users/wor/${SITEURL}/tmp
				
			

9.2 Création de l’utilisateur

				
					useradd wor --home /var/www/users/wor/home --gid users --shell /bin/bash
				
			

9.3 Attributions des droits et des accès aux répertoires

				
					chmod 0751 /var/www/users /var/www/users/wor /var/www/users/wor/home /var/www/users/wor/${SITEURL} /var/www/users/wor/${SITEURL}/app
chmod 0701 /var/www/users/wor/${SITEURL}/tmp
chmod 0710 /var/www/users/wor/${SITEURL}/data
chmod 0700 /var/www/users/wor/${SITEURL}/scripts /var/www/users/wor/${SITEURL}/log 
chgrp users /var/www/users/wor /var/www/users/wor/${SITEURL}
chown wor:users /var/www/users/wor/home /var/www/users/wor/${SITEURL}/app /var/www/users/wor/${SITEURL}/log /var/www/users/wor/${SITEURL}/tmp /var/www/users/wor/${SITEURL}/scripts
chown wor:www-data /var/www/users/wor/${SITEURL}/data
				
			

10. Téléchargement et décompression de WordPress

On passe sous l’utilisateur wor pour télécharger et décompresser puis on revient root :

Attention : remplacez « wordpress-dmo.libreok.ovh » par votre URL à vous (sans le https://)

				
					su - wor
SITEURL=wordpress-dmo.libreok.ovh
SYSUSER=`whoami`
wget https://fr.wordpress.org/wordpress-latest-fr_FR.tar.gz
tar xvzf wordpress-latest-fr_FR.tar.gz -C /var/www/users/${SYSUSER}/${SITEURL}/app
exit
				
			

11. Création d’un lien symbolique vers le bon répertoire de l’application

Ce lien sera utilisé par le service web pour trouver le répertoire de l’application. Dans un contexte d’installation d’autres applications, ce système serait adaptable pour d’autres applications qui auraient une structure différente.

Attention : nous sommes de nouveaut root (suite à la commande « exit » de la commande précédente)

				
					ln -s /var/www/users/wor/${SITEURL}/app/wordpress /var/www/users/wor/${SITEURL}/web
				
			

12. Configuration du pool PHP pour wordpress

Éditez un nouveau fichier :

				
					nano /etc/php/7.4/fpm/pool.d/wordpress.conf
				
			

Puis mettez ce contenu (nous allons remplacer le mot clé SITEURL juste après) :

				
					[wordpress]
user = wor
group = users
listen = /var/run/php7-fpm-wor.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 5
pm.max_requests = 1000
catch_workers_output = yes
security.limit_extensions = .php
php_value[include_path] = .
php_admin_value[error_log] = /var/www/users/wor/SITEURL/log/php-fpm.error.log
php_admin_value[max_input_time] = 180
php_admin_value[max_input_vars] = 3000
php_admin_value[memory_limit] = 256M
php_admin_value[open_basedir] = /var/www/users/wor/SITEURL/web/:/var/www/users/wor/SITEURL/app/:/var/www/users/wor/SITEURL/data/:/var/www/users/wor/SITEURL/log/:/var/www/users/wor/SITEURL/tmp/
php_admin_value[upload_tmp_dir] = /var/www/users/wor/SITEURL/tmp/
				
			

Sauvegardez le fichier : ctrl-X puis Y et touche entrée.

Maintenant on remplace le mot clé :

				
					sed -i "s/SITEURL/${SITEURL}/g" /etc/php/7.4/fpm/pool.d/wordpress.conf
				
			

Relancez php-fpm :

				
					systemctl restart php7.4-fpm
				
			

13. Création du certificat SSL

On installe maintenant l’outil certbot qui permet de demander un certificat SSL à letsencrypt :

				
					apt -y install certbot
				
			

L’outil va couper le serveur nginx le temps de demander le certificat :

Attention : remplacez « votreemail@votrecomain.com » par votre adresse courriel :

				
					certbot certonly --standalone --agree-tos --no-eff-email -m votreemail@votredomain.com -d ${SITEURL} --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
				
			
				
					Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Account registered.
Running pre-hook command: systemctl stop nginx
Requesting a certificate for wordpress-dmo.libreok.ovh
Performing the following challenges:
http-01 challenge for wordpress-dmo.libreok.ovh
Waiting for verification...
Cleaning up challenges
Running post-hook command: systemctl start nginx

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/wordpress-dmo.libreok.ovh/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/wordpress-dmo.libreok.ovh/privkey.pem
   Your certificate will expire on 2022-10-26. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. To non-interactively renew *all* of your
   certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

root@dmo1:~# 
				
			

14. Configurez NGINX

On efface le fichier de configuration par défaut :

				
					rm /etc/nginx/sites-enabled/default
				
			

On crée un répertoire pour écrire de petits bouts de configuration à inclure par la suite :

				
					mkdir /etc/nginx/includes
				
			

On édite un nouveau fichier de configuration pour de futurs accès letsencrypt si on veut remplacer le renouvellement de la méthode standalone à la méthode webroot :

				
					mkdir -p /var/acme/.well-known/acme-challenge/
nano /etc/nginx/includes/acme.conf
				
			
				
					location ^~ /.well-known/acme-challenge/ {
    root      /var/acme;

    autoindex off;
    index     index.html;
    try_files $uri $uri/ =404;
    auth_basic off;
}
				
			

On édite un nouveau fichier de configuration pour  l’accès en HTTP (sans SSL) :

				
					nano /etc/nginx/sites-available/${SITEURL}.conf
				
			

On met ceci dans l’éditeur (nous allons remplacer le mot clé SITEURL juste après) :

				
					server {
  listen *:80;
  server_name      SITEURL;

  index            index.html index.php;
  access_log       /var/log/nginx/SITEURL.access.log combined;
  error_log        /var/log/nginx/SITEURL.error.log;

  location / {
    index     index.html index.php;
    rewrite ^ https://$server_name$request_uri? permanent;
  }
  include includes/acme.conf;
}
				
			

On édite un nouveau fichier de configuration pour  l’accès en HTTPS (pour le SSL) (nous allons remplacer le mot clé SITEURL juste après) :

				
					nano /etc/nginx/sites-available/${SITEURL}_ssl.conf
				
			
				
					server {
  listen       *:443 ssl http2;
  listen       [::]:443 ssl http2 ;
  server_name  SITEURL;

  ssl_certificate           /etc/letsencrypt/live/SITEURL/fullchain.pem;
  ssl_certificate_key       /etc/letsencrypt/live/SITEURL/privkey.pem;
  ssl_session_cache         shared:SSL:20m;
  ssl_session_timeout       1d;
  ssl_session_tickets       off;
  ssl_buffer_size           4k;
  ssl_protocols             TLSv1.2 TLSv1.3;
  ssl_ciphers               ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA;
  ssl_prefer_server_ciphers off;
  ssl_stapling              on;
  ssl_stapling_verify       on;

  index  index.html index.php;
  access_log            /var/log/nginx/ssl-SITEURL_ssl.access.log combined;
  error_log             /var/log/nginx/ssl-SITEURL_ssl.error.log;
  root /var/www/users/wor/SITEURL/web/;


  location ~ (.+\.php)(.*)$ {
    include       /etc/nginx/fastcgi.conf;

    fastcgi_pass  unix:/var/run/php7-fpm-wor.sock;
    fastcgi_index index.php;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_INFO       $fastcgi_path_info;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_hide_header X-Frame-Options;
    fastcgi_intercept_errors on;
  }
}
				
			

Maintenant on remplace le mot clé :

				
					sed -i "s/SITEURL/${SITEURL}/g" /etc/nginx/sites-available/*
				
			

On active les configurations :

				
					cd /etc/nginx/sites-enabled
ln -s ../sites-available/${SITEURL}.conf
ln -s ../sites-available/${SITEURL}_ssl.conf
systemctl restart nginx
				
			

15. Accès à WordPress

Utilisez votre navigateur en remplaçant l’URL par celle de votre site : https://wordpress-dmo.libreok.ovh/

15.1 Écran 1

15.2 Écran 2

15.3 Écran 3

15.4 Écran 4

15.5 Écran 5

15.6 Écran 6

Quelle est la mystérieuse ingénierie qui me permet d'obtenir un serveur Linux fiable et performant, sans devoir monter la garde jour et nuit ?