Como especificar um php.ini personalizado para um site (Apache2 com mod_php)
Nesta página
- 1 Nota Preliminar
- 2 Obtendo detalhes sobre a instalação do PHP
- 3 php.ini personalizado para um site
- 4 Links
Este breve artigo explica como especificar um php.ini customizado para um site rodando no Apache2 com mod_php. Dessa forma, cada site pode ter seu próprio php.ini ao invés de ter que usar o padrão do servidor.
1 Nota Preliminar
Estou usando o site www.example.com aqui com o documento root /var/www/web1/web aqui.
2 Obtendo detalhes sobre a instalação do PHP
Vamos agora criar um pequeno arquivo PHP (info.php) na raiz do documento e chamá-lo em um navegador. O arquivo exibirá detalhes úteis sobre nossa instalação do PHP, como o arquivo php.ini usado.
nano /var/www/web1/web/info.php
<?php
phpinfo();
?>
Agora chamamos esse arquivo em um navegador (por exemplo, http://www.example.com/info.php):
Como você pode ver, o site está usando o arquivo /etc/php/8.1/apache2/php.ini.
3 php.ini personalizado para um site
Vou copiar o php.ini padrão (/etc/php/8.1/apache2/php.ini no Debian/Ubuntu; /etc/php.ini no Fedora/CentOS) para o diretório /etc/php/web1/ e fazer www .example.com usa o php.ini do diretório /etc/php/web1/:
mkdir /etc/php/web1/
cp /etc/php/8.1/apache2/php.ini /etc/php/web1/
mkdir /etc/php/web1/
cp /etc/php.ini /etc/php/web1/
(Agora você pode modificar /var/www/web1/php.ini ao seu gosto.)
Em seguida, abra a configuração do vhost para o site www.example.com e adicione uma linha PHPINIDir a ele:
<VirtualHost 1.2.3.4:80>
[...]
PHPINIDir /etc/php/web1
[...]
</VirtualHost>
PHPINIDir deve conter o diretório onde está localizado o arquivo php.ini do site.
Reinicie o Apache depois:
service apache2 restart
service httpd restart
Agora chame o arquivo info.php novamente em um navegador (http://www.example.com/info.php):
A linha de caminho do arquivo de configuração (php.ini) agora deve mostrar o novo php.ini.
4 links
- Apache: https://httpd.apache.org/
- PHP: https://www.php.net/