Что ограничивает мои ресурсы PHP? - PullRequest
0 голосов
/ 26 ноября 2009

У меня проблема с получением дополнительной памяти из PHP.

Это сообщение об ошибке:

Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 82 bytes) in ...

Тем не менее:

Я установил memory_limit в файле php.ini на 32M:

memory_limit = 32M;

Я также пытался переопределить его вручную в реальном скрипте:

ini_set('memory_limit', '32M');

И - вот где я потерян - я подтвердил с помощью phpinfo (), что этот файл php.ini - это фактически используемый ini-файл, и memory_limit, похоже, установлен правильно. Строка в memory_limit дает это:

memory_limit    32M 32M

Так что может показаться, что все настроено правильно, но я получаю только 20971520 байт (~ 20M).

Где еще мне искать, чтобы выяснить, где налагается это ограничение?

РЕДАКТИРОВАТЬ: Я запускаю php под nginx / fastcgi, на Ubuntu 9.04 в VPS. Процессы php-cgi кажутся немного ресурсоемкими (RES = 25 м, VIRT = 187 м), но у меня 10 м свободной физической памяти и 500 м свободного пространства подкачки.

Ответы [ 3 ]

1 голос
/ 26 ноября 2009

Мой первый инстинкт - угадать, что PHP читает другой php.ini.

В Debian (и, скорее всего, в Ubuntu) каждая версия PHP (cli, cgi и apache) имеет свою собственную копию php.ini.

1 голос
/ 26 ноября 2009

Я просто изучил код, который выполнял, и кто-то жестко запрограммировал его в файл конфигурации:

ini_set('memory_limit', '20M');

Что переопределяло все остальное, что я делал. Уф.

0 голосов
/ 26 ноября 2009

Вы можете попробовать установить его в файле .htaccess, вот что мне нужно было сделать, чтобы сайт работал на одном сервере.

вот настройки, которые я использовал:

php_value  upload_max_filesize  50M
php_value  post_max_size  60M
php_value  memory_limit  128M
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...