Система 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
обновлено местное значение.
Это была моя проблема, и мне потребовались часы, чтобы это определить. Может сэкономить время для некоторых. :)