Comment installer WordPress avec Nginx et Let’s Encrypt SSL sur Ubuntu 22.04

WordPress est un système de gestion de contenu gratuit et open-source principalement utilisé pour publier des blogs sur Internet. Il est conçu pour ceux qui ne savent pas coder. WordPress facilite la création et la maintenance des sites Web et des blogs. En raison de sa popularité, plus d’un tiers des sites Web actuels sont alimentés par WordPress. Il est écrit en PHP et utilise MariaDB et MySQL comme backend de base de données.

Dans ce tutoriel, nous allons te montrer comment installer WordPress avec Nginx et un certificat SSL gratuit Let’s Encrypt sur Ubuntu 22.04.

Conditions préalables

  • Un serveur exécutant Ubuntu 22.04.
  • Un nom de domaine valide pointé avec l’IP de ton serveur.
  • Un mot de passe root est configuré sur le serveur.

Installer Nginx, MariaDB et PHP

Avant de commencer, le serveur LEMP doit être installé sur ton serveur. S’il n’est pas installé, tu peux l’installer en exécutant la commande suivante :

apt-get install nginx mariadb-server php php-fpm php-curl php-mysql php-gd php-mbstring php-xml php-imagick php-zip php-xmlrpc -y

Une fois le serveur LEMP installé, vérifie la version de PHP à l’aide de la commande suivante :

php -v

Tu obtiendras la version de PHP dans la sortie suivante :

PHP 8.1.2 (cli) (built: Apr  7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

Ensuite, édite le fichier de configuration PHP et modifie certains paramètres par défaut :

nano /etc/php/8.1/fpm/php.ini

Change les lignes suivantes :

cgi.fix_pathinfo=0
upload_max_filesize = 128M
post_max_size = 128M
memory_limit = 512M
max_execution_time = 120

Sauvegarde et ferme le fichier lorsque tu as terminé.

Créer une base de données pour WordPress

WordPress utilise une base de données pour stocker son contenu. Tu devras donc créer une base de données et un utilisateur pour WordPress.

Tout d’abord, connecte-toi au shell MariaDB avec la commande suivante :

mysql

Une fois que tu es connecté, crée une base de données et un utilisateur avec la commande suivante :

MariaDB [(none)]> CREATE DATABASE wpdb;
MariaDB [(none)]> CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'securepasssword';

Ensuite, accorde tous les privilèges à la base de données WordPress à l’aide de la commande suivante :

MariaDB [(none)]> GRANT ALL ON wpdb.* TO 'wpuser'@'localhost';

Ensuite, vide les privilèges et quitte le shell MariaDB avec la commande suivante: :

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installer WordPress sur Ubuntu 22.04

Tout d’abord, navigue dans le répertoire racine du site Web de Nginx et télécharge la dernière version de WordPress à l’aide de la commande suivante :

cd /var/www/html
wget https://wordpress.org/latest.tar.gz

Une fois que WordPress est téléchargé, extrais le fichier téléchargé à l’aide de la commande suivante :

tar -zxvf latest.tar.gz

Ensuite, renomme le fichier de configuration type de WordPress.

mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php

Ensuite, modifie le fichier de configuration de WordPress et définis tes paramètres de base de données :

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

Définis tes paramètres de base de données comme indiqué ci-dessous :

define( 'DB_NAME', 'wpdb' );

/** Database username */
define( 'DB_USER', 'wpuser' );

/** Database password */
define( 'DB_PASSWORD', 'securepasssword' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

Pour des raisons de sécurité, tu devras également mettre à jour les clés de sécurité dans ton fichier wp-config. Tout d’abord, va ici pour les générer. Ensuite, ajoute-les comme indiqué ci-dessous :

define('AUTH_KEY',         'Y$I,-gafVeR>Z-8qy&jQ62L}{R)e|lK/#RBh.Y#f+p-P*.8,,hP-iX[q3*tVP-fu');
define('SECURE_AUTH_KEY',  'D)k6o`D G%<()-zXP5{T{v2)Zgo-c+8T-Un=+R3%n/X2=MLDb5$O]UHA%gK| .WR');
define('LOGGED_IN_KEY',    'eL|5#`ul|;MrKm#q$KVl/ky(i}Jc;xrH(Eb|Hwzb/?-.RLSUSX2X[4HD:U:UOP:Y');
define('NONCE_KEY',        ']azQ+9f^#~l*r>uPMH5H>ck:?az4o[)*Txo:+MGjE5f&0kag3O9m85g3~VJ6YVWE');
define('AUTH_SALT',        'fAM5&`m4X+{+wSsF.!}-/[email protected]~~u%>}la1bCC,@#+R*t]uYf?[hph/>!Bw>v#oaQ');
define('SECURE_AUTH_SALT', '}|Z&dj_tFV2T$7y(O#O|bwwQ$sH6t!-zdE.MlOHLZ>4WDqG:_Qzn#Allm-UO1#7P');
define('LOGGED_IN_SALT',   'b9Uf~**[email protected]{KWknsAL^9D7Ix3CO.+PpFF~btd)-pG~pXPQ,[c&WRE-NgLG9~)|');
define('NONCE_SALT',       '}mTUi&.#i+YJT-TSrbIwqWO<]ut3K%CS~7g.} *NztVlgZDr`?>wxJ+_VW-D_zif');

Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, définis les autorisations et la propriété appropriées pour le répertoire WordPress :

chown -R www-data:www-data /var/www/html/wordpress
chmod -R 755 /var/www/html/wordpress

Créer un hôte virtuel Nginx pour WordPress

Ensuite, tu devras créer un fichier de configuration d’hôte virtuel Nginx pour servir WordPress sur Internet.

nano /etc/nginx/conf.d/wordpress.conf

Ajoute la configuration suivante :

server {
    listen 80;
    root /var/www/html/wordpress;
    index  index.php index.html index.htm;
    server_name  wordpress.example.com;

    client_max_body_size 500M;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
	
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

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

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

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }
}

Enregistre et ferme le fichier puis vérifie la configuration de Nginx à l’aide de la commande suivante :

nginx -t

Tu obtiendras la sortie suivante :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, redémarre les services Nginx et PHP-FPM pour appliquer les modifications.

systemctl restart nginx
systemctl restart php8.1-fpm

Tu peux aussi vérifier l’état de Nginx à l’aide de la commande suivante :

systemctl status nginx

Tu obtiendras le résultat suivant :

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-05-05 11:36:28 UTC; 10s ago
       Docs: man:nginx(8)
    Process: 16880 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 16882 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 16883 (nginx)
      Tasks: 3 (limit: 4630)
     Memory: 3.4M
        CPU: 49ms
     CGroup: /system.slice/nginx.service
             ??16883 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??16884 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??16885 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

May 05 11:36:28 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
May 05 11:36:28 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

Installation Web de WordPress terminée

Maintenant, ouvre ton navigateur Web et accède à l’assistant d’installation de WordPress en utilisant l’URL http://wordpress.example.com. Tu seras redirigé vers la page suivante :

Choisis la langue

Sélectionne ta langue et clique sur le bouton Continuer. Tu devrais voir la page de configuration du site WordPress :

Paramètres du site

Indique le nom de ton site Web, le nom d’utilisateur admin, le mot de passe, l’email et clique sur le bouton Installer WordPress. Une fois que WordPress est installé, tu devrais voir la page suivante :

Installation de WordPress réussie

Clique sur le bouton Se connecter. Tu devrais voir la page de connexion de WordPress :

Connecte-toi en tant qu'administrateur

Indique ton nom d’utilisateur admin, ton mot de passe, et clique sur le bouton Connexion. Tu devrais voir le tableau de bord de WordPress sur la page suivante :

Tableau de bord administratif de WordPress

Activer HTTPS sur WordPress

Pour activer HTTPS sur ton site, tu dois installer le client Certbot Let’s Encrypt sur ton système. Tu peux l’installer en exécutant la commande suivante :

apt-get install python3-certbot-nginx -y

Une fois le client Certbot installé, exécute la commande suivante pour activer le HTTPS sur ton site Web :

certbot --nginx -d wordpress.example.com

Il te sera demandé de fournir une adresse e-mail valide et d’accepter les conditions de service comme indiqué ci-dessous :

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for wordpress.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/wordpress.conf

Ensuite, choisis de rediriger ou non le trafic HTTP vers HTTPS comme indiqué ci-dessous :

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Tape 2 et appuie sur Entrée pour terminer l’installation. Tu devrais voir le résultat suivant :

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/wordpress.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://wordpress.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=wordpress.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/wordpress.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/wordpress.example.com/privkey.pem
   Your cert will expire on 2023-02-08. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - 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

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Conclusion

Félicitations ! Tu as réussi à installer WordPress avec Nginx et Let’s Encrypt SSL sur Ubuntu 22.04. Tu peux maintenant installer tes thèmes et plugins préférés et commencer à créer ton propre site Web.

Vous aimerez aussi...