Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Приоритет настроект php.ini
Форумы портала PHP.SU » Серверное администрирование » Apache и другие веб-серверы » Приоритет настроект php.ini

Страниц (1): [1]
 

1. Deonis - 03 Февраля, 2015 - 14:16:30 - перейти к сообщению
Приветствую! Для начала, общая инфа:
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, а если директива прописана у юзера, то именно она вступает в силу.
Буду признателен, если кто-нибудь подскажет, как это лучше сделать.
2. Ch_chov - 03 Февраля, 2015 - 14:36:16 - перейти к сообщению
Врядли получится, потому что конфигурация считывается только из одного php.ini файла.
Можно попробовать выставлять значения некоторых php параметоров в настройках nginx через fastcgi_param директиву.
3. esterio - 03 Февраля, 2015 - 14:40:08 - перейти к сообщению
1. копайте в сторону http://suhosin[dot]org/stories/index[dot]html
2. такие вызовы ка eval без сухосина вам не запретить ибо это не функция как такая
3. зачем вам тогда апач если у вас ПХП работает в режиме CGI? сделайте nginx + mod_fpm или nginx + apache2 + mod_php
4. Deonis - 03 Февраля, 2015 - 14:57:40 - перейти к сообщению
esterio пишет:
зачем вам тогда апач если у вас ПХП работает в режиме CGI?
Досталось, так сказать, в наследство )) Сейчас что-то менять глобально нет возможности. На сервере работают 23 сайта, которые куда-то переселять на время реорганизации - это большой геморой.
esterio пишет:
такие вызовы ка eval без сухосина вам не запретить
Речь пока идет не о каких-то отдельных настройках или закрытии дыр, а о конфигурации в целом. А за Suhosin спасибо, почитаю.
Ch_chov пишет:
Врядли получится, потому что конфигурация считывается только из одного php.ini файла.
Тут вы ошибаетесь. В том способе, который я пока использую, у меня сканируются все конфиги из директории "php.d", а затем пользовательские. Настройки читаются из обоих файлов, но общий перекрывает директивы пользовательские.
Ch_chov пишет:
выставлять значения некоторых php параметоров в настройках nginx
Да, думал о таком варианте, но это не оптимально.
5. esterio - 03 Февраля, 2015 - 15:28:12 - перейти к сообщению
Deonis пишет:
Да, думал о таком варианте, но это не оптимально.

в целом сколько я не читал так и делаю, только в вашем случае я как понял нужно не в nginx а в апаче проставлять настройки.
А на счет suhosin-а он как раз и существует для закрития дыр. И если не ошибаюсь он ставиться по дефолту в apt-get install.

 

Powered by ExBB FM 1.0 RC1