Я редагував кожен 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 = 256M
Від http://drupal.org/node/66187 (drupal може бути неактуальним для ваших потреб, але на їхньому веб-сайті було добре пояснено - хотіли отримати джерело для вас і дати їм кредит)
За замовчуванням MAMP має обмеження пам'яті, яке сценарій може використовувати, встановлений на рівні 8 МБ, що є типовим для PHP. Переглядаючи PHP-файл, рекомендований PHp.ini, цей ліміт пам’яті зазвичай встановлюється у 128 Мб. Щоб відкоригувати цю суму, відкрийте файл php.ini в текстовому редакторі та змініть наступний рядок (приблизно в рядку 232):
memory_limit = 8М; Максимальний об'єм пам'яті, який може використовуватись сценарій (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)
Тоді в Finder просто зробіть 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
Якщо у вас є Opcache в Mamp Pro, ви не отримаєте належних налаштувань ... зупиніть його, перезавантажте сервер Mamp Pro ...
cp /etc/php.ini.default /etc/php.ini