Installer WordPress sur un VPS

Le serveur LAMP doit être déjà installé.

Sources :
Exigences officielles de WordPress
Changing File Permissions (WordPress)
Installation de WordPress sous Linux

Créer une base de données pour WordPress :

On se connecte en tant que root (celui de MariaDB). On crée un utilisateur dans MariaDB dans le but d’associer cet utilisateur à une base de données. Ainsi on évitera de devoir se connecter plus tard en tant que root :

sudo mariadb -u root -p
CREATE USER 'utilisateur'@'localhost' IDENTIFIED BY 'mot-de-passe';

On crée maintenant une base de données, on donne sur cette base tous les droits à l’utilisateur créé plus haut puis on active les nouveaux privilèges :

CREATE DATABASE nom-base;
GRANT ALL PRIVILEGES ON nom-base.* TO 'utilisateur'@'localhost';
FLUSH PRIVILEGES;
exit

La base ainsi créée est encodée au format utf8mb4_general_ci.

Installer WordPress :

wget https://fr.wordpress.org/latest-fr_FR.tar.gz
tar xpf latest-fr_FR.tar.gz
sudo cp -r wordpress/* /var/www/html/mon-site/ (à adapter)
rm latest-fr_FR.tar.gz
rm -r wordpress

Gestion des droits sur les fichiers / répertoires :

cd /var/www/html/mon-site/ (à adapter)
ls -l (pour connaître les droits sur les fichiers / répertoires)

Changement de propriétaire :
sudo chown -R $USER:www-data /var/www/html/mon-site (à adapter)

Donne les droits 755 sur les répertoires :
sudo find /var/www/html/mon-site/ -type d -exec chmod 755 {} \;

Donne les droits 644 sur les fichiers :
sudo find /var/www/html/mon-site/ -type f -exec chmod 644 {} \; 

On se connecte sur l’interface Web de WordPress (https:// [ nom de domaine ]) afin d’effectuer son installation :

J’obtiens ceci :

Je continue à la main en faisant un copier-coller dans le fichier wp-config.php à la racine du site, puis je lance l’installation :

sudo nano /var/www/html/mon-site/wp-config.php

Cliquer sur le bouton "Lancer l'installation".

sudo mkdir /var/www/html/mon-site/wp-content/uploads (à adapter)

Changement de propriétaire :
sudo chown -R $USER:www-data /var/www/html/mon-site (à adapter)

Restriction des droits sur le fichier wp-config.php:
sudo chmod 640 /var/www/html/mon-site/wp-config.php (à adapter)

Pour pouvoir ajouter des fichiers dans la médiathèque, on donne les droits en écriture à Apache (www-data) sur le répertoire uploads :
sudo find /var/www/html/mon-site/wp-content/uploads -type d -exec chmod 775 {} \; (à adapter)
sudo find /var/www/html/mon-site/wp-content/uploads -type f -exec chmod 664 {} \; (à adapter)

Une fois les fichiers téléchargés, on peut de nouveau restreindre les droits :
sudo find /var/www/html/mon-site/wp-content/uploads -type d -exec chmod 755 {} \; (à adapter)
sudo find /var/www/html/mon-site/wp-content/uploads -type f -exec chmod 644 {} \; (à adapter)
sudo chown -R $USER:www-data /var/www/html/mon-site/wp-content/uploads (à adapter)

On se connecte sur :
https:// [ adresse du site ] /wp-login.php

Mise à jour :

Pour mettre à jour WordPress, je change ponctuellement le propriétaire des fichiers et répertoires :

sudo chown -R www-data:www-data /var/www/html/mon-site (mon-site à adapter)

puis une fois la mise à jour faite, je reviens en arrière pour des raisons de sécurité :

sudo chown -R $USER:www-data /var/www/html/mon-site (mon-site à adapter)

Cette méthode de mise à jour n’est pas satisfaisante. Je cherche mieux.