Como posso aumentar a linha de comando memory_limit para PHP com o MAMP PRO?

13

Eu editei todos php.inino meu Mac (pelo menos todos os encontrados por "localizar") e ainda não consigo aumentar a memory_limitdiretiva para PHP.

Estou usando o MAMP PRO e executando scripts PHP no terminal.

Como resolver isso?

Alex Weber
fonte

Respostas:

15

Em vez de adivinhar qual php.ini você precisa alterar, execute este comando para localizar o arquivo:

php -r 'phpinfo();' | grep 'php.ini'

Mesmo usando o MAMP PRO, por padrão, meus comandos PHP de linha de comando não são executados usando sua cópia do PHP. No meu caso, diz que o arquivo é encontrado em/etc/php.ini

Depois de localizar o arquivo, siga as instruções em todas as outras respostas para aumentar a configuração memory_limit:

memory_limit = 256M
Chris Ruppel
fonte
1
Eu tive que punho cp o arquivo padrão:cp /etc/php.ini.default /etc/php.ini
deweydb 22/01
4

Em http://drupal.org/node/66187 (o drupal pode ser irrelevante para as suas necessidades, mas o site deles tem uma boa explicação - queria procurá-lo por você e dar crédito a eles)

Por padrão, o MAMP possui o limite de memória que um script pode usar definido em 8 MB, que é o padrão do PHP. Observando o arquivo recomendado pelo php.ini do PHP, esse limite de memória é normalmente definido em 128 MB. Para ajustar esse valor, abra o arquivo php.ini em um editor de texto e altere a seguinte linha (aproximadamente na linha 232):

limite_de memória = 8M; Quantidade máxima de memória que um script pode consumir (8 MB)

Locais do arquivo PHP.ini:

/Applications/MAMP/conf/php4/php.ini
/Applications/MAMP/conf/php5/php.ini
No MAMP PRO, não altere o arquivo diretamente, pois ele será recriado a cada inicialização do servidor. Por favor, edite o modelo apropriado (menu Arquivo> Editar modelo> ...).

Mesmo com limites maiores de memória PHP, você pode obter erros de tempo limite ao importar grandes bancos de dados Drupal para o MySQL. Esses problemas são discutidos detalhadamente em outros lugares com relação ao cache e exibem o cache. Geralmente, a solução é esvaziar o cache do Drupal antes de importar / exportar bancos de dados para / do MySQL.

dmg
fonte
Sem ir, esses limites já estavam em 128MB ...
Alex Weber
Hmm. você tem pro ... tente editar o modelo. Aparentemente, o arquivo php.ini é recriado a cada vez. Instruções aqui: documentation.mamp.info/en/mamp-pro/how-tos/… Esse trabalho? O que você está executando no servidor mamp?
Dmg
Ainda nada, todos os arquivos php.ini que posso encontrar (e modelos também) têm 128 MB, mas php -r "phpinfo ();" | grep memory_limit ainda retorna memory_limit => 8M => 8M
Alex Weber
2

Para mim, fiz o seguinte:

Edite o /Applications/MAMP/conf/php5.4.4/php.ini

e

php.ini.temp

ser estar:

memory_limit = 128M      ; Maximum amount of memory a script may consume (8MB)

Então, no localizador, simplesmente faça o php.ini e o php.ini.temp somente leitura para todos os usuários. Dessa forma, o MAMP não pode substituí-lo pelos arquivos padrão. Reinicie o servidor e verifique seu phpinfo.

BobFlemming
fonte
as coisas mais simples passam despercebidas! Obrigado por esta ideia!
precisa
1

Depois de mexer um pouco, encontrei algo que funcionou para mim:

# backup original php.ini
sudo mv /usr/bin/php /usr/bin/php.bkp

# create a symlink from MAMP's php.ini in /usr/bin directory
# (I use 5.2, change the path for 5.3)
sudo ln -s /Applications/MAMP/bin/php/php5.2.17/bin/php /usr/bin/php

Lá!

Alex Weber
fonte
1

Uma maneira rápida e suja de fazer isso é defini-lo como argumento ao chamar seu script.

Ou seja:

php -d memory_limit=512M myScript.php 
stefgosselin
fonte
0

se você usa o Homebrew , suas configurações de php estão em/usr/local/etc/php/<php version>

Greg
fonte
0

Se o Opcache estiver ativado no Mamp Pro, você não obterá a configuração adequada ... pare, reinicie o servidor Mamp Pro ...

mattyoung-redhatmatt
fonte