Comment installer WordPress avec Nginx sur Ubuntu 24.04, 22.04 ou 20.04

WordPress est un système de gestion de contenu (CMS) puissant et largement utilisé qui permet aux utilisateurs de créer et de gérer facilement des sites Web. L'installation de WordPress sur un serveur Ubuntu à l'aide de la pile LEMP (Linux, NGINX, MariaDB et PHP) garantit un environnement robuste et performant pour votre site Web. Cette configuration combine l'efficacité de NGINX avec la fiabilité de MariaDB et la polyvalence de PHP, fournissant une base solide pour votre site WordPress.

Ce guide vous guidera à travers les étapes d'installation de WordPress sur Ubuntu 24.04, 22.04 ou 20.04 à l'aide de la pile LEMP. De plus, nous expliquerons comment sécuriser votre site avec Let's Encrypt SSL et fournirons des conseils pour résoudre les problèmes courants dans le fichier wp-config.php.

Pile LEMP pour WordPress

Mettre à jour Ubuntu avant l'installation de WordPress

Commencez votre installation WordPress sur votre serveur Ubuntu en douceur et avec succès en exécutant la commande de mise à jour standard. L’exécution de cette commande met à jour votre système, minimisant ainsi le risque de conflits lors du processus d’installation de WordPress, car WordPress est vaste et complexe.

Pour exécuter la commande de mise à jour standard, ouvrez votre terminal et saisissez la commande suivante :

sudo apt update && sudo apt upgrade

Cette commande mettra à jour tous les packages en attente et mettra à niveau votre système.

Installer les packages initiaux pour WordPress

Assurez-vous d'avoir installé les packages suivants avant de continuer :

sudo apt install curl git wget unzip zip

Installer Nginx sur Ubuntu – LEMP Stack Partie 1

Pour configurer une pile LEMP, installez d'abord Nginx en exécutant la commande :

sudo apt install nginx

En règle générale, le système active le service Nginx par défaut lors de l'installation. Néanmoins, exécutez la commande suivante pour garantir son bon fonctionnement :

systemctl status nginx

Activez le service Nginx, s'il n'est pas déjà actif, à l'aide de la commande suivante :

sudo systemctl enable nginx --now

Supplémentaire : installez Nginx Mainline pour WordPress

Pour optimiser vos performances WordPress, utilisez plutôt la dernière version principale de Nginx. Suivez le guide sur installer Nginx Mainline sur Ubuntu. Cette version offre des fonctionnalités supplémentaires et des améliorations pour améliorer la vitesse et les performances globales de votre site Web.

Configurer le pare-feu UFW pour Nginx et WordPress

Sécuriser votre serveur Nginx et autoriser l'accès aux ports Web par défaut nécessite la configuration du pare-feu UFW. Nginx propose des profils pour une configuration UFW rapide.

Assurez-vous qu'UFW est installé sur votre système Ubuntu avec la commande :

sudo apt install ufw

Après l'installation, activez UFW sur votre système. Par défaut, UFW refusera toutes les connexions entrantes et autorisera toutes les connexions sortantes. Pour activer le pare-feu, utilisez la commande suivante :

sudo ufw enable

Pour voir les profils Nginx disponibles, exécutez la commande suivante :

sudo ufw app list

Le résultat montre que Nginx s'exécute sur le port 80 (HTTP), Nginx Secure s'exécute sur le port 443 (HTTPS) et Nginx Full combine les deux. Pour activer l'accès HTTP et HTTPS, utilisez le profil Nginx Full :

sudo ufw allow 'Nginx Full'

Cependant, en fonction de vos besoins spécifiques, vous souhaiterez peut-être ajuster le profil. Par exemple, si vous avez uniquement besoin d'un accès HTTPS, utilisez le profil Nginx Secure :

sudo ufw allow 'Nginx Secure'

Ou, si vous avez uniquement besoin d'un accès HTTP, utilisez le profil HTTP Nginx :

sudo ufw allow 'Nginx HTTP'

Installer MariaDB sur Ubuntu – LEMP Stack Partie 2

La deuxième étape de l'installation de LEMP consiste à installer le composant base de données. MariaDB est le choix préféré dans la pile LEMP par rapport à MySQL en raison de ses performances améliorées et d'autres avantages. Cependant, si vous souhaitez installer une version différente de MariaDB à partir des référentiels officiels fournis par MariaDB.org, dans ce cas, notre guide sur installer MariaDB 11.x ou 10.x sur Ubuntu peut améliorer les performances de votre installation WordPress.

Pour installer MariaDB, exécutez la commande suivante dans votre terminal.

sudo apt install mariadb-server mariadb-client

Vérifier l'état du service MariaDB après l'installation est crucial, tout comme vous l'avez fait pour Nginx, pour garantir son bon fonctionnement sans erreurs :

systemctl status mariadb

Si MariaDB est inactif, exécutez cette commande pour activer le service et activez-le immédiatement au démarrage du système :

sudo systemctl enable mariadb --now

Sécurisez MariaDB avec un script de sécurité

La configuration de la sécurité de votre installation MariaDB est une étape critique vers le maintien de l'intégrité et de la confidentialité de vos données. Par défaut, les nouvelles installations de MariaDB ont souvent des paramètres de sécurité faibles, ce qui les rend vulnérables aux attaques malveillantes. Heureusement, l'exécution du script de sécurité d'installation peut aider à sécuriser votre base de données et à empêcher toute exploitation potentielle.

Pour commencer, lancez le script mysql_secure_installation en exécutant la commande suivante :

sudo mysql_secure_installation

Maintenant, procédez à la configuration des paramètres du script de sécurité MariaDB. Définissez le mot de passe root, restreignez l'accès à distance à partir de sources externes, supprimez les comptes d'utilisateurs anonymes et éliminez la base de données de test. Ces actions sécurisent votre installation MariaDB et préviennent les menaces de sécurité potentielles.

Exemple:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] Y <---- Type Y then press the ENTER KEY.
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y <---- Type Y then press the ENTER KEY.
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y <---- Type Y then press the ENTER KEY.
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Étape 5 : Installer PHP sur Ubuntu – LEMP Stack Partie 3

Pour réussir la configuration de la pile LEMP, vous devez installer le service PHP. Le service agit comme médiateur entre Nginx et MariaDB, en utilisant PHP-FPM et les modules supplémentaires requis par WordPress. Si vous préférez une version différente de PHP qui répond à vos besoins, référez-vous à notre guide sur installer PHP sur Ubuntu.

Pour installer PHP et PHP-FPM avec les modules nécessaires sur votre système Ubuntu, exécutez la commande suivante dans votre terminal :

sudo apt install php php-fpm php-mbstring php-bcmath php-xml php-mysql php-common php-gd php-cli php-curl php-zip php-imagick php-ldap php-intl

Après l'installation, il est essentiel de vérifier l'état du service PHP comme vous l'avez fait pour MariaDB et Nginx pour vous assurer qu'il fonctionne correctement sans aucune erreur. Dans cet exemple, la commande est spécifique à la version de PHP installée, qui est PHP 8.1 :

systemctl status php8.1-fpm

Le résultat devrait ressembler à ceci :

Installer le back-end WordPress

Créer une structure de répertoire WordPress

Pour commencer l'installation de WordPress sur votre stack LEMP, vous pouvez visiter le site officiel Page de téléchargement WordPress.org et localisez le lien de téléchargement « latest.zip ». Une option alternative consiste à utiliser la commande suivante pour télécharger la dernière version de WordPress :

wget https://wordpress.org/latest.zip

Ensuite, vous pouvez décompresser l'archive WordPress téléchargée dans le répertoire /var/www/html :

sudo unzip latest.zip -d /var/www/html/

Pour vous assurer que WordPress dispose des autorisations d'écriture correctes, vous devez définir les autorisations du propriétaire du répertoire sur WWW. Vous pouvez le faire en exécutant la commande suivante :

sudo chown -R www-data:www-data /var/www/html/wordpress/

Après avoir défini l'autorisation chown, il est essentiel de définir l'autorisation chmod pour les dossiers et fichiers WordPress. Cette étape est cruciale pour garantir que le site WordPress fonctionne correctement sans aucun problème lié aux autorisations en écriture.

Utilisez les commandes suivantes pour définir l'autorisation chmod pour les dossiers et fichiers :

Pour les dossiers :

sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;

Pour les fichiers :

sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;

Ces commandes établissent les autorisations correctes pour les fichiers et répertoires WordPress. Ils attribuent 755 autorisations aux dossiers, permettant aux propriétaires de lire, d'écrire et d'exécuter tout en accordant aux autres un accès en lecture et en exécution uniquement. De même, ils allouent 644 autorisations aux fichiers, permettant aux propriétaires de lire et d'écrire, avec un accès en lecture seule pour les autres.

Créer une base de données pour WordPress sur Ubuntu

Tout d’abord, créez une base de données pour exécuter WordPress sur votre serveur. Puisque vous avez précédemment installé MariaDB lors de la configuration de la pile LEMP, utilisez-la pour créer une nouvelle base de données WordPress. Ouvrez votre terminal, entrez la commande suivante et accédez au shell MariaDB en tant que root pour commencer le processus :

sudo mariadb -u root

Une fois que vous avez accédé au shell MariaDB, entrez la commande suivante pour créer une nouvelle base de données avec le nom de votre choix. Dans ce guide, nous l'appellerons « WORDPRESSDB ».

CREATE DATABASE WORDPRESSDB;

Après avoir créé la base de données, créez un nouveau compte utilisateur pour WordPress avec la commande suivante. Par mesure de sécurité pour protéger vos bases de données en cas de violation, la création d'un nouveau compte utilisateur pour chaque site Web est essentielle.

CREATE USER 'WPUSER'@localhost IDENTIFIED BY 'PASSWORD';

Remarque : remplacez « WPUSER » et « PASSWORD » par le nom d'utilisateur et le mot de passe souhaités. Ne copiez pas et ne collez pas l'utilisateur/pass par défaut ci-dessus pour des raisons de sécurité.

Enfin, attribuez au compte utilisateur nouvellement créé l’accès à la base de données du site Web WordPress uniquement avec la commande suivante :

GRANT ALL PRIVILEGES ON WORDPRESSDB.* TO WPUSER@localhost IDENTIFIED BY 'PASSWORD';

Une fois tous les paramètres de configuration de la base de données terminés, vous devez vider les privilèges pour garantir que les nouvelles modifications prennent effet. Exécutez la commande suivante pour vider les privilèges :

FLUSH PRIVILEGES;

Enfin, quittez le shell MariaDB en tapant :

EXIT;

Définir les fichiers de configuration WordPress

La définition des fichiers de configuration WordPress est une étape essentielle du processus d'installation. Cela implique de renommer l’exemple de fichier wp-config.php et de saisir les détails de configuration nécessaires.

Pour commencer, accédez au répertoire WordPress à l’aide de la commande suivante :

cd /var/www/html/wordpress/

Ensuite, copiez le wp-config-sample.php dans wp-config.php. Il est bon de conserver l’échantillon au cas où vous auriez besoin de recommencer. Exécutez la commande suivante pour copier le fichier :

sudo cp wp-config-sample.php wp-config.php

À l'aide d'un éditeur de texte, affichez le fichier wp-config.php nouvellement copié :

sudo nano wp-config.php

Ensuite, vous entrerez le nom de la base de données, le compte utilisateur avec un mot de passe et l'adresse IP de l'hôte si elle est différente de localhost.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */ 

define( 'DB_NAME', 'WORDPRESSDB' );                 <--------------- change this

/* MySQL database username */ 

define( 'DB_USER', 'WPUSER );                               <--------------- change this

/* MySQL database password */

define( 'DB_PASSWORD', 'PASSWORD' );             <--------------- change this

/* MySQL hostname, change the IP here if external DB set up */ 

define( 'DB_HOST', 'localhost' );

/* Database Charset to use in creating database tables. */

define( 'DB_CHARSET', 'utf8' );

/* The Database Collate type. Don't change this if in doubt. */

define( 'DB_COLLATE', '' );

Dans ce fichier, l'ajout de paramètres supplémentaires facilitera la gestion de votre WordPress, tels que l'enregistrement direct des fichiers au lieu d'utiliser FTP et l'augmentation des limites de taille de mémoire.

/** ## Save files direct method ## */
define( 'FS_METHOD', 'direct' );

/** ## Increase memory limit, 256MB is recommended ## */
define('WP_MEMORY_LIMIT', '256M');

Remarque : Ajustez les limites de mémoire de votre serveur dédié ou VPS pour augmenter ou diminuer la limite de mémoire de 256 Mo. Cependant, n'augmentez-le que par petites quantités, par exemple 128 Mo, 256 Mo ou 512 Mo.

Exemple de ce à quoi peut ressembler votre configuration :

Configurer les clés de sel de sécurité WordPress sur Ubuntu

La configuration des clés de sécurité WordPress est vitale pour la sécurité de votre installation WordPress. Ces clés renforcent votre site WordPress en améliorant la sécurité de l'authentification des utilisateurs et du cryptage des données.

Visitez l'API de clé secrète WordPress à l'adresse https://api.wordpress.org/secret-key/1.1/salt/ pour générer des clés de sel de sécurité. Remplacez les lignes d'exemple dans le fichier wp-config.php par ces nouvelles clés immédiatement après la génération.

Remarque : évitez d'utiliser les lignes d'exemple ; ils servent uniquement de références. L’utilisation de clés salt pré-générées expose votre site à des attaques, alors générez toujours des clés uniques pour chaque installation WordPress.

Ouvrez votre fichier wp-config.php avec un éditeur de texte pour ajouter les nouvelles clés salt de sécurité :

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

Ensuite, recherchez les lignes du fichier qui correspondent aux exemples de clés :

define('AUTH_KEY',         '<3yfS7/>%m.Tl^8Wx-Y8-|T77WRK[p>(PtH6V]Dl69^<8|K86[_Z},+THZ25+nJG');
define('SECURE_AUTH_KEY',  'bN#Qy#ChBX#Y`PE/_0N42zxgLD|5XpU[mu.n&:t4q~hg<UP/b8+xFTly_b}f]M;!');
define('LOGGED_IN_KEY',    'owpvIO-+WLG|,1)CQl*%gP1uDp}s(jUbYQ[Wm){O(x@sJ#T}tOTP&UOfk|wYsj5$');
define('NONCE_KEY',        '8=Vh|V{D<>`CLoP0$H!Z3gEqf@])){L+6eGi`GAjV(Mu0YULL@sagx&cgb.QVCbi');
define('AUTH_SALT',        '%TX*X$GE-;|?<-^(+K1Un!_Y<hk-Ne2;&{c[-v!{q4&OiJjQon /SHcc/:MB}y#(');
define('SECURE_AUTH_SALT', '=zkDT_%}J4ivjjN+F}:A+s6e64[^uQ<qNO]TfHS>G0elz2B~7Nk.vRcL00cJoo7*');
define('LOGGED_IN_SALT',   '{$-o_ull4|qQ?f=8vP>Vvq8~v>g(2w12`h65ztPM(xo!Fr()5xrqy^k[E~TwI!xn');
define('NONCE_SALT',       'a1G(Q|X`eX$p%6>K:Cba!]/5MAqX+L<A4yU_&CI)*w+#ZB+*yK*u-|]X_9V;:++6');

Remplacez chaque exemple de phrase par votre clé salt unique générée à partir de l'API WordPress. Enregistrez et quittez le fichier une fois que vous avez remplacé tous les exemples de phrases.

Créer un bloc de serveur Nginx pour WordPress

Pour installer WordPress via l'interface utilisateur Web, vous devez d'abord configurer votre bloc serveur Nginx. Il est essentiel de prêter attention aux paramètres répertoriés ci-dessous, en particulier « try_files $uri $uri/ /index.php?$args; », car l'omission de « ?$args » peut entraîner des problèmes avec l'API REST de WordPress.

Pour créer un nouveau fichier de configuration de serveur, utilisez la commande suivante, en remplaçant « exemple.com » par votre nom de domaine :

sudo nano /etc/nginx/sites-available/example.com.conf

Le fichier de configuration Nginx doit inclure « emplacement ~ .php$ » pour garantir un bon fonctionnement. Vous trouverez ci-dessous un exemple de fichier de configuration ; assurez-vous de mettre à jour le chemin racine, ainsi que « www.example.com » et « example.com » pour refléter vos noms de domaine :

server {
  listen 80;
  listen [::]:80;
  server_name www.example.com example.com;
  root /var/www/html/wordpress;
  index index.php index.html index.htm index.nginx-debian.html;

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

  location ~* /wp-sitemap.*\.xml {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  client_max_body_size 100M;

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 128k;
    fastcgi_intercept_errors on;
  }

  gzip on;
  gzip_comp_level 6;
  gzip_min_length 1000;
  gzip_proxied any;
  gzip_disable "msie6";
  gzip_types application/atom+xml application/geo+json application/javascript application/x-javascript application/json application/ld+json application/manifest+json application/rdf+xml application/rss+xml application/xhtml+xml application/xml font/eot font/otf font/ttf image/svg+xml text/css text/javascript text/plain text/xml;

  location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
    expires 90d;
    access_log off;
  }

  location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
    add_header Access-Control-Allow-Origin "*";
    expires 90d;
    access_log off;
  }

  location ~ /\.ht {
    access_log off;
    log_not_found off;
    deny all;
  }
}

Notez que si vous avez installé une version différente de PHP et PHP-FPM, telle que PHP 7.4, 8.0, 8.2, 8.3, etc., ou si votre version d'Ubuntu utilise une version par défaut différente, vous devez remplacer la ligne « fastcgi_pass unix : /run/php/php8.1-fpm.sock; avec la version appropriée. Par exemple, pour PHP-FPM 8.2, la ligne serait « fastcgi_pass unix:/run/php/php8.2-fpm.sock; »

Explication du bloc du serveur WordPress Nginx

Vous trouverez ci-dessous des informations sur l'exemple de blocage de serveur pour les utilisateurs installant Nginx et WordPress pour la première fois.

  1. Paramètres de base du serveur :
  • Cette section définit les paramètres de base du blocage du serveur, y compris l'adresse IP et le port sur lesquels Nginx écoutera ainsi que le(s) nom(s) du serveur auquel le blocage s'appliquera.
  • La directive « root » précise le répertoire racine où se trouveront les fichiers du site Web, dans ce cas, « /var/www/html/wordpress ».
  • La directive « index » spécifie comment Nginx doit rechercher les fichiers d'index lors de la diffusion du site.
  1. Les paramètres de localisation:
  • Cette section contient les blocs « emplacement », qui définissent comment Nginx doit gérer les demandes pour différentes URL.
  • Le premier bloc « location » gère les requêtes vers l'URL racine du site et utilise la directive « try_files » pour rechercher le fichier demandé et, s'il n'est pas trouvé, pour transmettre la requête au fichier index.php de WordPress.
  • Le deuxième bloc « emplacement » gère les requêtes pour le fichier WordPress sitemap.xml et transmet la requête au fichier WordPress index.php si le fichier n'est pas trouvé.
  1. Paramètres de gestion PHP :
  • Cette section définit comment Nginx doit gérer les fichiers PHP, en utilisant le bloc « location ~ .php$ » pour faire correspondre les demandes de fichiers se terminant par « .php ».
  • La directive « fastcgi_pass » spécifie l'emplacement du fichier de socket PHP-FPM, qui est utilisé pour communiquer entre Nginx et PHP-FPM.
  • La directive « fastcgi_param » définit la valeur du paramètre « SCRIPT_FILENAME » à l'emplacement du fichier PHP demandé.
  • Les directives « include » chargent des fichiers de configuration supplémentaires pour le module FastCGI.
  • Les directives « fastcgi_buffer_size » et « fastcgi_buffers » définissent la taille du tampon pour transmettre les données entre Nginx et PHP-FPM.
  • La directive « fastcgi_intercept_errors » permet à Nginx d'intercepter et de gérer les erreurs PHP.
  1. Paramètres de compression Gzip :
  • Cette section définit les paramètres de compression Gzip, qui peuvent être utilisés pour réduire la taille des fichiers envoyés au client.
  • La directive « gzip » permet la compression Gzip.
  • La directive « gzip_comp_level » définit le niveau de compression à utiliser.
  • La directive « gzip_min_length » définit la taille minimale d'un fichier à compresser.
  • La directive « gzip_proxied » précise quels types de requêtes doivent être compressées.
  • La directive « gzip_types » répertorie les types MIME qui doivent être compressés.
  1. Paramètres de mise en cache des fichiers :
  • Cette section définit les paramètres de mise en cache des fichiers statiques, ce qui peut contribuer à accélérer le site Web en réduisant le nombre de requêtes adressées au serveur.
  • Le premier bloc « emplacement » définit le délai d'expiration des fichiers utilisés pour les actifs et les médias, tels que les images et les vidéos.
  • Le deuxième bloc « emplacement » définit le délai d'expiration des fichiers utilisés pour les polices et les SVG.
  • Les directives « access_log » et « log_not_found » contrôlent la journalisation de ces requêtes.
  • La directive « add_header » définit l'en-tête « Access-Control-Allow-Origin » pour permettre le chargement de polices et de SVG provenant d'autres domaines.
  1. Blocage du fichier .htaccess :
  • Cette section bloque l'accès aux fichiers commençant par « .ht », généralement utilisés pour les fichiers de configuration de serveur sensibles.

Pour terminer cette configuration du bloc du serveur Nginx, vous devrez activer le fichier de configuration Nginx depuis « sites-available » en créant un lien symbolique vers « sites-enabled » à l'aide de la commande suivante, en remplaçant « example.conf » par votre fichier de configuration. nom:

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

Effectuez un essai à blanc pour rechercher d'éventuelles erreurs à l'aide de la commande suivante :

sudo nginx -t

Si tout se passe bien, redémarrez le service Nginx :

sudo systemctl restart nginx

Configuration PHP.ini

Ajuster votre configuration PHP est crucial pour une utilisation optimale de WordPress. Pour accueillir les fichiers multimédias WordPress, vous devez augmenter la taille maximale de téléchargement, la taille de publication et la limite de mémoire. Vous pouvez également ajuster le temps d'exécution maximum et les variables d'entrée.

Pour ce faire, ouvrez d'abord votre fichier php.ini à l'aide de votre terminal. L'emplacement peut différer en fonction de votre numéro de version PHP.

HVoici quelques exemples de chemins de versions PHP courants vers php.ini :

sudo nano /etc/php/7.4/fpm/php.ini
sudo nano /etc/php/8.0/fpm/php.ini
sudo nano /etc/php/8.1/fpm/php.ini
sudo nano /etc/php/8.2/fpm/php.ini
sudo nano /etc/php/8.3/fpm/php.ini

Ensuite, recherchez les lignes suivantes et ajustez-les à vos besoins :

##increase this to the maximum file size you want to upload, recommended 50 to 100MB## 
 upload_max_filesize = 100MB

##increase this to the maximum post size you want to allow, recommended 50 to 100MB##
 post_max_size = 100MB

##increase this to the maximum execution time, recommended 150 to 300 seconds##
 max_execution_time = 300

##increase this to the maximum GET/POST/COOKIE input variables, recommended 5000 to 10000##
max_input_vars = 5000

##increase this to the maximum memory limit, recommended 256MB or 512MB. Note that you should ensure your system has enough RAM before raising this.##
memory_limit = 256M

Après avoir ajusté vos paramètres PHP, redémarrez votre serveur PHP-FPM à l'aide de la commande appropriée à votre version de PHP.

Il serait préférable de modifier le bloc du serveur Nginx pour autoriser des corps de grande taille. Rouvrez votre bloc serveur et ajoutez la ligne suivante :

  • client_max_body_size – ceci doit être défini sur la taille de téléchargement maximale que vous avez définie dans upload_max_filesize.

Si vous suivez l'exemple de bloc serveur, la taille maximale de votre fichier sera définie sur 100 Mo. Référez-vous à l’exemple comme guide en cas de doute.

Après avoir modifié le fichier de configuration PHP, redémarrez le serveur PHP-FPM pour implémenter les nouveaux paramètres. La commande de redémarrage varie selon la version de PHP. Identifiez et utilisez votre numéro de version PHP dans la commande, même si les exemples ci-dessous ne le répertorient pas.

Vous trouverez ci-dessous les commandes permettant de redémarrer PHP-FPM pour différentes versions de PHP :

sudo systemctl restart php7.4-fpm
sudo systemctl restart php8.0-fpm
sudo systemctl restart php8.1-fpm
sudo systemctl restart php8.2-fpm
sudo systemctl restart php8.3-fpm

Installer le frontal WordPress

Terminez l'installation et la configuration du backend, puis installez WordPress sur votre domaine.

Commencez par saisir le nom de domaine d'installation, comme https://www.yoursite.com. Vous pouvez également utiliser https://www.yoursite.com/wp-admin/install.php.

Sélectionnez la langue pour WordPress

La première page à laquelle vous arriverez est l'assistant d'installation frontale. Ici, sélectionnez votre langue préférée, puis cliquez sur Continuer.

Informations complètes requises pour WordPress


Sur l'écran suivant, entrez le titre de votre site, votre nom d'utilisateur, votre mot de passe et l'adresse e-mail de l'administrateur principal associée au site WordPress. Définissez un mot de passe fort et une adresse e-mail fonctionnelle ; vous pourrez ajuster tous les autres paramètres ultérieurement dans le panneau des paramètres de WordPress.


Si vous créez un site Web et souhaitez empêcher l’indexation des moteurs de recherche, activez l’option « décourager fortement l’indexation des moteurs de recherche ». Cette option empêche les robots des moteurs de recherche réputés comme Google ou Bing d'indexer votre site en construction.

Installer WordPress

Une fois que vous avez saisi vos coordonnées et effectué vos sélections, cliquez sur « Installer WordPress » en bas de l'écran. Si l'installation réussit, vous devriez arriver à un écran vous invitant à vous connecter.

Connectez-vous à WordPress

Entrez vos identifiants de connexion et cliquez sur « Connexion ». Il serait préférable d'arriver à votre tableau de bord WordPress pour créer ou importer votre site Web.

Une fois connecté, le tableau de bord WordPress apparaît, servant de point de départ pour la création de sites Web. Ce tableau de bord, votre hub central, donne accès à toutes les fonctionnalités du site. À partir de là, créez rapidement de nouveaux articles et pages, installez et gérez des thèmes et des plugins, et bien plus encore. L'interface intuitive et conviviale facilite la personnalisation et le lancement rapides de votre site Web.

Commencez à utiliser WordPress

Grâce au tableau de bord, quelques clics vous permettent de modifier l'apparence, le contenu et les fonctionnalités de votre site Web, permettant ainsi la création rapide d'un site Web professionnel et attrayant.

Commandes WordPress supplémentaires

Sécurisez WordPress et Nginx avec le certificat gratuit SSL Let's Encrypt

Exécutez Nginx sur HTTPS avec un certificat SSL pour une sécurité optimale du serveur Web. Utilisez Let's Encrypt, une autorité de certification gratuite, automatisée et ouverte, pour configurer des certificats SSL pour votre serveur Nginx.

Pour commencer, installez le package certbot avec la commande suivante :

sudo apt install python3-certbot-nginx

Après avoir installé le package certbot, créez votre certificat SSL à l'aide de la commande suivante :

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

L'EFF (Electronic Frontier Foundation) vous invite à recevoir des e-mails pendant le processus d'installation du certificat. Choisir "ET" ou "N" en fonction de vos préférences, lancer l'installation et la configuration automatiques du certificat.

La configuration optimale du certificat SSL applique les redirections HTTPS 301, applique un en-tête Strict-Transport-Security et intègre le agrafage OCSP. Ajustez votre adresse e-mail et votre nom de domaine en fonction de vos besoins spécifiques.

Une fois le certificat installé, l'URL de votre site Web passe de HTTP à HTTPS. Toute tentative d'accès à l'ancienne URL HTTP redirige automatiquement vers la nouvelle URL HTTPS.

Établissez une tâche cron pour le renouvellement automatique afin de maintenir votre certificat SSL à jour. Certbot propose un script pour ce processus automatique, que vous devez tester avec un essai à sec avant l'installation :

sudo certbot renew --dry-run

Pour ouvrir la fenêtre crontab, exécutez la commande de terminal suivante :

sudo crontab -e

Ensuite, nous vérifierons le renouvellement au moins une fois par jour pour garantir que le certificat reste à jour :

00 00 */1 * * /usr/sbin/certbot-auto renew

Avec cette configuration, votre serveur Nginx sera sécurisé et protégé par un certificat SSL valide.

Comment réparer les erreurs de session WordPress PHP sur Ubuntu

Les erreurs lors de l'enregistrement des sessions PHP lors de l'utilisation de plugins spécifiques peuvent provenir d'autorisations utilisateur inappropriées dans le répertoire /var/lib/php/sessions/. Heureusement, une simple commande peut corriger ce problème.

Exécutez la commande suivante pour résoudre le problème :

sudo chown -R www-data:www-data /var/lib/php/sessions/

Cela définit l'utilisateur et le groupe www-data comme propriétaires de session, permettant à WordPress d'écrire les informations de session dans le répertoire. Ceci est particulièrement utile pour les plugins qui automatisent des tâches telles que la publication sur les réseaux sociaux. La correction de ces erreurs de session PHP peut garantir le bon fonctionnement et l’efficacité de votre site WordPress.

Correction de la boucle de redirection HTTPs WordPress dans wp-config.php sur Ubuntu

Après avoir activé HTTPS sur votre site WordPress, vous pourriez être confronté à un problème de boucle de redirection HTTP. Ce problème se produit lorsque WordPress tente continuellement de rediriger vers la version HTTPS sécurisée de votre site sans terminer la redirection.

Pour résoudre ce problème, ajoutez les lignes de code suivantes à votre fichier wp-config.php :

define('FORCE_SSL_ADMIN', true);

if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
    $_SERVER['HTTPS'] = 'on';
}

L'extrait de code oblige la zone d'administration WordPress à utiliser HTTPS. La première ligne définit la constante FORCE_SSL_ADMIN sur true, forçant toutes les pages d'administration à utiliser HTTPS. Le deuxième bloc de code examine l'en-tête HTTP_X_FORWARDED_PROTO pour la chaîne « https ». En le trouvant, le bloc définit la variable du serveur HTTPS sur « on », signalant à WordPress de traiter la connexion en toute sécurité.

Pour ajouter le code, utilisez n'importe quel éditeur de texte pour ouvrir le fichier wp-config.php ; l'exemple ci-dessous utilise nano :

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

Ajoutez le code à la fin du fichier, juste avant la ligne « C'est tout, arrêtez d'éditer ! Bon blog. » Enregistrez le fichier et quittez l'éditeur de texte CTRL+X, puis Y.

Ces changements permettront à votre site WordPress de rediriger correctement vers HTTPS sans provoquer de boucle de redirection.

Réparer la boucle de redirection de nom de domaine WordPress

Si vous rencontrez un problème de boucle de redirection sur votre site WordPress, cela peut être dû à une erreur dans la configuration de votre nom de domaine dans le fichier wp-config.php. Cette erreur peut se produire si le nom de domaine répertorié dans le fichier de configuration ne correspond pas au nom de domaine réel de votre site Web.

Pour corriger cette erreur, ouvrez votre fichier wp-config.php et vérifiez la ligne suivante :

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

Assurez-vous que le nom de domaine dans les deux lignes correspond au nom de domaine de votre site Web. Si ce n'est pas le cas, mettez-le à jour en conséquence.

Si vous avez déjà mis à jour votre nom de domaine dans le fichier wp-config.php et que vous rencontrez toujours une boucle de redirection, il se peut qu'il y ait un problème avec la configuration de votre serveur. Dans ce cas, vous devez contacter votre fournisseur d'hébergement pour obtenir de l'aide.

Conclusion

Avec WordPress installé avec succès sur votre serveur Ubuntu à l’aide de la pile LEMP, vous disposez désormais d’une plateforme puissante et flexible pour votre site Web. Sécuriser votre site avec Let's Encrypt SSL est essentiel pour protéger les données des utilisateurs et améliorer le référencement. Si vous rencontrez des problèmes, notamment avec le fichier wp-config.php, les résoudre rapidement garantira le bon fonctionnement de votre site. Mettez régulièrement à jour votre installation et vos plugins WordPress pour maintenir la sécurité et les performances. Profitez de la création et de la gestion de votre site Web avec les capacités robustes de WordPress.

Joshua James
Suis-moi
Les derniers articles par Joshua James (tout voir)

1 réflexion au sujet de « How to Install WordPress with Nginx on Ubuntu 24.04, 22.04 or 20.04 »

Laissez un commentaire