Table des matières

WORDPRESS

Présentation d'installation d'un service WordPress sur debian 9.
Dans cette présentation, nous allons configurer un site https://cms.sleto.net.

Nous utiliserons les variables DBNAME, DBUSER et DBPASSWD respectivement pour le nom, l'utilisateur et le mot de passe de base de données.

Dépendances

Utilise PHP 7.3 via fpm ainsi qu'un Serveur web sécurisé (Nginx / Let's Encrypt).
Nécessite également les outils :

sudo apt-get install -y mariadb-server

Installer l'outil “wp-cli”:

rm -f /tmp/wp-cli.phar
curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -o /tmp/wp-cli.phar
chmod +x /tmp/wp-cli.phar
rm -f /usr/local/bin/wp
mv /tmp/wp-cli.phar /usr/local/bin/wp

Vous devrez également ajouter le domaine cms.sleto.net dans le Serveur DNS (bind9)

Base de données

Vérifier que la Base de donnée cible n'existe pas mais créer l'utilisateur dessus.

mysqladmin -u root -f drop $DBNAME
mysql -u root  -D mysql -e "GRANT all ON $DBNAME.* TO $DBUSER@\'localhost\' IDENTIFIED BY '$DBPASSWD'"
mysql -u root  -D mysql -e "GRANT all ON $DBNAME.* TO $DBUSER@\'127.0.0.1\' IDENTIFIED BY '$DBPASSWD'"

Installation

Installer WordPress dans “/var/www/cmd”:

mkdir /var/www/cms
cd /var/www/cms
wp core download --force --allow-root
wp core config --dbname=$DBNAME --dbuser=$DBUSER --dbpass=$DBPASSWD --allow-root
wp db create --allow-root
wp core install --url=https://cms.sleto.net --title="Mon WordPress" --admin_user=admin --admin_password=xxxxx --admin_email=wordpress@sleto.net --allow-root
wp theme install twentyeleven --activate --allow-root
wp language core install fr_FR --activate --allow-root
wp language theme install twentyeleven fr_FR --allow-root

L'outil “wp” est assez puissant et permet de remplir entièrement un WordPress en ligne de commande.
Rendez vous sur le site officiel pour en savoir plus.

Configuration

Créer également un fichier pour nginx “nginx-cms”:

# Configuration du server
server {
    listen      80;
    server_name cms.sleto.net;
    return 301 https://cms.sleto.net/;
}

server {
    listen      443 ssl;
    server_name cms.sleto.net;

    include /opt/ssl/cms.sleto.net.conf;

    charset     utf-8;
    access_log /var/log/nginx/cms.sleto.net.access.log;
    error_log  /var/log/nginx/cms.sleto.net.error.log;
    root /var/www/cms/;

    client_max_body_size 100M;

    gzip on;
    gzip_vary on;
    gzip_min_length 1024;
    gzip_proxied expired no-cache no-store private auth;
    gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/xml application/json application/pdf;

    fastcgi_buffers  16 16k;
    fastcgi_buffer_size  32k;

    location / {
	index index.php index.html;
	try_files $uri $uri/ @cms;

        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
        }
    }
    
    location @cms {
        rewrite /(.*)$ /index.php?/$1 last;
    }

}

Notons que /opt/ssl/cms.sleto.net.conf contiendra les informations relatives aux clefs privé et public HTTPS/SSL (voir Serveur web sécurisé (Nginx / Let's Encrypt)).

Activer la configuration web par:

ln -sf /var/www/cms/nginx-cms /etc/nginx/sites-enabled

Rechargement

Pour rafraîchir les services nginx

service nginx restart   

Mise à jour

Pour réaliser une mise à jour:

cd /var/www/cms
wp core update
wp theme update --all
wp plugin update --all