Як я можу збільшити командний рядок 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 = 256M

1
Я повинен був кулак cp файл за замовчуванням:cp /etc/php.ini.default /etc/php.ini
deweydb

4

Від 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.


Не йдіть, ці ліміти були вже на 128 Мб ...
Алекс Вебер

хм. у вас є про ... спробуйте змінити шаблон замість цього. Мабуть, файл php.ini відтворюється кожного разу. Інструкції тут: документація.mamp.info/ uk/ mamp-pro/how- tos/… Що працює? Що ти працюєш на сервері лампа?
dmg

все ще нічого, кожен файл php.ini, який я можу знайти (і шаблони теж), має 128 Мб, але php -r "phpinfo ();" | grep memory_limit як і раніше повертає memory_limit => 8M => 8M
Alex Weber

2

Для мене я зробив наступне:

Відредагуйте /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.


найпростіші речі залишаються непоміченими! Дякую за цю ідею!
kelly johnson

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 


0

Якщо у вас є Opcache в Mamp Pro, ви не отримаєте належних налаштувань ... зупиніть його, перезавантажте сервер Mamp Pro ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.