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 :
- disposer d'un serveur web Nginx par exemple, qui est léger rapide et relativement simple a configurer
- 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 - 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 rapide de wp cli
- guide des commandes de wp cli
- liste des sous-commandes de wp core
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