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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Приоритет настроект php.ini

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Deonis
Отправлено: 03 Февраля, 2015 - 14:16:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 298
Дата рег-ции: Нояб. 2009  


Помог: 14 раз(а)




Приветствую! Для начала, общая инфа:
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, а если директива прописана у юзера, то именно она вступает в силу.
Буду признателен, если кто-нибудь подскажет, как это лучше сделать.
 
 Top
Ch_chov
Отправлено: 03 Февраля, 2015 - 14:36:16
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Врядли получится, потому что конфигурация считывается только из одного php.ini файла.
Можно попробовать выставлять значения некоторых php параметоров в настройках nginx через fastcgi_param директиву.
 
 Top
esterio
Отправлено: 03 Февраля, 2015 - 14:40:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




1. копайте в сторону http://suhosin[dot]org/stories/index[dot]html
2. такие вызовы ка eval без сухосина вам не запретить ибо это не функция как такая
3. зачем вам тогда апач если у вас ПХП работает в режиме CGI? сделайте nginx + mod_fpm или nginx + apache2 + mod_php
 
 Top
Deonis
Отправлено: 03 Февраля, 2015 - 14:57:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 298
Дата рег-ции: Нояб. 2009  


Помог: 14 раз(а)




esterio пишет:
зачем вам тогда апач если у вас ПХП работает в режиме CGI?
Досталось, так сказать, в наследство )) Сейчас что-то менять глобально нет возможности. На сервере работают 23 сайта, которые куда-то переселять на время реорганизации - это большой геморой.
esterio пишет:
такие вызовы ка eval без сухосина вам не запретить
Речь пока идет не о каких-то отдельных настройках или закрытии дыр, а о конфигурации в целом. А за Suhosin спасибо, почитаю.
Ch_chov пишет:
Врядли получится, потому что конфигурация считывается только из одного php.ini файла.
Тут вы ошибаетесь. В том способе, который я пока использую, у меня сканируются все конфиги из директории "php.d", а затем пользовательские. Настройки читаются из обоих файлов, но общий перекрывает директивы пользовательские.
Ch_chov пишет:
выставлять значения некоторых php параметоров в настройках nginx
Да, думал о таком варианте, но это не оптимально.

(Отредактировано автором: 03 Февраля, 2015 - 14:59:07)

 
 Top
esterio
Отправлено: 03 Февраля, 2015 - 15:28:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Deonis пишет:
Да, думал о таком варианте, но это не оптимально.

в целом сколько я не читал так и делаю, только в вашем случае я как понял нужно не в nginx а в апаче проставлять настройки.
А на счет suhosin-а он как раз и существует для закрития дыр. И если не ошибаюсь он ставиться по дефолту в apt-get install.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Apache и другие веб-серверы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB