PHP-FastCGI por sitio: Pruebas y configuración
4 Pruebas
Cree un pequeño archivo PHP en el sitio web, por ejemplo en www.example1.com, y abra ese archivo desde el navegador para verificar que la instalación de FastCGI funciona.
Abra el archivo en el servidor:
vi /srv/www/web1/web/info.phpInserte el contenido básico de prueba:
Luego acceda desde el navegador: http://www.example1.com/info.php. Si todo está correcto, la salida debe mostrar información de PHP y, en la línea Server API, debe indicar CGI/FastCGI.

Nota importante: elimine o proteja estos archivos info.php en producción. phpinfo() expone detalles sensibles de la configuración.
5 php.ini personalizado por cada sitio
Cada sitio puede tener su propio php.ini porque cada sitio usa su propio script wrapper php-fcgi-starter. Para poner un php.ini específico en www.example2.com, copie el php.ini por defecto al directorio del sitio y ajuste la propiedad:
cp /etc/php5/fastcgi/php.ini /srv/www/web2/
chown web2:web2 /srv/www/web2/php.iniModifique /srv/www/web2/php.ini según sus necesidades.
Edite el wrapper del sitio:
vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starterDentro del script, establezca PHPRC para que apunte al directorio con el php.ini del sitio:
#!/bin/sh
PHPRC=/srv/www/web2/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/bin/php-cgiReinicie Apache después de los cambios:
systemctl restart apache2.serviceCree un info.php para www.example2.com:
vi /srv/www/web2/web/info.phpVisite http://www.example2.com/info.php y confirme que la línea Loaded Configuration File muestre /srv/www/web2/php.ini.

6 Cambiar una sola directiva de PHP
Si no desea usar un php.ini completo, puede ajustar directivas individuales desde el wrapper añadiendo la opción -d al ejecutable php-cgi. Por ejemplo, para desactivar magic_quotes_gpc en www.example2.com:
vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starterEdite el script así:
#!/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=offLuego reinicie Apache:
systemctl restart apache2.serviceVuelva a cargar http://www.example2.com/info.php y busque la línea magic_quotes_gpc; ahora debería indicar Off.

Buenas prácticas y seguridad
- Proteja archivos de prueba como info.php: elimínelos o restrinja el acceso por IP/HTTP_AUTH en producción.
- Mantenga permisos restrictivos en php.ini por sitio: propietario del sitio y permisos 640 o más restrictivos según el contexto.
- No añada valores de configuración inseguros en php.ini sin revisar su impacto (por ejemplo, allow_url_fopen, display_errors).
- Controle el uso de recursos con PHP_FCGI_CHILDREN y PHP_FCGI_MAX_REQUESTS para evitar consumo excesivo de memoria.
Mini-metodología rápida (pasos para aplicar y verificar)
- Copie o ajuste php.ini en el directorio del sitio.
- Edite el script php-fcgi-starter para exportar PHPRC o añadir -d con la directiva.
- Reinicie Apache (systemctl restart apache2.service).
- Cree y cargue info.php para verificar Server API y Loaded Configuration File.
- Después de comprobar, elimine o restrinja info.php.
Hoja de trucos / Cheat sheet
- Establecer php.ini por sitio: PHPRC=/ruta/al/directorio/
- Cambiar una directiva puntual: exec /usr/bin/php-cgi -d nombre_directiva=valor
- Variables útiles en el wrapper:
- PHP_FCGI_MAX_REQUESTS (ejemplo: 5000)
- PHP_FCGI_CHILDREN (ejemplo: 8)
- Reiniciar Apache: systemctl restart apache2.service
Listas de verificación por rol
Administrador (sistema):
- Verificar permisos y propiedad del php.ini del sitio.
- Confirmar que el wrapper exporta PHPRC correcto.
- Monitorizar procesos php-cgi y consumo de memoria.
Desarrollador (web):
- Probar la configuración con phpinfo() en entorno de staging.
- Evitar dejar phpinfo() en producción.
- Comunicar al equipo los cambios en directivas que puedan afectar la app.
Soporte/Operaciones:
- Comprobar logs del servidor web y del sistema tras cambios.
- Validar que no haya errores de inicio en el wrapper.
- Restaurar el php.ini global si es necesario.
Criterios de comprobación
- Server API en phpinfo() muestra CGI/FastCGI.
- Loaded Configuration File apunta al php.ini esperado por sitio.
- Directivas aplicadas con -d se reflejan en phpinfo().
- No quedan archivos phpinfo.php accesibles en producción.
Glosario (una línea cada término)
- PHPRC: variable de entorno que indica el directorio donde PHP busca php.ini.
- phpinfo(): función PHP que muestra la configuración y entorno de PHP.
- php-cgi: ejecutable del intérprete PHP en modo CGI/FastCGI.
- php-fcgi-starter: script wrapper que prepara variables de entorno y arranca php-cgi.
Enlaces útiles
- mod_fcgid: http://fastcgi.coremail.cn/
- Apache: http://httpd.apache.org/
- PHP: http://www.php.net/
- OpenSUSE: http://www.opensuse.org/
Resumen: configure PHPRC en el wrapper para usar un php.ini por sitio o añada -d a php-cgi para cambiar directivas puntuales. Verifique siempre con phpinfo(), y retire los archivos de prueba de entornos públicos.
Materiales similares
Podman en Debian 11: instalación y uso
Apt-pinning en Debian: guía práctica
OptiScaler: inyectar FSR 4 en casi cualquier juego
Dansguardian + Squid NTLM en Debian Etch
Arreglar error de instalación Android en SD