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