Ответ 1
Если используемый вами script заимствован у кого-то другого, убедитесь, что нет ini_set('memory_limit', '256M')
, который даст точно эффект, который вы видите, несмотря на любые изменения, внесенные вами в php.ini.
Возможный дубликат:
Допустимый размер памяти X байт исчерпан
Я обрабатываю небольшой импорт большой базы данных (87mb), и для этого я использую PHP скрипт. Все операции выполняются в локали с установкой apache на Ubuntu Lucid.
Когда я запустил script через несколько минут, я получаю эту ошибку:
Allowed memory size of 268435456 bytes exhausted
Я изменил memory_limit
на 2 ГБ в файле php.ini и перезапустил apache. После этого я проверил phpinfo()
, и я вижу, что memory_limit
установлен на '2048M', поэтому все в порядке.
Но когда я перезапускаю свой script, я получаю ту же ошибку, предел памяти 256 МБ exahusted.
Где я ошибаюсь?
Если используемый вами script заимствован у кого-то другого, убедитесь, что нет ini_set('memory_limit', '256M')
, который даст точно эффект, который вы видите, несмотря на любые изменения, внесенные вами в php.ini.
Ubuntu имеет два php.ini, один для apache и один для cli.
Вы уверены, что отредактировали правильный?
Для командной строки обычно находится /etc/php5/cli/php.ini
.
Скорее всего, используется неверный php.ini.
В том же выводе phpinfo()
-s вы можете проверить, какой файл используется в точности, найти "Файл конфигурации".
Вы можете вызвать функцию phpinfo()
из вашего реального script, чтобы получить настройки именно для вашего script (различные настройки могут использоваться для разных виртуальных hsots, путей и т.д.).