Я отредактировал все php.ini
на моем Mac (по крайней мере, все найденные "locate") и до сих пор не могу увеличить memory_limit
директиву для PHP.
Я использую MAMP PRO и запускаю сценарии PHP в терминале.
Как это решить?
Я отредактировал все php.ini
на моем Mac (по крайней мере, все найденные "locate") и до сих пор не могу увеличить memory_limit
директиву для PHP.
Я использую MAMP PRO и запускаю сценарии PHP в терминале.
Как это решить?
Ответы:
Вместо того, чтобы угадать, какой php.ini вам нужно изменить, выполните эту команду, чтобы найти файл:
php -r 'phpinfo();' | grep 'php.ini'
Хотя я использую MAMP PRO, по умолчанию мои команды PHP командной строки не выполняются с использованием их копии PHP. В моем случае это говорит, что файл найден в/etc/php.ini
Найдя файл, следуйте инструкциям на всех остальных ответах, чтобы увеличить значение параметра memory_limit:
memory_limit = 256M
От 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.
Для меня я сделал следующее:
Изменить /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.
После недолгой раздумий нашел то, что сработало для меня:
# 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
Там!
Быстрый и грязный способ сделать это - установить его в качестве аргумента при вызове скрипта.
То есть:
php -d memory_limit=512M myScript.php
Если в Mamp Pro включен Opcache, он не получит правильные настройки ... остановите его, перезапустите сервер Mamp Pro ...
cp /etc/php.ini.default /etc/php.ini