Guide des technologies

Tester et configurer PHP‑FastCGI par site

4 min read Administration web Mis à jour 01 Oct 2025
Tester et configurer PHP‑FastCGI par site
Tester et configurer PHP‑FastCGI par site

Important : redémarrez Apache après toute modification des scripts d’initialisation PHP pour qu’elles prennent effet.

Pré-requis rapides

  • Accès shell sur le serveur (root ou sudo).
  • Arborescence web : /srv/www//web
  • Scripts d’amorçage php-fcgi par site dans /srv/www/php-fcgi-scripts//php-fcgi-starter

4 Tests

Créez un petit fichier PHP de test dans le site www.example1.com, par exemple :

vi /srv/www/web1/web/info.php

| |

Ouvrez ensuite ce fichier dans un navigateur : http://www.example1.com/info.php. Si tout fonctionne, la sortie ressemble à phpinfo() et la ligne Server API affiche CGI/FastCGI :

Page phpinfo montrant Server API = CGI/FastCGI

5 php.ini personnalisé par site

Chaque site ayant son propre script wrapper php-fcgi-starter, il est possible d’utiliser un php.ini différent pour chaque site.

Exemple : copiez le php.ini par défaut dans le répertoire du site www.example2.com et changez le propriétaire :

cp /etc/php5/fastcgi/php.ini /srv/www/web2/
chown web2:web2 /srv/www/web2/php.ini

(Éditez ensuite /srv/www/web2/php.ini selon vos besoins.)

Éditez le script d’amorçage du site :

vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starter

…et placez /srv/www/web2/ dans la variable PHPRC :

| #!/bin/sh PHPRC=/srv/www/web2/ export PHPRC export PHP_FCGI_MAX_REQUESTS=5000 export PHP_FCGI_CHILDREN=8 exec /usr/bin/php-cgi |

Redémarrez Apache ensuite :

/etc/init.d/apache2 restart

Créez un nouveau phpinfo() pour www.example2.com :

vi /srv/www/web2/web/info.php

| |

Appelez-le dans un navigateur : http://www.example2.com/info.php. La ligne Loaded Configuration File doit maintenant indiquer /srv/www/web2/php.ini :

Page phpinfo montrant Loaded Configuration File = /srv/www/web2/php.ini

6 Changer un seul paramètre PHP

Au lieu de fournir un php.ini complet, vous pouvez modifier un paramètre PHP dans le script php-fcgi-starter en ajoutant l’option -d au binaire PHP.

Par exemple, pour désactiver magic_quotes_gpc pour www.example2.com :

vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starter

| #!/bin/sh PHPRC=/etc/php5/fastcgi/ export PHPRC export PHP_FCGI_MAX_REQUESTS=5000 export PHP_FCGI_CHILDREN=8 exec /usr/bin/php-cgi -d magic_quotes_gpc=off |

Redémarrez Apache :

/etc/init.d/apache2 restart

Rechargez http://www.example2.com/info.php et vérifiez la ligne magic_quotes_gpc — elle doit maintenant indiquer Off :

phpinfo montrant magic_quotes_gpc = Off

Liste de contrôle rapide avant déploiement

  • Vérifier les permissions du fichier php.ini (appartenance au compte du site).
  • S’assurer que PHPRC pointe vers le répertoire contenant php.ini.
  • Contrôler PHP_FCGI_CHILDREN et PHP_FCGI_MAX_REQUESTS selon charge prévue.
  • Redémarrer Apache après chaque édition du script d’amorçage.

Méthodologie minimale ( étapes )

  1. Préparer le php.ini personnalisé ou définir les options -d nécessaires.
  2. Mettre en place le script php-fcgi-starter avec PHPRC correct.
  3. Tester avec un info.php et valider Loaded Configuration File et Server API.
  4. Monitorer la charge (logs, top, ps) et ajuster le nombre d’enfants ou de requêtes.

Scénarios où cette approche échoue ou est inadaptée

  • Environnements containers (Docker) où PHP est géré différemment par l’image.
  • Plateformes PaaS qui n’autorisent pas de scripts d’amorçage personnalisés.
  • Besoin d’une isolation avancée (chroot complet, conteneurisation) : préférez des conteneurs ou PHP-FPM par pool.

Tests d’acceptation (critères à valider)

  • Le fichier info.php affiche Server API = CGI/FastCGI.
  • Loaded Configuration File pointe vers le php.ini attendu pour le site.
  • Paramètres passés via -d apparaissent dans phpinfo() avec la valeur attendue.
  • Aucun processus PHP orphan n’est laissé après redémarrage d’Apache.

Runbook de dépannage rapide

  • Aucun phpinfo affiché : vérifier droits sur /srv/www//web, logs Apache (/var/log/apache2/error.log).
  • Server API non CGI/FastCGI : confirmer que le VirtualHost utilise le script php-fcgi-starter adapté.
  • Paramètre -d non pris en compte : exécuter /usr/bin/php-cgi -v dans le contexte user pour valider la commande.

Checklist rôles (Admin, DevOps, Développeur web)

  • Admin : créer l’utilisateur site, fixer permissions, vérifier sécurité.
  • DevOps : configurer php-fcgi-starter, monitorer la mémoire et les processus.
  • Développeur : valider les paramètres PHP via phpinfo() et tester l’application.

Liens utiles

Résumé

  • Utiliser php-fcgi-starter par site permet un php.ini personnalisé ou des options -d spécifiques.
  • Toujours tester avec phpinfo() et redémarrer Apache après modification.
  • Surveillez la consommation mémoire/processus et adaptez PHP_FCGI_CHILDREN selon la charge.
Auteur
Édition

Matériaux similaires

Activer le HDR dans Stalker 2 — Guide rapide
Jeux PC

Activer le HDR dans Stalker 2 — Guide rapide

Suggestions de mots smartphone pour Windows
Productivité

Suggestions de mots smartphone pour Windows

Enregistrer liens Twitter pour lecture ultérieure
Lecture différée

Enregistrer liens Twitter pour lecture ultérieure

Miner Dogecoin sur un portable — guide pratique
Cryptomonnaie

Miner Dogecoin sur un portable — guide pratique

Vitesses différentes pour pavé tactile et souris
Windows

Vitesses différentes pour pavé tactile et souris

Corriger l'erreur D3D 25 dans RE4 Remake
Jeux vidéo

Corriger l'erreur D3D 25 dans RE4 Remake