PHP com FastCGI — testes e php.ini por site

TL;DR
Teste PHP criando um info.php e abra no navegador para confirmar CGI/FastCGI. Cada site pode usar seu próprio php.ini ou alterar opções individuais via -d no php-cgi. Reinicie o Apache após mudanças.
4 Testes
Agora vamos criar um pequeno ficheiro PHP de teste, por exemplo no site www.example1.com:
vi /srv/www/web1/web/info.php
Insira o conteúdo seguinte:
Abra esse ficheiro no navegador: http://www.example1.com/info.php. Se tudo correr bem, a saída do phpinfo deverá ser semelhante a esta e você verá CGI/FastCGI na linha Server API:
Importante: mantenha o ficheiro info.php temporário. Ele expõe muita informação sobre a configuração do servidor.
5 php.ini personalizado para cada site
Como cada site usa o seu próprio script wrapper php-fcgi-starter, é possível definir php.ini diferentes por site. Exemplo: copiar o php.ini padrão para o diretório do site /srv/www/web2/ e ajustar permissões:
cp /etc/php5/fastcgi/php.ini /srv/www/web2/
chown web2:web2 /srv/www/web2/php.ini
(Agora você pode editar /srv/www/web2/php.ini conforme necessário.)
Edite o script wrapper do site para apontar para o novo PHPRC:
vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starter
Substitua ou ajuste a linha PHPRC para apontar para /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-cgi
Reinicie o Apache depois de alterar o script:
/etc/init.d/apache2 restart
Crie um novo info.php para www.example2.com:
vi /srv/www/web2/web/info.php
Conteúdo:
Abra no navegador: http://www.example2.com/info.php. Na linha Loaded Configuration File deverá aparecer /srv/www/web2/php.ini:
6 Alterar configurações únicas do PHP
Se preferir não passar um php.ini completo, pode alterar opções individuais adicionando o switch -d ao executável php-cgi no script wrapper. Exemplo: desabilitar magic_quotes_gpc para www.example2.com.
Abra o wrapper:
vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starter
Ajuste para incluir o parâmetro -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=off
Reinicie o Apache:
/etc/init.d/apache2 restart
Abra novamente http://www.example2.com/info.php e procure pela linha magic_quotes_gpc — deverá mostrar Off:
7 Links úteis
- mod_fcgid: http://fastcgi.coremail.cn/
- Apache: http://httpd.apache.org/
- PHP: http://www.php.net/
- OpenSUSE: http://www.opensuse.org/
Quando isso pode falhar
- PHPRC incorreto: se PHPRC não apontar para um diretório válido com php.ini, o PHP usará a configuração padrão.
- Permissões: o ficheiro php.ini deve ser legível pelo usuário que executa o processo PHP-FastCGI.
- Variáveis conflitantes: combinar php.ini personalizado e flags -d pode gerar comportamento inesperado. Prefira uma abordagem clara.
Abordagens alternativas
- Usar poolers FastCGI geridos (por exemplo, systemd socket-activated) em vez de scripts shell, para melhor supervisão.
- Usar PHP-FPM quando disponível; facilita pools por site e configurações por pool.
- Para aplicações isoladas, conteiners (Docker) oferecem isolamento completo da configuração do PHP.
Checklist por função
Administrador de sistemas:
- Verificar PHPRC e permissões do php.ini.
- Reiniciar Apache após alterações.
- Remover info.php quando terminar os testes.
Desenvolvedor:
- Confirmar valores de ini_set e overrides funcionam como esperado.
- Testar funcionalidades dependentes de configurações (ex.: upload_max_filesize, memory_limit).
Mini-metodologia de implantação rápida
- Criar php.ini de teste em /srv/www/nomedosite/php.ini.
- Ajustar php-fcgi-starter para PHPRC apontar para o diretório do site.
- Reiniciar Apache e validar via phpinfo().
- Monitorar logs de erro por 24–48 horas.
- Promover para produção quando validado.
Snippets / Cheat sheet
- Reiniciar Apache:
/etc/init.d/apache2 restart
- Exemplo mínimo de wrapper com override de opção:
#!/bin/sh
PHPRC=/caminho/para/site/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/bin/php-cgi -d display_errors=0
Glossário (uma linha)
PHPRC: variável de ambiente que indica ao PHP onde procurar o php.ini.
Resumo
- Crie um info.php para validar se o PHP está a correr como CGI/FastCGI.
- Pode usar php.ini por site apontando PHPRC para o diretório do site.
- Para mudanças rápidas, use exec /usr/bin/php-cgi -d opção=valor no wrapper.
- Sempre reinicie o Apache e remova ficheiros de diagnóstico após os testes.
Materiais semelhantes

Como minerar Dogecoin no laptop — guia prático

Velocidades diferentes: trackpad e mouse

Corrigir Fatal D3D Error 25 em RE4 Remake

Testar roles Ansible com Molecule e Docker

PHP com FastCGI: testes e php.ini por site
