linux : Installer nginx pour tester MyClub
Créé par Jean-Emmanuel Bissey le 30/11/2025 modifié le 25/12/2025 Publié❓ pourquoi php -S est soudain devenu très lent ?
Depuis le début de ce projet, j’utilisais php -S pour tester localement mon application MyClub.
Et du jour au lendemain, l’affichage de certaines pages est devenu très lent, mais uniquement lorsque :
- les pages contiennent des images intégrées, ET
- Tracy est actif.
Ce problème apparaît seulement sur ma Debian 13. Testé sur une ancienne Linux Mint : tout fonctionne normalement.
Après plusieurs discussions avec mes IA préférées sans solution convaincante, j’ai décidé d'installer un vrai serveur local avec Nginx + PHP-FPM.
🛠 Installation d’un serveur local Nginx + PHP-FPM
sudo apt install nginx php-fpm
🔧 Configuration de Nginx
Éditer la configuration du site par défaut :
sudo nano /etc/nginx/sites-available/default
Voici la configuration utilisée :
server {
listen 80 default_server;
listen [::]:80 default_server;
root /home/jeb/Clones/GitHub/MyClub/WebSite;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
📂 Droits d’accès
sudo chmod o+x /home/jeb/ sudo chmod -R o+rx /home/jeb/Clones/GitHub/MyClub/WebSite sudo chmod -R 777 /home/jeb/Clones/GitHub/MyClub/WebSite/var sudo chown -R jeb:www-data /home/jeb/Clones/GitHub/MyClub/WebSte/app/models/database sudo chmod -R 775 /home/jeb/Clones/GitHub/MyClub/WebSte/data sudo chmod g+s /home/jeb/Clones/GitHub/MyClub/WebSte/data
🔄 Redémarrage des services
sudo systemctl restart nginx sudo systemctl restart php8.4-fpm
🧪 Vérification de PHP-FPM
sudo systemctl status php8.4-fpm.service
Exemple de sortie (OK) :
● php8.4-fpm.service - The PHP 8.4 FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php8.4-fpm.service; enabled; preset: enabled)
Active: active (running) since Sun 2025-11-30 14:56:10 CET; 14min ago
Invocation: 4fdb52364dfb4873aa500f0294971a06
Docs: man:php-fpm8.4(8)
Process: 51631 ExecStartPost=...
Main PID: 51628 (php-fpm8.4)
Status: "Processes active: 0, idle: 2, Requests: 3, slow: 0, Traffic: 0.00req/sec"
Tasks: 3 (limit: 15083)
Memory: 36.2M (peak: 40.7M)
CPU: 267ms
CGroup: /system.slice/php8.4-fpm.service
├─51628 "php-fpm: master process (/etc/php/8.4/fpm/php-fpm.conf)"
├─51629 "php-fpm: pool www"
└─51630 "php-fpm: pool www"
nov. 30 14:56:10 debian systemd[1]: Starting php8.4-fpm.service - The PHP 8.4 FastCGI Process Manager...
nov. 30 14:56:10 debian systemd[1]: Started php8.4-fpm.service - The PHP 8.4 FastCGI Process Manager.
🎉 Résultat
Avec cette configuration, MyClub fonctionne comme avec php -S. Et avec les mêmes ralentissements. Ils semblent bien venir de Tracy, qui affiche un temps de chargement de 173 ms alors que la page met en réalité plusieurs secondes à apparaître.
👉Je desactive donc tracy, en attendant de trouver la solution
$logDir = __DIR__ . '/var/tracy/log'; if (!is_dir($logDir)) mkdir($logDir, 0777, true); $local_access = false;// ($_SERVER['REMOTE_ADDR'] === '127.0.0.1' || $_SERVER['REMOTE_ADDR'] === '::1'); if ($local_access) Debugger::enable(Debugger::Development, $logDir); else Debugger::enable(Debugger::Production, $logDir);
👍 Mais au moins, plus besoin d’ouvrir une console, de naviguer dans le répertoire de test et de lancer php -S manuellement : tout est prêt et opérationnel automatiquement !
⚙️ Activation des error_log
Il faut décommenter la ligne dans le fichier de configuration, créer le fichier avec les autorisations qui vont bien, et relancer fpm.
cat /etc/php/8.4/fpm/pool.d/www.conf | grep error_log sudo nano /etc/php/8.4/fpm/pool.d/www.conf sudo touch /var/log/fpm-php.www.log sudo chown www-data:www-data /var/log/fpm-php.www.log sudo chmod 664 /var/log/fpm-php.www.log sudo systemctl restart php8.4-fpm
Un petit tail -f permet de voir les modifications dans le fichier en direct
sudo tail -f /var/log/php8.4-fpm.log