Como o PHP lança um “limite de memória esgotado” quando memory_limit é configurado para -1?

1

Recentemente recebi uma mensagem de erro durante a execução de um script PHP a partir da linha de comando, dizendo:

PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted
(tried to allocate 40961 bytes) 

php -i | grep memory mostra:

memory_limit => -1 => -1
suhosin.memory_limit => 0 => 0

Qual deve definir nenhum limite?

O servidor está executando PHP 5.3.3-7+squeeze16 with Suhosin-Patch (v0.9.32.1) (cli)

Como isso pode ser?

    
por acme 29.07.2013 / 12:16

2 respostas

1

Não é sensato fazer com que o PHP não tenha limite algum .. Quando o seu servidor tiver 32 GB de memória, dê um máximo de 30 GB, etc. Tente definir um valor positiv em vez de -1 ou 0 .

Certifique-se de segmentar as versões corretas do PHP / php.ini, dependendo do modo em que você executa um script, existem:

/etc/php5/apache para o apache

/etc/php5/fpm para fastcgi usando mod_fpm

/etc/php5/cgi para scripts cgi

/etc/php5/cli para o cliente shell do php

para efetuar alterações que você também precisa reiniciar:

/etc/init.d/apache

ou

/etc/init.d/php5-fpm

Se nada ajudar ainda, verifique esta pergunta: não é possível remover o limite sobre o uso de memória para script PHP

    
por 29.07.2013 / 12:27
1

Ok, eu achei, o problema não era a configuração do PHP, mas depois de executar uma pesquisa global eu encontrei um script de fornecedor que configurava o limite de memória para 32M: - /

    
por 29.07.2013 / 13:30

Tags