Как я могу увеличить командную строку memory_limit для PHP с MAMP PRO?

13

Я отредактировал все php.iniна моем Mac (по крайней мере, все найденные "locate") и до сих пор не могу увеличить memory_limitдирективу для PHP.

Я использую MAMP PRO и запускаю сценарии PHP в терминале.

Как это решить?

Алекс Вебер
источник

Ответы:

15

Вместо того, чтобы угадать, какой php.ini вам нужно изменить, выполните эту команду, чтобы найти файл:

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

Хотя я использую MAMP PRO, по умолчанию мои команды PHP командной строки не выполняются с использованием их копии PHP. В моем случае это говорит, что файл найден в/etc/php.ini

Найдя файл, следуйте инструкциям на всех остальных ответах, чтобы увеличить значение параметра memory_limit:

memory_limit = 256M
Крис Руппел
источник
1
Я должен был cp /etc/php.ini.default /etc/php.ini
сначала создать
4

От http://drupal.org/node/66187 (drupal может быть неуместен для ваших нужд, но их сайт имел хорошее объяснение - хотел найти его для вас и отдать им должное)

По умолчанию MAMP имеет ограничение памяти, которое может использовать сценарий, равное 8 МБ, что является значением по умолчанию для PHP. Если посмотреть на файл php.ini, рекомендованный PHP, этот предел памяти обычно составляет 128 МБ. Чтобы настроить эту сумму, откройте файл php.ini в текстовом редакторе и измените следующую строку (примерно в строке 232):

memory_limit = 8M; Максимальный объем памяти, который может потреблять скрипт (8 МБ)

Расположение файла PHP.ini:

/Applications/MAMP/conf/php4/php.ini
/Applications/MAMP/conf/php5/php.ini
В MAMP PRO не изменяйте файл напрямую, так как он будет воссоздан при каждом запуске сервера. Пожалуйста, измените соответствующий шаблон (меню Файл> Изменить шаблон> ...).

Даже с большими ограничениями памяти PHP вы можете получить ошибки тайм-аута, пытаясь импортировать большие базы данных Drupal в MySQL. Эти вопросы подробно обсуждаются в других разделах, касающихся кеша и кеша представлений. Обычно решение состоит в том, чтобы очистить кеш Drupal перед импортом / экспортом баз данных в / из MySQL.

DMG
источник
Нет, эти ограничения были уже на 128 МБ ...
Алекс Вебер
хмм. у вас есть про ... попробуйте изменить шаблон вместо. Видимо файл php.ini воссоздается каждый раз. Инструкции здесь: документации.mamp.info/en/ mamp- pro/how- tos/… Это работает? Что вы работаете на сервере mamp?
dmg
все еще ничего, каждый отдельный файл php.ini, который я могу найти (и шаблоны тоже), имеет 128 МБ, но php -r "phpinfo ();" | grep memory_limit по-прежнему возвращает memory_limit => 8M => 8M
Алекс Вебер
2

Для меня я сделал следующее:

Изменить /Applications/MAMP/conf/php5.4.4/php.ini

и

php.ini.temp

быть:

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

Затем в поиске просто сделайте php.ini и php.ini.temp доступными только для чтения всем пользователям. Таким образом, MAMP не может перезаписать его файлами по умолчанию. Перезагрузите сервер и проверьте ваш phpinfo.

BobFlemming
источник
самые простые вещи остаются незамеченными! Спасибо за эту идею!
Келли Джонсон
1

После недолгой раздумий нашел то, что сработало для меня:

# 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

Там!

Алекс Вебер
источник
1

Быстрый и грязный способ сделать это - установить его в качестве аргумента при вызове скрипта.

То есть:

php -d memory_limit=512M myScript.php 
stefgosselin
источник
0

если вы используете Homebrew , ваши настройки PHP/usr/local/etc/php/<php version>

Greg
источник
0

Если в Mamp Pro включен Opcache, он не получит правильные настройки ... остановите его, перезапустите сервер Mamp Pro ...

mattyoung-redhatmatt
источник