Назад | Перейти на главную страницу

Пользовательский Php.ini Когда php работает как модуль?

У меня есть параметр php, который можно изменить только в файле ini. Я не могу изменить этот параметр в глобальном php.ini из-за конфликтов, поэтому мне нужно указать конкретного пользователя. Можно ли это сделать, если php запущен как модуль? Или мне нужно изменить запуск php как cgi?

Похоже, лучший ответ - «не совсем», но вы можете незаметно изменить некоторые параметры, используя описанные ниже приемы.

Я не знаю, как указать отдельный файл php.ini при использовании PHP в качестве модуля Apache, только при использовании PHP в качестве CGI. При этом любой из параметров конфигурации в php.ini можно изменить в .htaccess файл, как показано на http://php.net/configuration.changes если у вас в конфигурации Apache установлен AllowOverride, Options или All.

Я делал это на многих своих сайтах, чтобы изменить общие конфигурации PHP. Я предполагаю, что вам не нужно изменять все настройки, поэтому число должно легко управляться, добавляя параметры в свой .htaccess файл в каталоге, в котором вам нужны изменения.

Следующее я использую на нескольких сайтах, чтобы изменить include_path а также установить auto_prepend_file и auto_append_file настройки. Для элементов логического флага просто используйте php_flag вместо того php_value.

<IfModule mod_php5.c>
    php_value auto_prepend_file 'header.inc.php'
    php_value auto_append_file 'footer.inc.php'
    php_value include_path '/path/to/private/includes:/usr/share/pear'
</IfModule>

Я переопределил обработчик для php для оболочки php cgi и смог указать файл php.ini

Для этого: создайте файл htaccess в папке, которую вы хотите изменить, примерно так:

Action php5-cgi /cgi-bin/php5-cgi.cgi
AddHandler php5-cgi .php

Затем создайте файл php5-cgi.cgi примерно так:

#!/bin/sh
exec /usr/bin/php-cgi "$@" -c "/home/user/php.ini"

Установите права доступа к этому файлу, чтобы он выполнялся от имени «пользователя». Затем запустите тестовый файл с помощью phpinfo (1); чтобы узнать, загружен ли у вас файл ini.

Спасибо за помощь !!

Все подробности здесь: http://php.net/configuration.changes

В основном нет.

Из Руководство по PHP:

Файл конфигурации (php.ini) читается при запуске PHP. Для версий PHP серверных модулей это происходит только один раз при запуске веб-сервера. Для версий CGI и CLI это происходит при каждом вызове.

Вы можете использовать Apache "php_admin_value" для каждого виртуального хоста / пользователя.

IIRC, вы можете переопределить каждое значение php.ini с помощью этой команды