WordPress est un système de gestion de contenu gratuit et open source écrit en PHP et associé à une base de données MySQL ou MariaDB. WordPress est l'un des CMS les plus populaires disponibles aujourd'hui.
WordPress.com est une plate-forme hébergée de logiciel en tant que service (SaaS) qui vous permet de créer un site Web à l'aide de blocs de construction WordPress. Il vous en coûtera pour héberger votre site Web sur le site WordPress.
Le logiciel WordPress est gratuit et Open Source, mais pour le faire fonctionner, vous devez configurer un hébergement. Dans ce guide, nous allons avec cette option, en configurant WordPress dans Ubuntu 20.04.
Prérequis
Pour suivre ce guide, nous avons besoin des éléments suivants :
- Serveur Ubuntu 20.04 à jour avec connexion Internet
- Accès root sur le serveur ou un utilisateur avec accès sudo
- Connaissance de l'utilisation des terminaux Linux
Étapes nécessaires pour que WordPress fonctionne dans Ubuntu 20.04
- Assurez-vous que le système est à jour
- Installation du serveur de base de données mysql 8 et création d'un utilisateur WordPress
- Installer le serveur Web Nginx
- Installer PHP avec des dépendances
- Configurer les paramètres PHP et PHP FPM
- Téléchargement et configuration de WordPress
- Configurer Nginx pour diffuser du contenu wordpress
- Tester l'installation de WordPress
1. Assurez-vous que le système est à jour
Avant de continuer, assurons-nous que notre serveur est mis à jour. Utilisez ces commandes pour 1. Mettre à jour les référentiels du serveur, 2. Mettre à niveau les packages du serveur vers les dernières versions :
# Update repos
sudo apt update
# Upgrade packages
sudo apt -y upgrade
2. Installation du serveur de base de données mysql 8 et création d'un utilisateur WordPress
Le package mysql-server requis n'est pas présent dans les référentiels Ubuntu par défaut. Nous devons donc le configurer.
L'équipe mysql fournit un fichier .deb
téléchargeable fichier qui configurera les dépôts pour l'installation de mysql server 8. Téléchargez-le avec cette commande :
curl -LO https://dev.mysql.com/get/mysql-apt-config_0.8.19-1_all.deb
Une fois le téléchargement terminé, nous devons installer le fichier deb téléchargé. Utilisez cette commande pour installer :
sudo dpkg -i ./mysql-apt-config_0.8.19-1_all.deb
Cela ouvrira une fenêtre de configuration vous invitant à choisir la version du serveur mysql et d'autres composants tels que le cluster, les bibliothèques clientes partagées ou l'atelier MySQL
Pour l'instant puisque nous ne sommes intéressés que par l'installation du serveur Mysql, laissez les paramètres par défaut et cliquez sur OK pour continuer.
Installation du serveur mysql
Maintenant que les dépôts ont été ajoutés pour inclure le serveur mysql, nous pouvons maintenant installer. Actualisons les référentiels pour obtenir les dernières nouveautés du référentiel ajouté à l'aide de cette commande :
$ sudo apt update
Installez ensuite Mysql 8 Server à l'aide de cette commande :
sudo apt install -y mysql-server
Entrez vos informations d'identification d'administrateur et le système installera le package du serveur MySQL, les packages client et les fichiers communs de la base de données.
L'installation vous demandera d'entrer et de confirmer un utilisateur root et un mot de passe pour la base de données MySQL.
Après cela, il vous sera demandé de sélectionner le plug-in d'authentification. Il est recommandé de choisir d'utiliser un mot de passe fort :
Après cela, le nouveau mot de passe sera défini et le service sera rechargé.
Confirmez que le serveur mysql est opérationnel avec cette commande :
$ sudo systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-09-28 13:08:22 UTC; 2min 23s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 45123 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 45173 (mysqld)
Status: "Server is operational"
Tasks: 37 (limit: 4710)
Memory: 353.0M
CGroup: /system.slice/mysql.service
└─45173 /usr/sbin/mysqld
Sep 28 13:08:21 ip-172-26-11-229 systemd[1]: Starting MySQL Community Server...
Sep 28 13:08:22 ip-172-26-11-229 systemd[1]: Started MySQL Community Server.
Le Active: active (running) since ...
ci-dessus indique que l'application est opérationnelle.
Se connecter au serveur et créer l'utilisateur
Après une installation réussie de mysql-server, connectons-nous au serveur et créons un utilisateur WordPress.
Connectez-vous au serveur mysql en fournissant le mot de passe que nous avons fourni précédemment :
$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.26 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Créez ensuite une base de données, un utilisateur et un mot de passe :
mysql> create database wordpress_db;
Query OK, 1 row affected (0.01 sec)
mysql> create user 'wordpress_user'@'%' identified by 'S0mStrongPa$$word';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on wordpress_db.* to 'wordpress_user'@'%';
Query OK, 0 rows affected (0.00 sec)
3. Installez le serveur Web Nginx
Nginx ne fonctionnera pas si Apache est installé et en cours d'exécution. Puisque nous allons utiliser Nginx, utilisons cette commande pour supprimer apache s'il est installé sur notre système :
$ sudo apt remove apache2 -y
Pour installer Nginx :
sudo dnf -y install nginx
Une fois l'installation terminée, démarrez Nginx et activez-le pour qu'il démarre automatiquement après un redémarrage
systemctl start nginx
systemctl enable nginx
Vérifier l'état de Nginx :
$ sudo systemctl status nginx
● 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 Tue 2021-09-28 16:28:30 UTC; 1min 2s ago
Docs: man:nginx(8)
Main PID: 56990 (nginx)
Tasks: 3 (limit: 4710)
Memory: 3.7M
CGroup: /system.slice/nginx.service
├─56990 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─56991 nginx: worker process
└─56992 nginx: worker process
Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Starting A high performance web server and a reverse pr>
Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Started A high performance web server and a reverse pro>
Pour confirmer que Nginx est réellement en cours d'exécution et accessible, utilisez cette commande :
curl http://server_ip/
Où server_ip
est l'IP de votre serveur. Si, pour une raison quelconque, vous ne connaissez pas l'adresse IP publique de votre serveur, utilisez-la pour vérifier
curl -4 icanhazip.com
Vous devriez voir la page par défaut de Nginx.
4. Installer PHP avec des dépendances
Comme les dépôts par défaut contiennent la version 7.4 de PHP, installons-la avec cette commande :
sudo apt install php -y
Confirmez la version installée avec la commande php -v
:
~$ php -v
PHP 7.4.3 (cli) (built: Aug 13 2021 05:39:12) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
Ensuite, nous installons les dépendances php. Les dépendances php sont disponibles sous forme de packages de niveau système d'exploitation préfixés php-
. Installons les dépendances dont WordPress a besoin avec cette commande :
sudo apt install -y \
php-common \
php-mbstring \
php-gd \
php-intl \
php-xml \
php-json \
php-mysqlnd \
php-fpm
5. Configurer les paramètres PHP et PHP FPM
Les paramètres php globaux pour la version de php installée sont stockés dans le /etc/php/7.4/cli/php.ini
dossier. Mettons à jour ces paramètres.
Ouvrez php.ini
avec votre éditeur de texte préféré, j'utiliserai vim
sudo vim /etc/php/7.4/cli/php.ini
Ensuite, recherchez les variables suivantes et mettez à jour les valeurs comme indiqué ci-dessous :
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 32M
date.timezone = Africa/Nairobi
6. Téléchargement et configuration de WordPress
Maintenant que les serveurs sont configurés, téléchargeons et installons WordPress sur le serveur. La dernière version de WordPress peut être téléchargée depuis leur site officiel.
Créons un répertoire où notre contenu WordPress sera servi dans ce chemin /var/www/example.citizix.com
.
sudo mkdir /var/www/example.citizix.com
Assurez-vous que l'internaute est propriétaire du contenu :
sudo chown -R www-data.www-data /var/www/example.citizix.com
Téléchargez le dernier contenu WordPress :
cd /tmp
curl -LO https://wordpress.org/latest.zip
Exemple de sortie :
$ curl -LO https://wordpress.org/latest.zip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 15.7M 100 15.7M 0 0 6650k 0 0:00:02 0:00:02 --:--:-- 6647k
$ ls
latest.zip
Extrayez et déplacez le contenu vers notre répertoire de serveur. Assurez-vous d'avoir unzip
commande ou installez avec sudo apt install unzip
.
unzip latest.zip
sudo mv wordpress/* /var/www/example.citizix.com
# Confirm content with
ls /var/www/example.citizix.com
Configurer WordPress
Maintenant que le contenu WordPress a été copié dans le répertoire du site, mettons à jour la configuration de la base de données à l'aide de l'exemple de fichier fourni.
Basculez vers le répertoire du site :
cd /var/www/example.citizix.com/
Copiez votre wp-config-sample
fichier dans wp-config.php
.
cp wp-config-sample.php wp-config.php
Ouvrez le fichier de configuration dans un éditeur de texte :
vim wp-config.php
Mettez à jour ces variables :DB_NAME
, DB_USER
, DB_PASSWORD
, DB_HOST
:
<?php
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'xxx' );
/** MySQL database username */
define( 'DB_USER', 'xxx' );
/** MySQL database password */
define( 'DB_PASSWORD', 'xxx' );
/** MySQL hostname */
define( 'DB_HOST', 'xxx' );
/** 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', '' );
Enregistrez le fichier texte une fois que cela est fait.
Faites de l'internaute le propriétaire du répertoire WordPress, afin qu'il ait accès et soit en mesure de servir les fichiers.
sudo chown -R www-data:www-data /var/www/example.citizix.com
7. Configurer Nginx pour diffuser du contenu wordpress
Maintenant que la configuration est en place, configurons un hôte virtuel Nginx pour servir le contenu que nous venons d'ajouter à /var/www/example.citizix.com
Créons un site virtuel dans le répertoire que Nginx sert de contenu ici /etc/nginx/conf.d
:
sudo vim /etc/nginx/conf.d/example.citizix.com.conf
Ajoutez le contenu suivant :
server {
listen 80;
server_name example.citizix.com;
root /var/www/example.citizix.com;
index index.php;
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 /etc/nginx/fastcgi_params;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Assurez-vous que la configuration ajoutée est bonne en utilisant cette commande pour tester :
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Une fois que vous avez confirmé que tout est OK, redémarrez Nginx pour que les modifications prennent effet :
sudo systemctl restart nginx
8. Enfin, testez l'installation de WordPress
Une fois toutes les étapes ci-dessus effectuées, l'installation à partir de la ligne de commande est terminée. Vous pouvez ouvrir votre navigateur Web préféré et le diriger vers http://example.citizix.com/. Vous devriez obtenir l'écran suivant vous invitant à commencer la configuration de l'installation de WordPress :
[Écran ici]
Il devrait être facile de suivre les instructions pour configurer WordPress pour la première fois.