Table des matières

JOOMLA!

Présentation d'installation d'un service Joomla! 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 “joomlatools console”:

curl https://getcomposer.org/installer -o /tmp/composer-setup.php
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
rm -rf ~/.composer
composer global require joomlatools/console
export PATH="$PATH:~/.composer/vendor/bin:~/.config/composer/vendor/bin"
joomla --version

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 Joomla dans “/var/www/cms”:

rmdir -rf /var/www/cms
cd /var/www
joomla site:download --www=/var/www cms
joomla site:install --www=/var/www cms -L $DBUSER:$DBPASSWD --mysql-database=$DBNAME --sample-data=default cms

L'outil “joomlatools console” peut permettre pas mal de configuration 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