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

Procédure d'installation de Concrete CMS 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-xml php-gd php-mbstring wget unzip -y

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 Concrete CMS :

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

5. Télécharger et installer Concrete CMS :

Supprimer la page par défaut de Nginx :

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

Télécharger Concrete CMS :

cd /tmp
wget https://www.concretecms.org/download_file/97928843-11e6-4830-a885-5f3019be8b02/2658
mv 2658 concrete.zip
unzip concrete.zip
rm concrete.zip
cp -r concrete*/* /var/www/html/
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?$query_string;
    }

    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/concrete_error.log;
    access_log /var/log/nginx/concrete_access.log;
}

Recharger Nginx :

systemctl reload nginx

Accéder à Concrete CMS 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/concrete.key \
-out /etc/nginx/tls/concrete.crt
chmod 600 /etc/nginx/tls/concrete.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/concrete.crt;
    ssl_certificate_key /etc/nginx/tls/concrete.key;

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

    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/concrete_error.log;
    access_log /var/log/nginx/concrete_access.log;
}

Recharger Nginx pour activer HTTPS :

systemctl reload nginx

⬆️ Retour en haut de la page