Développeur FullStack & Devops

Notes et mémos techniques

Installation automatisée de Wordpress en ligne de commande

Pré-requis

Pour installer Wordpress rapidement sur un serveur Linux en ligne de commandes, il va nous falloir ces 3 éléments sur le serveur avant de commencer :

  1. disposer d'un serveur web Nginx par exemple, qui est léger rapide et relativement simple a configurer
  2. PHP avec PHP-FPM qui est un interpréteur PHP Fast Process Manager qui tourne sous forme de daemon (vérifier s'il tourne avec sudo systemctl status php7.0-fpm). C'est le process qui reçoit et traite les requêtes Fast/CGI du serveur Nginx en faisant la passerelle avec le code PHP
  3. disposer d'un SGBD (moteur de base de données) MariaDB en local ou en réseau

Installation des pré-requis sous debian

sudo apt install -y nginx php php-fpm mysql-server php-mysql

Docs

Installation de Wordpress avec wp-cli

Pour effectuer une installation en ligne de commande nous allons utiliser l'outil officiel wp-cli et suivre les étapes suivantes.

🔐 Pour les commandes ci-dessous, attention à la sécurité car ces commandes sont loggués dans l'historique du shell, et certaines contiennent des mots de passe.

Télécharger Wordpress sur le serveur Nginx

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) avec wp core download :

cd /var/www/dossier_d_installation_de_wordpress # ou ailleurs ;)
wp core download
wp core download --version=5.8.3 --locale=fr_FR --path='/var/www/wordpress' # si on souhaite une version spécifique

Sécuriser l'installation de Wordpress

Modifier les permissions pour l'utilisateur www-data (qui est le user par défaut pour le process nginx) pour renforcer la sécurité des fichiers :

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

Configuration initiale du wp-config.php et BDD

On poursuit en créant automatiquement le fichier wp-config.php avec wp config puis création des tables de la BDD avec wp db:

# avec prompt pour le password (option --prompt)
wp config create --dbname=wordpress --dbuser=root --prompt=dbpass
# ou avec password en clair dans la commande (option --dbpass)
wp config create --dbname=wordpress --dbuser=root --dbpass=root

# création de la 
wp db create

Finalisation de l'installation

Puis on termine l'installation avec wp core install:

wp core install --url=http://localhost:8888/dev/wordpress/ --title=WordPress --admin_user=myusername --admin_password=mypassword --admin_email=email@deladmin.com

Nginx

Enfin pour pouvoir servir les pages web, il faut configurer le serveur web, 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;
    }
}

Création manuelle de la base de données

La Base de données Wordpress peut également etre créée manuellement. Pour cela, se connecter à MariaDB

sudo mysql -u root
sudo mysql -u root -ppassword # si on avait déja setté le password root

puis exécuter les commandes suivantes :

show databases;                        -- lister les base déjà présente
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
admin-linux
wordpress
cli
wp-cli
cms
rédigé le 11/09/18, mis à jour le 09/03/22 par Behrouze
A proposCheat SheetsOutilsVidéos