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 :
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 :
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 :
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 )
- Préparer le php.ini personnalisé ou définir les options -d nécessaires.
- Mettre en place le script php-fcgi-starter avec PHPRC correct.
- Tester avec un info.php et valider Loaded Configuration File et Server API.
- 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
- mod_fcgid: http://fastcgi.coremail.cn/
- Apache: http://httpd.apache.org/
- PHP: http://www.php.net/
- OpenSUSE: http://www.opensuse.org/
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.
Matériaux similaires

Activer le HDR dans Stalker 2 — Guide rapide

Suggestions de mots smartphone pour Windows

Enregistrer liens Twitter pour lecture ultérieure

Miner Dogecoin sur un portable — guide pratique

Vitesses différentes pour pavé tactile et souris
