Installation Joomla sur Nginx en http et https (certificat autosigné)

Procédure d'installation de Joomla avec Nginx, PHP, MariaDB

1. Mettre le système à jour :

apt update
apt upgrade -y

2. Installer Nginx, MariaDB et PHP avec les extensions nécessaires :

apt install nginx mariadb-server mariadb-client php-fpm php-mysql php-zip php-curl php-intl php-xml php-gd php-mbstring php-json wget unzip -y

sed -i 's/output_buffering = 4096/output_buffering = Off/' /etc/php/8.4/fpm/php.ini
systemctl reload php8.2-fpm
systemctl start nginx
systemctl enable nginx
systemctl start mariadb
systemctl enable mariadb

3. Initialiser MariaDB :

mariadb-secure-installation

Répondre ainsi :


4. Création de la base de données et de l'utilisateur pour Joomla :

mysqladmin -uroot create joomladb
mysql -uroot -e"GRANT ALL ON joomladb.* TO admin@localhost IDENTIFIED BY 'P@ssw0rd'"

5. Télécharger et installer Joomla :

Supprimer la page par défaut de Nginx :

rm /var/www/html/index.nginx-debian.html

Télécharger Joomla :

cd /tmp
wget -O joomla.zip 'https://downloads.joomla.org/fr/cms/joomla5/5-3-4/Joomla_5-3-4-Stable-Full_Package.zip?format=zip'
unzip joomla.zip -d /var/www/html/
rm joomla.zip
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

6. Configuration du vhost par défaut de Nginx :

Renommer l'ancien fichier et créer le nouveau :

mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.BAK
nano /etc/nginx/sites-available/default

Ajouter ceci au fichier :

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.4-fpm.sock;
    }

    location ~* \.(ini|xml|sql)$ {
        deny all;
    }

    error_log /var/log/nginx/joomla_error.log;
    access_log /var/log/nginx/joomla_access.log;
}

Recharger Nginx :

systemctl reload nginx

Accéder à Joomla via navigateur web :

http://IP-SERVEUR


7. Passage au HTTPS (TLS autosigné) :

apt install openssl
mkdir /etc/nginx/tls
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/nginx/tls/joomla.key \
-out /etc/nginx/tls/joomla.crt
chmod 600 /etc/nginx/tls/joomla.key

Modifier /etc/nginx/sites-available/default :

server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;

    root /var/www/html;
    index index.php index.html index.htm;

    ssl_certificate /etc/nginx/tls/joomla.crt;
    ssl_certificate_key /etc/nginx/tls/joomla.key;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.4-fpm.sock;
    }

    location ~* \.(ini|xml|sql)$ {
        deny all;
    }

    error_log /var/log/nginx/joomla_error.log;
    access_log /var/log/nginx/joomla_access.log;
}

Recharger Nginx pour activer HTTPS :

systemctl reload nginx

⬆️ Retour en haut de la page