Pré-requis

Pour installer WordPress rapidement sur un serveur Linux en ligne de commandes, il va nous falloir ces 3 éléments d’infrastructure :

  1. le serveur web Nginx léger, rapide et relativement simple a configurer
  2. Php et PHP-FPM est un interpréteur PHP Fast Process Manager qui tourne sous forme de démon (sudo systemctl status php7.3-fpm) reçoit  et traite les requêtes Fast/CGI du serveur Nginx (lire)
  3. la base de données MariaDB gratuite et puissante
sudo apt install -y nginx php php-fpm mysql-server php-mysql

Astuce: si le service ne se lance pas (spécialement sur un raspberry pi) avec un timeout, installer rng-tools pourrait résoudre ce problème.

Installation des fichiers du site

Pour effectuer une installation en ligne de commande (CLI) nous allons utiliser l’outil officiel wp-cli, voir ici comment l’installer et l’utiliser .
Une fois wp-cli disponible sur votre système, il suffit de choisir une version de WordPress à installer (dernière version stable si non spécifiée):

wp core download --version=5.1  # la version est optionnelle bien sure

puis setter les permissions pour l’utilisateur www-data (user par défaut pour le serveur web) pour renforcer la sécurité des fichiers (voir post SO) :

sudo chown -R www-data:www-data /var/www/wp-hosting/test
find . -type d -exec chmod 755 {} \;             # Change directory permissions rwxr-xr-x
find . -type f -exec chmod 644 {} \;             # Change file permissions rw-r--r--

Il faut ensuite créer la base de données

Base de données

Se connecter au SGBD MariaDB sudo mysql -u root  (et si on avait déja setté le password root: sudo mysql -u root -ppassword)
puis exécuter les commandes suivantes pour donner les autorisations sur les tables WordPress :

show databases;
create database wordpress_test;
GRANT ALL PRIVILEGES ON wordpress_test.* TO "login_utilisateur_de_test"@"localhost" IDENTIFIED BY 'mot_de_passe'; --création du login/passsword pour notre nouvelle BDD

WP-CLI la suite

On poursuit en créant le wp-config.php (contenant les parmètres système de WordPress) avec le wp-cli :

wp core config --dbname=wordpress --dbuser=root --dbpass=root

puis on fini l’installation par l’étape de création des tables de la BDD (on peut le faire au choix):

  1. soit via l’interface d’installation web (exécuter l’étape suivante Nginx pour y avoir accès)
  2. soit via le wp-cli (attention à la sécurité avec le log du password dans l’historique du shell) :
wp core install --url=http://localhost:8888/dev/wordpress/ --title=WordPress --admin_user=myusername --admin_password=mypassword --admin_email=tfirdaus@outlook.com

Nginx

Pour pouvoir servir les pages web, il faut configurer un serveur Web (Nginx ou Apache), et c’est ici que va intervenir php-fpm installé au début de l’article :

server {
    listen 8000;
    root /var/www/wp-hosting/test;
    index index.php;
    server_name test.mondomaine.com;
    access_log /var/log/nginx/wp-test.access_log;
    error_log /var/log/nginx/wp-test.error_log notice;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    }
}

Liens

Pour les pré-requis coté serveur