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


2

Как я могу сделать так, чтобы каждый пользователь (с Apache's mod_userdir ) имеет php.ini файл в их домашнем каталоге, который используется вместе с системой php.ini (в настоящее время в /etc/php5/php.ini?

Ура!

РЕДАКТИРОВАТЬ: Это требует PHP 5.2.xв основном этот сервер не может запустить PHP 5.3 из-за устаревшего кода.

РЕДАКТИРОВАТЬ: Большинство решений с .htaccess а также php_value не будет работать здесь, потому что мы используем FastCGI с SuExec

Ответы:


5

При использовании Virtualhosts это будет выглядеть так:

<VirtualHost 1.2.3.4:80>
    [...]
    PHPINIDir /var/www/web1
    [...]
</VirtualHost>

Где php.ini будет находиться в /var/www/web1/php.ini.

Также проверьте здесь: http://www.howtoforge.com/how-to-specify-a-custom-php.ini-for-a-website-apache2-with-mod_php


Будет ли это использовать систему php.ini И пользовательское переопределение?
Kristopher Ives

@kristopher - Да, любое значение, не найденное в пользовательском, будет получено из системы php.ini.
BloodPhilia

0

С PHP 5.3.0, проверьте .user.ini файлы. Я не пробовал это, но звучит так, как вы хотите:

В дополнение к основному файлу php.ini, PHP сканирует INI-файлы в каждом каталоге, начиная с каталога запрошенного PHP-файла и вплоть до корневого каталога текущего документа (как установлено в $ _SERVER ['DOCUMENT_ROOT'] ). Только INI-настройки с режимами PHP_INI_PERDIR и PHP_INI_USER будут распознаваться в INI-файлах в стиле .user.ini.

Или же создайте файл .htaccess для каждого пользователя. Внутри .htaccess, измените include_path :

php_value include_path "./php:/php/includes"


Извините, мы не можем использовать php_value внутри нашего .htaccess :(
Kristopher Ives
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.