ISP Manager Pro и php.ini

12
L1
На сайте с 13.10.2009
Offline
23
15760

OS Debian lenny

в трех файлах / etc/php5/apache2/php.ini, / etc/php5/cgi/php.ini, / etc/php5/cli/php.ini

установлено папаметр

safe_mode = On (для примера)

php работает в режиме cgi, в каталоге пользователя лежит файл php.ini с записями

sendmail_path = "/ usr / sbin / sendmail-t-i-f ..."
session.save_path = "/ home /..."

кроме этого в файле нет никаких записей

а phpinfo (); отображает что:

safe_mode = Off

Откуда оно приняло такие настройки, если у пользовательском php.ini нет такой записи, а в глобальном php.ini установлено safe_mode = On?

Еще одна интересная вещь:

Когда я удаляю пользовательский php.ini, то настройки все же берутся из гобального php.ini.

Как то не нормально ето.

Как сделать чтоб использовалса глобальний php.ini (/etc/php5/cgi/php.ini), и для пользователя менялись только те настройки в его пользовательском php.ini, которие он задал?

M
На сайте с 16.09.2009
Offline
278
#1

логично

берется пользовательский php.ini (где лежит бинарник)

дальше - настройки по-умолчанию (не путайте с системными настройками, они

используются для php-cgi, если только в каталоге с бинарником нет php.ini файла)

копируем системный php.ini и меняем

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
Himiko
На сайте с 28.08.2008
Offline
560
#2

По поводу phpinfo(), там написано, где он взял настройки. В каком файле берёт настройки указано в :

Loaded Configuration File

и

additional .ini files parsed

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
L1
На сайте с 13.10.2009
Offline
23
#3

Loaded Configuration File /var/www/din/data/php-bin/php.ini

additional .ini files parsed /etc/php5/cgi/conf.d/gd.ini, /etc/php5/cgi/conf.d/mcrypt.ini, /etc/php5/cgi/conf.d/mysql.ini, /etc/php5/cgi/conf.d/mysqli.ini, /etc/php5/cgi/conf.d/pdo.ini, /etc/php5/cgi/conf.d/pdo_mysql.ini

Scan this dir for additional .ini files /etc/php5/cgi/conf.d

Проблема заключается в том, что / var / www / din / data / php-bin / php.ini почти пуст, и создается он при создании пользователя. Получается если я закрою в глобальном файле / etc/php5/cgi/php.ini disable_function = exec ..... то ничего не закроется для пользователя, так как php имеет настройки пользователя с файла / var / www / din / data / php-bin / php.ini где нет отключенных ф-й по умолчанию.

Я думаю лучше чтоб использовалса глобальний php.ini (/etc/php5/cgi/php.ini), и для пользователя менялись только те настройки в его пользовательском php.ini, которие он задал, но как ето сделать.

Как то не хорошо испманагер сделал ети ф-и

M
На сайте с 16.09.2009
Offline
278
#4

это не особенность isp-манагера, это особенность того, как php парсит

свои конфигурационные файлы.

думаю, можно вынести общие директивы в /etc/php5/<SAPI>/conf.d/core.ini

перекрыть их нельзя - они парсятся после php.ini в директории бинарника

PS:

"закрывать" disable_function в глобальном php.ini - никакого смысла нет. по _самой_идее_

php-cgi - как вы там "закроете", так пользователь у себя в php.ini это и откроет.

L1
На сайте с 13.10.2009
Offline
23
#5

Насколько я понял есть два выхода:

1) научить манагер не создавать / var / www / din / data / php-bin / php.ini, все настройки прописать в глобальном / etc/php5/cgi/php.ini. Когда юзеру будет нужно изменить настройки, он закачает дефолтный php.ini в / var / www / din / data / php-bin /, отредактирует его как ему надо, и все.

2) Изменить порядок считывания конфигов.

Configuration File (php.ini) Path - / etc/php5/cgi

Loaded Configuration File - / etc/php5/cgi/php.ini

Scan this dir for additional. Ini files - / var / www / din / data / php-bin / php.ini

/ etc/php5/apache2/conf.d/core.ini - эти настройки перекрыть невозможно.

Второй вариант более идеальный, правильно?

Как изменить способ парсинга конфигов для php?

M
На сайте с 16.09.2009
Offline
278
#6
Как изменить способ парсинга конфигов для php?

никак. пересобрать php-cgi бинарник с опцией --with-config-file-scan-dir=...

L1
На сайте с 13.10.2009
Offline
23
#7
myhand:
никак. пересобрать php-cgi бинарник с опцией --with-config-file-scan-dir=...

Параметри сборки:

--with-config-file-path=/etc/php5/cgi \

--with-config-file-scan-dir=/etc/php5/cgi/conf.d \

На результате настройки считываются в последовательности:

1) / etc/php5/cgi/php.ini - глобальные

2) / var / www / user / data / php-bin / php.ini

2) / etc/php5/cgi/conf.d

Configuration File (php.ini) Path - /etc/php5/cgi

Loaded Configuration File - /var/www/USER/data/php-bin/php.ini

Scan this dir for additional .ini files - /etc/php5/cgi/conf.d

additional .ini files parsed - /etc/php5/cgi/conf.d/gd.ini, /etc/php5/cgi/conf.d/mcrypt.ini, /etc/php5/cgi/conf.d/mysql.ini, /etc/php5/cgi/conf.d/mysqli.ini, /etc/php5/cgi/conf.d/pdo.ini, /etc/php5/cgi/conf.d/pdo_mysql.ini

Вопрос: где задается путь считывания юзерських настроек?

Andreyka
На сайте с 19.02.2005
Offline
822
#8

Loaded Configuration File - /var/www/USER/data/php-bin/php.ini

Тут

Не стоит плодить сущности без необходимости
L1
На сайте с 13.10.2009
Offline
23
#9
Andreyka:
Loaded Configuration File - /var/www/USER/data/php-bin/php.ini
Тут

Здесь указывается какие настройки php загрузились. Вы наверное не читали темы с самого начала.

Я хочу чтобы настройки загружались в следующем порядке:

1) глобальный / etс/php5/cgi/php.ini

2) юзеривський / var / www / USER / data / php-bin / php.ini (в нем будут несколько параметров, которые будут пепекриваты настройки глобального конфига)

3) / etc/php5/conf.d/core.ini - эти настройки загружаются останнымы и они не перекрываются юзером, т.е. он их изменить не может.

Сейчас ситуация которая:

1) загружаеться Loaded Configuration File - / var / www / USER / data / php-bin / php.ini юзерський, почти пустой, и некоторые параметры, которые указаны в глобальном конфиг - вообще не заданы.

2) затем загружаются настройки из / etc/php5/conf.d

Тоисть настройки из глобального конфига / etc/php5/cgi/php.ini вообще не загружаются.

M
На сайте с 16.09.2009
Offline
278
#10
local123:
Параметри сборки:

--with-config-file-path=/etc/php5/cgi \
--with-config-file-scan-dir=/etc/php5/cgi/conf.d \

На результате настройки считываются в последовательности:
1) / etc/php5/cgi/php.ini - глобальные
2) / var / www / user / data / php-bin / php.ini
3) / etc/php5/cgi/conf.d

неправда.

_либо_ 1) + 3) - _либо_ 2) + 3).

local123:

Вопрос: где задается путь считывания юзерських настроек?

он _стандартный_ - каталог с бинарником php-cgi.

способ 2) + 3) работает _только_ если в каталоге с php-cgi _есть_ файл php.ini (или php-cgi.ini).

в этом случае глобальный php.ini - игнорируется.

файлы в директории --with-config-file-scan-dir - читаются _всегда после_

"основного" конфига.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий