Pré-requis
Pour installer WordPress rapidement sur un serveur Linux en ligne de commandes, il va nous falloir ces 3 éléments d’infrastructure :
- le serveur web Nginx léger, rapide et relativement simple a configurer
- 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)
- 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):
- soit via l’interface d’installation web (exécuter l’étape suivante Nginx pour y avoir accès)
- 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