Vanilla est un logiciel de forum communautaire gratuit, open source et flexible qui peut être utilisé pour créer votre propre site de forum. Il s'agit d'une solution de forum légère et multilingue qui vous aide à créer une communauté en ligne en quelques minutes. Il est écrit en PHP et est livré avec de nombreux add-ons et thèmes. Il regorge de fonctionnalités haut de gamme et est utilisé par les plus grandes marques pour engager les clients, les fidéliser et réduire les coûts d'assistance.
Dans ce tutoriel, nous allons apprendre à installer le forum Vanilla sur CentOS 8 et à le sécuriser avec Let's Encrypt SSL.
Prérequis
- Un serveur exécutant CentOS 8.
- Un mot de passe root est configuré sur votre serveur.
Installer le serveur LEMP
Tout d'abord, vous devrez installer le serveur Web Nginx, le serveur de base de données MariaDB, PHP et les autres extensions PHP requises sur votre système. Vous pouvez exécuter la commande suivante pour tous les installer :
dnf install nginx mariadb-server php php php-mysqlnd php-opcache php-xml php-xmlrpc php-gd php-mbstring php-json php-fpm php-curl php-pear php-openssl php-intl unzip -y
Après avoir installé tous les packages, démarrez les services Nginx, PHP-FPM et MariaDB et autorisez-les à démarrer après le redémarrage du système avec la commande suivante :
systemctl start nginx
systemctl start php-fpm
systemctl start mariadb
systemctl enable nginx
systemctl enable php-fpm
systemctl enable mariadb
Configurer la base de données MariaDB
Avant de commencer, c'est une bonne idée de sécuriser votre MariaDB. Vous pouvez le sécuriser avec le script suivant :
mysql_secure_installation
Répondez à toutes les questions comme indiqué ci-dessous :
Enter current password for root (enter for none): Set root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Après avoir sécurisé MariaDB, connectez-vous au shell MariaDB avec la commande suivante :
mysql -u root -p
Fournissez votre mot de passe root MariaDB et créez une base de données et un utilisateur pour Vanilla avec la commande suivante :
MariaDB [(none)]> CREATE DATABASE vanilladb CHARACTER SET utf8 COLLATE utf8_general_ci;
MariaDB [(none)]> CREATE USER 'vanilla'@'localhost' IDENTIFIED BY 'password';
Ensuite, accordez tous les privilèges à la base de données Vanilla avec la commande suivante :
MariaDB [(none)]> GRANT ALL PRIVILEGES ON vanilladb.* TO 'vanilla'@'localhost';
Ensuite, videz les privilèges et quittez le shell MariaDB avec la commande suivante :
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Télécharger le forum Vanille
Vous pouvez télécharger la dernière version stable du forum Vanilla depuis son site officiel avec la commande suivante :
wget https://open.vanillaforums.com/get/vanilla-core-3.3.zip
Une fois téléchargé, décompressez le fichier téléchargé avec la commande suivante :
unzip vanilla-core-3.3.zip
Ensuite, déplacez le répertoire extrait vers le répertoire racine Web de Nginx avec la commande suivante :
mv package /var/www/html/vanilla
Ensuite, changez la propriété du répertoire vanilla en Nginx :
chown -R nginx:nginx /var/www/html/vanilla
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer le pool PHP-FPM
Par défaut, PHP-FPM est configuré pour Apache. Ici, nous utiliserons Nginx comme serveur Web. Vous devrez donc configurer PHP-FPM pour Nginx. Vous pouvez le faire en éditant le fichier /etc/php-fpm.d/www.conf :
nano /etc/php-fpm.d/www.conf
Modifiez les lignes suivantes :
user = nginx group = nginx
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, créez un répertoire de session pour PHP et changez son propriétaire :
mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session
Ensuite, redémarrez le service PHP-FPM pour appliquer les modifications :
systemctl restart php-fpm
Configurer Nginx pour Vanilla
Ensuite, créez un nouveau fichier d'hôte virtuel Nginx pour servir le forum Vanilla.
nano /etc/nginx/conf.d/vanilla.conf
Ajoutez les lignes suivantes :
server { listen 80; server_name vanilla.linuxbuz.com; root /var/www/html/vanilla; index index.php; location ~* /\.git { deny all; return 403; } location /build/ { deny all; return 403; } location /cache/ { deny all; return 403; } location /cgi-bin/ { deny all; return 403; } location /uploads/import/ { deny all; return 403; } location /conf/ { deny all; return 403; } location /tests/ { deny all; return 403; } location /vendor/ { deny all; return 403; } location ~* ^/index\.php(/|$) { fastcgi_split_path_info ^(.+\.php)(/.+)$; try_files $fastcgi_script_name =404; set $path_info $fastcgi_path_info; fastcgi_param PATH_INFO $path_info; fastcgi_index index.php; include fastcgi.conf; fastcgi_param SCRIPT_NAME /index.php; fastcgi_param SCRIPT_FILENAME $realpath_root/index.php; fastcgi_param X_REWRITE 1; fastcgi_pass unix:/var/run/php-fpm/www.sock; } location ~* \.php(/|$) { rewrite ^ /index.php$uri last; } location / { try_files $uri $uri/ @vanilla; } location @vanilla { rewrite ^ /index.php$uri last; } }
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service Nginx pour appliquer les modifications :
systemctl restart nginx
Sécuriser Vanilla avec Let's Encrypt SSL
Ensuite, vous devrez installer l'utilitaire Certbot sur votre système pour télécharger et installer Let's Encrypt SSL pour votre site Web Vanilla.
Vous pouvez installer le client Certbot avec la commande suivante :
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
Ensuite, obtenez et installez un certificat SSL pour votre site Web Vanilla avec la commande suivante :
certbot-auto --nginx -d vanilla.linuxbuz.com
La commande ci-dessus installera d'abord toutes les dépendances requises sur votre serveur. Une fois installé, il vous sera demandé de fournir une adresse e-mail et d'accepter les conditions d'utilisation comme indiqué ci-dessous :
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for vanilla.linuxbuz.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/vanilla.conf
Sélectionnez si vous souhaitez rediriger le trafic HTTP vers HTTPS ou non, comme indiqué ci-dessous :
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Tapez 2 et appuyez sur Entrée continuer. Une fois l'installation terminée avec succès, vous devriez obtenir le résultat suivant :
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/vanilla.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://vanilla.linuxbuz.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=vanilla.linuxbuz.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/vanilla.linuxbuz.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/vanilla.linuxbuz.com/privkey.pem Your cert will expire on 2020-06-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Configurer SELinux et le pare-feu
Par défaut, SELinux est activé dans CentOS 8. Vous devrez donc le configurer pour votre site Web de forum Vanilla.
Vous pouvez configurer le SELinux avec la commande suivante :
setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/vanilla
Ensuite, autorisez les ports 80 et 443 à traverser le pare-feu avec la commande suivante :
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Accéder au forum Vanilla
Ouvrez votre navigateur Web et visitez l'URL https://vanilla.linuxbuz.com. Vous serez redirigé vers la page suivante :
Fournissez les détails de votre base de données, le titre de l'application, l'adresse e-mail, le nom d'utilisateur de l'administrateur, le mot de passe et cliquez sur Continuer bouton. Une fois l'installation terminée, vous devriez voir le tableau de bord Vanilla sur la page suivante :
Conclusion
Toutes nos félicitations! vous avez installé avec succès le forum Vanilla sur CentOS 8 avec Let's Encrypt SSL. Vous pouvez désormais héberger facilement votre propre site Web de forum communautaire. N'hésitez pas à me demander si vous avez des questions.