Encontre o arquivo php.ini correto

170

No momento, estou tentando localizar o arquivo php.ini correto para editá-lo e reiniciar o apache, para que as alterações ocorram e estou perplexo.

Eu encontrei três arquivos php.ini diferentes (não faço ideia por que existem três), foi assim que encontrei os arquivos

$ sudo find / -name php.ini
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini

Eu também fiz ....

$ sudo php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

Alterei todos eles (apenas para ter certeza) para as configurações desejadas.

Eu reiniciei o apache usando

sudo service apache2 restart

Os resultados...

* Restarting web server apache2

Eu recarreguei a página e ela mostrou que o arquivo php.ini não foi atualizado.

Eu sei disso porque eu costumava

echo ini_get('post_max_size');

Que deveria ser alterado para 20 milhões, mas ainda era apenas 2 milhões

Tentei reiniciar meu computador pensando que talvez isso parasse o servidor apache e recarregasse o arquivo php.ini com a configuração correta, mas infelizmente essa tentativa também falhou.

Existe alguma chance de haver outro arquivo php.ini que possa estar interferindo?

Michael
fonte
6
o 'correto' está no apache2subdiretório
Joren 12/10
1
use em updatedb; locate php.inivez de find.
S28 de
/etc/php/5.6/apache2/php.ini@ Michael O arquivo está no Ubuntu 16.04 LTS Xenial Xerus, onde 5.6/está a versão do php instalada. Primeiro copiar o arquivo para php.original.ini, em seguida, abra para edição com sudo gedit /etc/php/5.6/apache2/php.ini
Hedley Dedo

Respostas:

290

Os três arquivos que você possui são destinados a diferentes usos.

/etc/php/5.6/cli/php.inié para o programa CLI PHP, que você encontrou executando phpno terminal.

/etc/php/5.6/cgi/php.ini é para o sistema php-cgi que não é usado especificamente nesta configuração.

/etc/php/5.6/apache2/php.inié para o plugin PHP usado pelo Apache. É esse que você precisa editar para que as alterações sejam aplicadas à sua configuração do Apache.

/etc/php/5.6/fpm/php.inié para o php5-fpmprocessador, que é um 'wrapper' compatível com fastcgi para processamento PHP (como transferir do NGINX para php5-fpm) e é executado como um processo autônomo no sistema (ao contrário do plugin Apache PHP)

Para versões do Ubuntu mais baixos do que 16,04, /etc/php/5.6/, /etc/php/7.0/, /etc/php/7.1/, e assim por diante, são substituídos por /etc/php5/e assim por diante. Caso contrário, esses caminhos permanecem precisos. Adapte isso de acordo com o seu ambiente, substituindo o 5.6número ou pela pasta da versão real existente em seu ambiente.

Thomas Ward
fonte
1
O php.ini não foi encontrado no diretório / etc / php5 / apache2. mas está disponível lá no diretório cli.
Anuj TBE 05/06
2
@ anujsharma9196 O único motivo seria se você não estiver usando o plug-in do Apache para PHP. Os caminhos de arquivo ainda funcionam como listado aqui até hoje (confirmado na minha VM 15.04)
Thomas Ward
21

Tente executar um script que contenha esse trecho no navegador <?php phpinfo(); ?>e tente procurar algo como o Loaded Configuration File . Esta entrada especifica o php.ini que seu PHP usa no servidor Apache.

Justin Paul Paño
fonte
14

Para descobrir qual php.iniCLI está usando, você pode executar:

php -i | grep 'php.ini'

Exemplo de saída:

$ php -i | grep 'php.ini'

Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini
Gianfranco P.
fonte
Essa deve ser a resposta aceita!
Marcelo Ágil
1
Isso é bom, mas dará ao CLI as configurações carregadas apenas para php. Para carregar as configurações do apache, é necessário fazer o phpinfo () em uma página da web.
Dipu Raj
13

para php7 ubuntu 16.4

/etc/php/7.0/apache2/php.ini
Softmixt
fonte
1
Estou faltando esse arquivo. Qual pacote está fornecendo esse arquivo?
galmok
é para php7 no ubuntu 16.4
Softmixt
1

Você pode encontrar o arquivo que está sendo usado executando isto no terminal:

php --ini
Nathália Pissuti
fonte