-
Notifications
You must be signed in to change notification settings - Fork 0
Production Nginx
Ce guide decrit une mise en production de Forum PHP sur un serveur Linux (Ubuntu 22.04 LTS ou equivalent) avec Nginx et PHP-FPM. Les etapes 1 a 6 (preparation du serveur, recuperation du code, configuration, migrations, permissions, optimisation) sont identiques au guide Apache, seule la configuration du serveur web change. Si vous n'avez pas encore prepare le serveur, suivez d'abord les etapes 1 a 6 de ce guide en remplacant simplement apache2 par nginx dans les paquets installes.
sudo apt update && sudo apt upgrade -y
sudo apt install -y nginx mysql-server git unzip curlInstallez PHP 8.3, ses extensions, Composer et Node.js comme decrit dans le guide Apache (etape 1), sans installer apache2.
Suivez les etapes 2 a 6 du guide Apache : clonage du depot dans /var/www/forum-php, composer install --no-dev --optimize-autoloader, npm ci && npm run build, configuration de .env, creation de la base de donnees, php artisan migrate --force, php artisan storage:link, php artisan app:create-admin, permissions sur storage/ et bootstrap/cache/, puis php artisan config:cache route:cache view:cache event:cache.
Verifiez que le pool PHP-FPM par defaut ecoute bien sur un socket Unix (configuration par defaut sur la plupart des distributions) :
sudo systemctl status php8.3-fpmLe socket se trouve generalement a /run/php/php8.3-fpm.sock.
Creez /etc/nginx/sites-available/forum-php :
server {
listen 80;
server_name votre-domaine.tld;
root /var/www/forum-php/public;
index index.php;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
client_max_body_size 20m;
}La directive client_max_body_size est augmentee au-dela de la valeur par defaut de Nginx (1 Mo) car le forum accepte l'upload d'avatars, d'emotes et d'images dans les messages.
Activez le site et testez la configuration :
sudo ln -s /etc/nginx/sites-available/forum-php /etc/nginx/sites-enabled/forum-php
sudo nginx -t
sudo systemctl reload nginxsudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d votre-domaine.tldCertbot adapte automatiquement le server block pour ecouter en HTTPS (redirection HTTP vers HTTPS comprise) et configure le renouvellement automatique du certificat.
php artisan testOuvrez https://votre-domaine.tld, verifiez l'inscription, la creation d'un sujet, l'upload d'un avatar (pour valider client_max_body_size et les permissions de storage/), et la connexion au panel admin.
Identique a la section correspondante du guide Apache : git pull, reinstallation des dependances, rebuild des assets, migrations, puis regeneration des caches Laravel. Aucune etape specifique a Nginx n'est necessaire lors d'une mise a jour, sauf si vous modifiez la configuration du server block elle-meme (auquel cas pensez a sudo nginx -t avant sudo systemctl reload nginx).
Pour toute erreur rencontree, consultez la page Depannage.
Forum PHP
Installation
Production
Utilisation
Autres