Comment installer phpBB avec Nginx sur Debian 12, 11 ou 10 Linux

phpBB est un logiciel de forum open source hautement personnalisable et largement utilisé qui fournit une plate-forme robuste pour créer des communautés en ligne. Lorsqu'il est combiné avec NGINX, MariaDB et PHP, vous obtenez une pile puissante et efficace qui garantit des performances et une évolutivité élevées pour votre forum. NGINX sert de serveur Web, MariaDB de système de gestion de base de données et PHP de langage de script côté serveur, formant une base solide pour phpBB.

Suivez les étapes décrites dans ce guide pour installer phpBB sur Debian 12, 11 ou 10 avec NGINX, MariaDB et PHP. Cette configuration fournira un environnement performant et sécurisé pour votre forum en ligne.

Installer LEMP (Nginx, MariaDB, PHP)

Mettre à jour Debian avant l'installation de phpBB

Assurez-vous que votre système Debian est à jour avant d'installer la pile LEMP. Cette étape permet d’éviter les conflits de packages et garantit le bon déroulement des processus ultérieurs. Il aligne également votre système avec les derniers correctifs de sécurité et améliorations logicielles.

Pour mettre à jour votre système, exécutez la commande suivante :

sudo apt update && sudo apt upgrade

La commande sudo apt update met à jour la liste des packages disponibles et leurs versions, tandis que la commande sudo apt update installe les dernières versions de vos packages.

Installer NGINX (pile LEMP, partie 1)

NGINX, un serveur HTTP et proxy inverse open source hautes performances, est la pierre angulaire de la pile LEMP. Pour installer NGINX, exécutez la commande suivante :

sudo apt install nginx

Après l'installation de NGINX, le service démarre généralement automatiquement. Cependant, il est recommandé de le confirmer et de s'assurer qu'il fonctionne comme prévu. Vous pouvez vérifier l'état du service NGINX en exécutant la commande suivante :

systemctl status nginx

Vous devriez voir une sortie indiquant l'état actif (en cours d'exécution) du service NGINX, confirmant le lancement réussi de NGINX. Si le serveur n'a pas démarré pour une raison quelconque, la commande suivante peut le démarrer et également configurer NGINX pour qu'il se lance automatiquement au redémarrage du système :

sudo systemctl enable nginx --now

Cette commande garantit que le service NGINX peut démarrer au démarrage (activer) et démarrer immédiatement (-maintenant).

Facultativement, vous pouvez visiter l'adresse IP du serveur pour vérifier que Nginx est installé ; vous devriez voir une page de test similaire :

Installer MariaDB (LEMP Stack Partie 2)

L'installation du module de base de données est la prochaine étape de la configuration de la pile LEMP. MariaDB, connue pour ses performances et ses divers attributs supplémentaires, est préférée à MySQL au sein de la pile LEMP. Pour installer MariaDB, exécutez la commande suivante :

sudo apt install mariadb-server mariadb-client

Étape 4 : Vérifier le service MariaDB

Une fois MariaDB installée, il est crucial de confirmer l'état du service MariaDB. Il est important de s'assurer que le service MariaDB est activé et fonctionne correctement. La commande pour inspecter l'état du service est la suivante :

systemctl status mariadb

Vous pouvez exécuter la commande suivante si le serveur n'a pas été activé. Cela garantira que MariaDB est démarrée immédiatement et configurée pour démarrer automatiquement à chaque redémarrage du système.

sudo systemctl enable mariadb --now

Installation sécurisée de MariaDB (script d'exécution de sécurité)

La sécurisation de votre base de données est fondamentale pour mettre en place un système robuste et fiable ; MariaDB ne fait pas exception. Après l'installation, il est fortement recommandé d'exécuter le script de sécurité fourni avec l'installation. Ce script renforce l'installation de MariaDB en modifiant ses paramètres par défaut, souvent considérés comme non sécurisés, protégeant ainsi le système contre d'éventuels accès ou exploitations non autorisés.

Pour exécuter le script de sécurité MariaDB, appelé mysql_secure_installation, exécutez la commande suivante :

sudo mysql_secure_installation

Une fois le script de sécurité exécuté, l'étape suivante consiste à ajuster divers paramètres pour améliorer la sécurité de votre installation MariaDB. Ces modifications incluent la configuration du mot de passe root, la restriction de l'accès à distance, la suppression des comptes d'utilisateurs anonymes et la suppression de la base de données de test. Chacun de ces ajustements ajoute une couche de sécurité à votre installation MariaDB, contribuant ainsi à la protéger contre les menaces de sécurité potentielles.

Examinons chacun de ces ajustements :

  • Configuration du mot de passe root : Il s'agit du mot de passe de l'utilisateur root de votre installation MariaDB. Il est crucial de choisir un mot de passe fort pour empêcher tout accès non autorisé.
  • Restreindre l'accès à distance : L'utilisateur root peut accéder à la base de données depuis n'importe quel emplacement par défaut. La restriction de l'accès à distance garantit que l'utilisateur root ne peut accéder à la base de données qu'à partir de la machine locale, réduisant ainsi le risque d'attaques à distance.
  • Suppression des comptes d'utilisateurs anonymes : Les comptes d'utilisateurs anonymes n'ont pas de nom. Ces comptes présentent un risque de sécurité car ils peuvent être utilisés pour obtenir un accès non autorisé à la base de données. Le script de sécurité vous permet de supprimer ces comptes.
  • Suppression de la base de données de test : MariaDB dispose d'une base de données de test à laquelle tout utilisateur peut accéder. Cette base de données n'est pas nécessaire pour une utilisation en production et peut être supprimée en toute sécurité pour réduire la surface d'attaque.

En prenant le temps de sécuriser votre installation MariaDB, vous faites un pas important vers la garantie de l'intégrité et de la sécurité de vos données.

Installer PHP (LEMP Stack Partie 3)

Le dernier composant de la pile LEMP est le service PHP, qui fait office de pont entre Nginx et MariaDB. Ce pontage est réalisé par le service PHP-FPM et les modules supplémentaires requis par phpMyAdmin. Pour installer PHP, PHP-FPM et les modules requis sur votre système Debian, exécutez la commande suivante :

sudo apt install php-fpm php php-cli php-mysql php-curl php-common php-mbstring php-xml

Vérification de l'état du service PHP

Après l'installation, il est essentiel de confirmer l'état du service PHP. Cette validation garantit que PHP est activé et fonctionne parfaitement sans aucune erreur. La commande dépend de la version de PHP installée ; dans notre cas, il s'agissait de PHP 8.2.

systemctl status php8.2-fpm

Activation du service PHP

Si le service PHP est inactif, la commande suivante l'active et garantit qu'il démarre automatiquement à chaque redémarrage.

sudo systemctl enable php-fpm --now

Cette commande activera le service PHP-FPM et garantira qu'il démarre automatiquement à chaque démarrage du système.

Installation du back-end de phpBB

Il est temps d'installer les forums phpBB avec la pile LEMP installée avec succès. Au moment de ce tutoriel, la dernière version est phpBB 3.3.10. Cependant, cela peut changer avec le temps, car les nouvelles versions sont généralement déployées tous les six mois. Pour vérifier la version actuelle, visitez le Page de téléchargement de phpBB.

Remarque : n'oubliez pas de récupérer le dernier phpBB-xxxzip et d'ajuster les commandes ci-dessous ; c'est critique.

Téléchargez phpBB et configuration des répertoires

Tout d’abord, téléchargez le package phpBB :

cd /tmp && wget https://download.phpbb.com/pub/release/3.3/3.3.10/phpBB-3.3.10.zip
unzip phpBB-3.3.10.zip
sudo mv phpBB3 /var/www/html/phpbb

Ensuite, modifiez les autorisations de répertoire pour NGINX :

sudo chown -R www-data:www-data /var/www/html/phpbb
sudo chmod -R 755 /var/www/html/phpbb

Configuration de MariaDB pour phpBB

Maintenant, créez une base de données pour votre installation phpBB. Tout d’abord, ouvrez le terminal MariaDB en tant que root :

sudo mysql -u root -p

Créez la base de données de vos forums :

CREATE DATABASE phpbb;

Créez un nouvel utilisateur de base de données appelé phpbbuser avec un nouveau mot de passe :

CREATE USER 'phpbbuser'@'localhost' IDENTIFIED BY 'new_password_here';

Accordez à l'utilisateur un accès complet à la base de données :

GRANT ALL ON phpbb.* TO 'phpbbuser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;

Videz les privilèges pour appliquer les modifications :

FLUSH PRIVILEGES;

Quittez le terminal MariaDB :

EXIT;

Votre base de données phpBB est maintenant prête. Vous saisirez ces détails lors de la partie installation de l’interface utilisateur Web du didacticiel.

Configurer PHP pour phpBB

Pour garantir une installation réussie de phpBB et son fonctionnement optimal, vous devez ajuster quelques options dans le php.ini fichier de configuration.

Ouvrez le php.ini déposer:

sudo nano /etc/php/{version}/fpm/php.ini

N'oubliez pas de remplacer {version} avec la version spécifique de PHP-FPM que vous avez installée, telle que 83., 8.2, 8.1, 8.0 ou 7.4.

Recherchez les paramètres suivants et ajustez-les comme suit :

max_execution_time = 180 max_input_time = 90 memory_limit = 256 Mo upload_max_filesize = 64 Mo

Ces paramètres sont généralement standards, mais si vous utilisez un VPS avec des ressources limitées ou un hébergement mutualisé, vous devrez peut-être les ajuster à la baisse. N'oubliez pas que chaque installation de phpBB, comme tout autre système CMS, peut varier.

Une fois terminé, enregistrez et quittez le fichier. Vous devrez redémarrer PHP FPM pour que les modifications prennent effet :

sudo systemctl restart php8.2-fpm

Configuration de Nginx pour phpBB

Dans votre bloc serveur Nginx, déclarez le PHP en amont puis les emplacements PHP. La meilleure façon de procéder est de créer un nouveau bloc de serveur en utilisant un sous-domaine tel que forums ou community.

Tout d'abord, créez le bloc serveur :

sudo nano /etc/nginx/sites-available/phpbb.conf

Copiez et collez ce qui suit dans le bloc serveur, en modifiant le nom de domaine, SSL, le chemin racine et tout le reste en fonction de vos besoins. Ne touchez pas aux emplacements ou à PHP à moins que vous sachiez ce que vous faites.

Attention : la syntaxe de configuration Nginx suivante comprend des commentaires annotés pour vous guider dans la personnalisation de la configuration en fonction de vos besoins spécifiques. Nous vous recommandons fortement d'examiner attentivement chaque segment et de procéder aux ajustements appropriés en fonction de la configuration de votre système. Votre attention portée à ces détails est grandement appréciée.

# Upstream to abstract backend connection(s) for PHP
upstream phpbb {
    # Path to PHP 8.2 FPM socket, replace this with your own socket path
    server unix:/run/php/php8.2-fpm.sock;
}

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

    # Change these to your main server name(s)
    server_name www.example.com example.com;

    # Replace this with your site root directory
    root /var/www/html/example.com-root/;
    index index.php index.html index.htm index.nginx-debian.html;

    # Change this to your specific server name
    server_name forums.linuxcapable.com;

    # Replace this with your site root directory
    root /var/www/html/phpbb/;
    index index.php index.html index.htm index.nginx-debian.html;

    # Log files, replace these paths if you have different log file paths
    access_log /var/log/nginx/forums-access.log;
    error_log /var/log/nginx/forums-error.log;

    location / {
        try_files $uri $uri/ @rewriteapp;

        # PHP processing, make sure to use your own upstream name if different
        location ~ \.php(/|$) {
            include fastcgi.conf;
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            fastcgi_param DOCUMENT_ROOT $realpath_root;
            try_files $uri $uri/ /app.php$is_args$args;
            fastcgi_pass phpbb;
            fastcgi_intercept_errors on;    
        }

        # Deny access to certain PHPBB files
        location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb(?!\w+)|store|vendor) {
            deny all;
            internal;
        }
    }

    location @rewriteapp {
        rewrite ^(.*)$ /app.php/$1 last;
    }

    location /install/ {
        try_files $uri $uri/ @rewrite_installapp =404;

        # PHP processing for installer
        location ~ \.php(/|$) {
            include fastcgi.conf;
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            fastcgi_param DOCUMENT_ROOT $realpath_root;
            try_files $uri $uri/ /install/app.php$is_args$args =404;
            fastcgi_pass phpbb;
            fastcgi_intercept_errors on;    
        }
    }

    location @rewrite_installapp {
        rewrite ^(.*)$ /install/app.php/$1 last;
    }

    # Deny access to version control system directories
    location ~ /\.svn|/\.git {
        deny all;
        internal;
    }

    gzip on; 
    gzip_comp_level 6;
    gzip_min_length 1000;
    gzip_proxied any;
    gzip_disable "msie6";

    # Gzip compression types
    gzip_types
        application/atom+xml
        application/geo+json
        application/javascript
        application/x-javascript
        application/json
        application/ld+json
        application/manifest+json
        application/rdf+xml
        application/rss+xml
        application/xhtml+xml
        application/xml
        font/eot
        font/otf
        font/ttf
        image/svg+xml
        text/css
        text/javascript
        text/plain
        text/xml;

    # Static assets, media
    location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
        expires    90d;
        access_log off;
    }

    # SVG, fonts
    location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
        add_header Access-Control-Allow-Origin "*";
        expires    90d;
        access_log off;
    }
}

Après la configuration, activez le nouveau blocage du serveur :

sudo ln -s /etc/nginx/sites-available/phpbb.conf /etc/nginx/sites-enabled/

Vous pouvez maintenant vérifier la configuration :

sudo nginx -t 

Si tout est configuré correctement, vous verrez :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Redémarrez le service Nginx pour rendre phpBB accessible via l'interface utilisateur Web :

sudo systemctl restart nginx

Ceci termine l’installation backend de phpBB.

Implémentation du cryptage SSL avec Let's Encrypt (facultatif)

Si vous avez l'intention de sécuriser votre serveur Nginx avec HTTPS, un choix judicieux serait d'utiliser Let's Encrypt. Let's Encrypt est une autorité de certification réputée, gratuite et entièrement automatisée, régie par l'Internet Security Research Group (ISRG) à but non lucratif.

Installation de Certbot

Notre première étape consiste à installer le package Certbot. Certbot est un client efficace pour Let's Encrypt qui peut automatiser l'émission et l'installation de certificats sans temps d'arrêt. Il possède également une interface de ligne de commande assez riche.

Pour installer le package Certbot, utilisez la commande suivante :

sudo apt install python3-certbot-nginx -y

Création de votre certificat

Une fois Certbot installé, nous pouvons désormais générer votre certificat SSL. Cette procédure consiste à exécuter la commande suivante :

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d forums.example.com

La commande que nous avons émise facilite une configuration optimale, qui inclut des redirections HTTPS 301 forcées, un en-tête Strict-Transport-Security et la stabilisation OCSP. Chacun de ces éléments contribue à la sécurité de votre serveur.

Remplacer « vous@exemple.com » et « forums.exemple.com » par votre adresse e-mail et votre nom de domaine est crucial.

Transition vers HTTPS

Une fois ces commandes exécutées avec succès, votre forum devrait désormais être accessible via HTTPS à l'adresse https://forums.example.com au lieu de l'ancien http://forum.example.com. Toute tentative d'accès à l'ancienne URL HTTP sera redirigée de manière transparente vers la version HTTPS sécurisée.

Pour en savoir plus sur la sécurisation de Nginx, reportez-vous à notre guide détaillé sur Comment sécuriser Nginx avec Let's Encrypt sur Debian Linux.

Terminez l'installation de l'interface utilisateur Web de phpBB

Après avoir configuré avec succès le backend, nous allons maintenant passer au frontend pour terminer l'installation de phpBB. Vous pouvez accéder à la page d'installation en visitant l'URL de votre forum phpBB désigné. À des fins d'illustration, nous utilisons https://forums.linuxcapable.com.

Lancement de l'installation

En visitant l'URL spécifiée, vous arriverez sur la page d'installation de phpBB. Lancez le processus en cliquant sur le bouton d'installation dans le coin supérieur gauche de la page.

Vous serez ensuite dirigé vers une page détaillant la configuration minimale requise et d'autres spécifications techniques essentielles pour phpBB.

Une fois que votre système répond à ces conditions préalables, cliquez sur Installer en bas de la page.

Configuration du compte administrateur

La prochaine étape consiste à créer votre compte administrateur phpBB. Un mot de passe fort pour ce compte est essentiel pour la récupération et la sécurité globale.

Configuration des détails de la base de données

Après avoir créé votre compte administrateur, vous serez invité à fournir les détails de la base de données. Conservez la valeur par défaut « MySQL avec extension MySQLi » et entrez « localhost » sauf si votre base de données réside sur un autre serveur. Dans ce cas, saisissez l'adresse IP et le port du serveur (si ce n'est pas la valeur par défaut).

Notre tutoriel utilise une base de données nommée « phpbb », avec « phpbbuser » comme utilisateur ayant obtenu l'accès (aux côtés de root) à la base de données phpBB. Conservez le préfixe par défaut « phpbb_ », sauf si vous envisagez d'héberger plusieurs forums, auquel cas la modification du préfixe peut aider à les différencier.

Finalisation de la configuration du serveur

Ensuite, vous aurez la possibilité de configurer les paramètres de votre serveur. Les configurations par défaut devraient suffire si vous n'utilisez pas SSL. Toutefois, si vous avez implémenté SSL, ajustez les paramètres pour les aligner sur vos besoins spécifiques.

Configuration SMTP

Après la configuration du serveur, vous pouvez établir les paramètres SMTP, le cas échéant. Sinon, vous pouvez ignorer cette étape et procéder avec les paramètres par défaut.

Établir les détails du forum

Enfin, désignez le titre de votre forum et choisissez la langue souhaitée. Si vous n'êtes pas sûr du titre du forum, utilisez pour l'instant l'option par défaut ; vous pourrez toujours le réviser plus tard.

Une fois ces étapes terminées, vous devriez atteindre un écran de conclusion, confirmant l'installation réussie de votre forum phpBB, ainsi qu'un lien vous dirigeant vers l'ACP (Admin Control Panel). Si vous rencontrez des erreurs, vous devrez peut-être revoir les étapes précédentes pour vous assurer qu'aucune étape ou autorisation n'a été négligée.

Achèvement de l'installation et de la configuration de phpBB

Supprimer le répertoire d'installation de phpBB

Félicitations pour avoir atteint ce stade. Lors de votre première connexion au panneau de configuration d'administration (ACP) de phpBB, vous serez accueilli par une alerte rouge bien visible vous demandant de renommer ou d'éliminer votre répertoire d'installation. Il est fortement recommandé de supprimer ce répertoire plutôt que de simplement le déplacer. Pour ce faire, exécutez la commande suivante dans votre terminal :

sudo rm -R /var/www/html/phpbb/install

Si vous ne le faites pas, vous constaterez probablement que votre forum ne pourra pas être utilisé tant que vous n'aurez pas supprimé le répertoire d'installation :

Définition des autorisations CHMOD correctes (étape vitale)

Pendant que nous travaillons avec les commandes du terminal, l'attribution des autorisations CHMOD appropriées après l'installation est cruciale. Contourner cette étape pourrait exposer votre système à des vulnérabilités de sécurité importantes, alors veuillez l'exécuter exactement ou utiliser votre méthode si vous pensez qu'elle est supérieure, mais évitez de conserver les autorisations par défaut !!

Exécutez les commandes suivantes :

sudo find /var/www/html/phpbb -type d -exec chmod 755 {} \;
sudo find /var/www/html/phpbb -type f -exec chmod 644 {} \;

Par la suite, nous devons accorder certaines autorisations spéciales à certains répertoires et fichiers :

sudo chmod 777 -R /var/www/html/phpbb/files
sudo chmod 777 -R /var/www/html/phpbb/cache
sudo chmod 777 -R /var/www/html/phpbb/store
sudo chmod 777 -R /var/www/html/phpbb/images/avatars/upload

Négliger de le faire perturbera les fonctions de votre conseil d'administration. Assurez-vous de respecter strictement ces chemins ; sinon, vous pourriez par inadvertance accorder à l'ensemble du répertoire phpBB un accès illimité en lecture et en écriture, réintroduisant ainsi un problème de sécurité.

Instituer un Cronjob pour phpBB (Recommandé)

La dernière étape de ce guide consiste à établir une tâche cron. Sur les forums avec un trafic important ou des temps de réponse lents, il est recommandé de configurer les tâches cron pour qu'elles s'exécutent toutes les 5 minutes, conformément aux directives de phpBB. Voici comment procéder.

Lancez crontab avec cette commande :

sudo crontab -e

Option pour le premier cronjob :

*/5 * * * * /usr/bin/php /var/www/html/phpbb/bin/phpbbcli.php cron:run > /dev/null 2>&1

Pour enregistrer, appuyez sur CTRL+O et pour quitter, appuyez sur CTRL+X. Si cela est fait correctement, vous verrez la réponse suivante dans votre terminal :

crontab: installing new crontab

Cette réponse indique que la tâche cron est active et fonctionne. Bien que phpBB recommande d'exécuter des tâches cron toutes les 5 minutes, vous pouvez ajuster la fréquence en fonction de vos besoins.

Enfin, revenez à votre panneau d'administration phpBB et activez la tâche cron du serveur dans les paramètres de votre serveur.

Avec ces étapes, vous avez terminé la phase post-installation de votre installation phpBB sur Debian.

Conclusion

Avec phpBB installé avec succès sur votre système Debian à l'aide de NGINX, MariaDB et PHP, vous pouvez désormais créer et gérer une communauté en ligne robuste. Assurez-vous de mettre régulièrement à jour tous les composants pour maintenir la sécurité et les performances. Profitez de la flexibilité et de la puissance que cette configuration apporte à votre forum phpBB, offrant une expérience transparente et engageante à vos utilisateurs.

Joshua James
Suis-moi
Les derniers articles par Joshua James (tout voir)

Laissez un commentaire