Приветствую! Для начала, общая инфа:
1. Centos 6.5
2. Nginx 1.6.2 (front-end) + Apache 2.2.15 (back-end)
3. PHP 5.4.33 - в режиме CGI
4. ISPManager 4
Суть проблемы:
У каждого виртуального хоста, есть свой пользовательский php.ini (в общем, это и так понятно), в котором по умолчанию описаны две директивы: sendmail_path и session.save_path. В глобальном php.ini ("/etc/php.ini"), прописал все общие необходимые настройки. Однако, эти настройки не подхватываются. К примеру, прописал я для "disable_functions" список функций в общем php.ini, рестартонул Apache и на любом виртуальном хосте, та же функция exec() выполнится без проблем. Если директиву прописать в пользовательском файле php.ini, то всё отрабатывает как и полагается.
Как решил на данном этапе:
Создал файл php.ini в директории "php.d", где и прописал все необходимые директивы, которые распространяются на все хосты.
Что не устраивает:
Приоритет php.ini в директории "php.d" имеет приоритет выше, чем пользовательский. Да, если смотреть относительно той же директивы "disable_functions", то это можно считать плюсом, но в большей степени - это всё же минус. К примеру, в общих настройках, я укажу временную зону Гондураса. Тогда юзер уже не сможет эту зону изменить в своём php.ini.
Что хотел бы иметь в идеале
Собственно, обратную приоритетность. То есть, если в пользовательском php.ini не прописана какая-то директива, то она подхватывается из общего php.ini, а если директива прописана у юзера, то именно она вступает в силу.
Буду признателен, если кто-нибудь подскажет, как это лучше сделать.
|