У меня проблема с большей памятью из 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 байт (~ 20 М).
Где еще я должен искать, где это ограничение налагается?
EDIT: Я запускаю php под nginx / fastcgi, на Ubuntu 9.04 в VPS. Процессы php-cgi кажутся немного ресурсоемкими (RES = 25 м, VIRT = 187 м), но у меня есть 10 м свободной физической памяти и 500 м свободного пространства подкачки.
Мой первый инстинкт – угадать, что PHP читает другой php.ini.
В Debian (и, скорее всего, Ubuntu) каждая версия PHP (cli, cgi и apache) имеет свою собственную копию php.ini.
Я просто посмотрел на код, который я запускал, и кто-то его закодировал в файле конфигурации:
ini_set('memory_limit', '20M');
Это было все, что я делал. Уф.
Вы можете попробовать установить его в файле .htaccess, вот что мне нужно было сделать, чтобы сайт работал на одном сервере.
вот настройки, которые я использовал:
php_value upload_max_filesize 50M php_value post_max_size 60M php_value memory_limit 128M