Назад | Перейти на главную страницу

Локальное значение PHP memory_limit не соответствует значению php.ini

Система CentOS.

Резюме: изменен memory_limit в главном и локальном php.ini, но при этом не изменилось локальное значение для конкретного виртуального хоста.

Пытаясь повысить производительность, я установил memory_limit на 1024M в /etc/php.ini.

phpinfo () показывает значения Master и Local для других виртуальных хостов на сервере как 1024M. Изменение значения в /etc/php.ini изменяет все значения, кроме одного.

Один сайт застрял с локальным значением 256M.

Я думал, что нашел проблему: в корне этого сайта есть файл php.ini (о котором я не знал), и у него

memory_limit = 256M

Поменял на 1024М. Задача решена? Нет. И теперь я не знаю, где искать. Очевидно, я перезапустил apache (/etc/init.d/httpd restart), и это обычно помогает.

Я также отключил кеш APC, хотя не думаю, что он будет кешировать файлы ini.

И, наконец, я попытался добавить это к виртуальному хосту в httpd.conf:

php_value memory_limit 536870912

(да, это было бы 512 МБ) И это ни на что не повлияло.

В чем еще может быть проблема?

Спасибо.

Я нашел ответ. В корне сайта был скрытый файл .htaccess, который перекрывал все остальные значения.

В нем была строка:

php_value memory_limit 256M

Я изменил его на:

php_value memory_limit 1024M

Не нужно перезапускать apache, предел памяти сразу увеличился до 1024M.

——————

Кроме того, если вы загрузите phpinfo() в корне вашего веб-сайта, вверху вы можете увидеть файлы конфигурации, влияющие на PHP. Выполните поиск «config», и вы найдете список.

Я просто хочу добавить, что может быть еще один скрытый файл с именем .user.ini который может устанавливать переменные php, например php.ini.

Ценность в .user.ini отображалось как локальное значение, хотя я пытался установить значение в php.ini. Здесь значение, установленное с помощью php.ini обновлял только глобальное значение, а не локальное значение. Изменение значения в .user.ini обновлено местное значение.

Это была моя проблема, и мне потребовались часы, чтобы это определить. Может сэкономить время для некоторых. :)