Configurer PHP-FastCGI par site sur Apache
Important: ce guide suppose que vous avez déjà des virtual hosts fonctionnels et des scripts wrapper php-fcgi-starter pour chaque site. Définition rapide: FastCGI est un protocole qui permet à PHP de tourner en processus persistant séparé du serveur web.
4 Testing
Créez un petit fichier de test PHP pour le site www.example1.com, par exemple :
vi /srv/www/web1/web/info.phpAjoutez le contenu suivant :
Ouvrez ensuite dans un navigateur : http://www.example1.com/info.php
Vous devriez voir une page phpinfo() et la ligne Server API doit indiquer CGI/FastCGI.

5 php.ini personnalisé pour chaque site
Chaque site ayant son propre script wrapper php-fcgi-starter, vous pouvez utiliser un php.ini différent par site.
Exemple : copiez le php.ini par défaut dans le dossier 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(Vous pouvez maintenant modifier /srv/www/web2/php.ini selon vos besoins.)
Ouvrez le script wrapper du site :
vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starterAssurez-vous que la variable PHPRC pointe vers /srv/www/web2/ :
#!/bin/sh
PHPRC=/srv/www/web2/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/bin/php-cgiRedémarrez ensuite Apache :
systemctl restart apache2.serviceCréez un fichier info.php pour www.example2.com :
vi /srv/www/web2/web/info.phpOuvrez http://www.example2.com/info.php et vérifiez que la ligne Loaded Configuration File indique /srv/www/web2/php.ini.

6 Modifier un seul paramètre PHP
Si vous ne voulez pas fournir un php.ini complet, vous pouvez ajuster des options individuelles en ajoutant -d à l’exécutable PHP dans le script wrapper.
Par exemple, pour désactiver magic_quotes_gpc pour www.example2.com :
vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starterModifiez le script pour inclure l’option -d :
#!/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=offRedémarrez Apache :
systemctl restart apache2.serviceRechargez http://www.example2.com/info.php et recherchez la ligne magic_quotes_gpc — elle doit afficher Off.

Liens utiles
- mod_fcgid: http://fastcgi.coremail.cn/
- Apache: http://httpd.apache.org/
- PHP: http://www.php.net/
- OpenSUSE: http://www.opensuse.org/
Quand ça échoue
- phpinfo() n’apparaît pas ou Server API n’est pas CGI/FastCGI: vérifiez que le virtual host utilise le bon wrapper php-fcgi-starter et que le binaire php-cgi existe.
- Loaded Configuration File n’affiche pas le chemin attendu: assurez-vous que PHPRC est exporté correctement et que le script wrapper est exécuté par le bon utilisateur.
- Les changements -d n’ont pas d’effet: vérifiez la syntaxe et que le service PHP-FastCGI a bien été redémarré (via le restart d’Apache ou du pool FastCGI selon votre configuration).
Approches alternatives
- Utiliser des pools PHP-FPM (php-fpm) au lieu de mod_fcgid/php-cgi pour une gestion plus fine des processus et des pools par site.
- Centraliser les réglages partagés dans un php.ini principal et ne personnaliser que les options locales via -d pour réduire la duplication.
Mini-méthodologie de déploiement
- Créer le php.ini spécifique ou décider des options -d.
- Mettre à jour le script php-fcgi-starter (PHPRC ou option -d).
- Redémarrer Apache.
- Vérifier via phpinfo().
- Logger la configuration et conserver un backup du php.ini original.
Checklist rôle-based
- Administrateur système: vérifier permissions, ownership, et redémarrage des services.
- Développeur PHP: tester les fonctions de l’application après changement de configuration.
- Responsable sécurité: s’assurer que les modifications n’activent pas d’extensions ou d’options dangereuses.
Критерии приёмки
- phpinfo() affiche Server API CGI/FastCGI.
- Loaded Configuration File montre le php.ini attendu pour le site.
- Les options passées via -d reflètent les valeurs requises.
Résumé
Vous pouvez gérer la configuration PHP par site soit en pointant PHPRC vers un dossier contenant un php.ini spécifique, soit en passant des options individuelles avec -d dans le script php-fcgi-starter. Toujours redémarrer Apache après modification et valider avec phpinfo().
Notes: adaptez les chemins et les utilisateurs aux conventions de votre distribution et de votre infrastructure.
Matériaux similaires
Installer et utiliser Podman sur Debian 11
Guide pratique : apt-pinning sur Debian
OptiScaler : activer FSR 4 dans n'importe quel jeu
Dansguardian + Squid NTLM sur Debian Etch
Corriger l'erreur d'installation Android sur SD