PHP CLI não respeitando o limite de memória no php.ini

4

Estou usando o drush, que é um aplicativo php de linha de comando para gerenciar um site drupal. Eu estou executando um comando para importar um monte de dados, o que me faz atingir o limite de memória do php.

PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted ...

Qual é 512MB se eu estiver fazendo as contas corretamente (536870912/1024/1024 = 512). Eu mudei a diretiva no php.ini que o drush usa:

$> drush status
  ...
  PHP configuration      :  /etc/php5/cli/php.ini 
$> grep memory /etc/php5/cli/php.ini 
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 1024M 

Mas ainda estou atingindo o limite de 512 MB! Estou executando em uma máquina virtual, cujas configurações de memória eu mudei de 512 para 1025 MB de RAM para permitir a execução do drush.

$> free -m
             total       used       free     shared    buffers     cached
Mem:          1010        578        431          0         14        392
-/+ buffers/cache:        172        837
Swap:          382          0        382

Então ele diz que tem uns 431 MB livres, agora que eu colhi a vm até 1024. Eu acho que metade da memória está sendo usada para rodar a GUI, mas eu não entendo como a GUI estava rodando ok quando o vm tinha 512 MB de ram.

Por que o PHP cli ainda está atingindo um limite de memória de 512 MB? Se estava atingindo um limite de memória do sistema, ele não deveria morrer em torno de 431MB, que é o que o comando free diz estar disponível?

    
por user13743 15.11.2012 / 23:53

3 respostas

5

Provavelmente, você tem mais de um arquivo php.ini (verifique algo como /etc/php5/cli ) e está editando o arquivo errado ou tem uma configuração ini_set('memory_limit', '512M'); em um arquivo settings.php ou algo semelhante que está sendo incluído .

    
por 16.11.2012 / 22:16
1

Para outras pessoas que usam essa pergunta como eu, execute este comando:

php --ini

Para ver qual configuração o php-cli está usando. Você verá algo assim:

Loaded Configuration File:         /etc/php/7.1/cli/php.ini

Ou assim:

Loaded Configuration File:         /opt/php-7.0.26/etc/php.ini

Talvez você esteja tentando alterar a configuração em um arquivo errado.

    
por 22.10.2018 / 11:57
0

no Mac, por exemplo

/ etc / php5 / cli é para a linha de comando, então você precisa alterar o /etc/php5/cgi/php.ini

isso deve funcionar!

    
por 04.08.2013 / 22:52