Eu tenho mais de 60% de RAM livre, mas não consigo executar um arquivo php simples

0

Estou tentando executar um arquivo .php simples em meu ambiente local:
(Ubuntu 15.10 - CPU Intel® Core ™ i7-4600U @ 2.10GHz × 4 - 64 bits - 8 GB de RAM)

Então,vocêestávendoqueeutenhomaisde60%deRAMlivre,masnãoseiporquesempretenhoesseerro:

Erreur:Allowedmemorysizeof4244635648bytesexhausted(triedtoallocate4294967674bytes).

Eutenteiseguirasoluçãoparaesseproblemasemelhante: Link . Mas não está resolvendo meu problema.

Obrigado

    
por KubiRoazhon 27.04.2016 / 12:02

1 resposta

1

O PHP tem uma configuração que limita a quantidade de memória que um único script pode usar. Não importa quanto RAM total seu sistema tenha se você exceder esse valor.

Se você estiver executando no console, o arquivo que o afeta provavelmente é /etc/php5/cli/php.ini e tem uma linha que diz:

memory_limit = XXXXXXX

Para remover totalmente o limite, altere-o para ler:

memory_limit = -1

No entanto, como outros comentaram, seu script já está tentando usar mais de 4 GB de RAM. Talvez você deva repensar o que você está fazendo ou procurar por bugs no código que causariam isso como um loop infinito. A maioria dos scripts PHP, até mesmo scripts CLI, deve estar usando menos de 256 MB, mesmo para as tarefas mais difíceis. O PHP não é projetado para carregar em um arquivo de 2 GB na memória e trabalhar nele em variáveis, ou descarregar bancos de dados inteiros em matrizes. Muitos programadores com quem trabalhei cometem esse tipo de erro. Em vez disso, coloque esse armazenamento no local onde ele funciona melhor - deixe-o no banco de dados e trabalhe nele linha por linha, ou deixe-o no sistema de arquivos e faça o mesmo.

E se este for um script da web e não algo que você esteja executando na CLI, provavelmente não desejará mexer na configuração memory_limit, pelo menos não na vizinhança de 4 GB ou mais. Essa é uma má ideia para um servidor da Web que atende a vários clientes.

    
por Tony Maro 27.04.2016 / 17:39