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

Отдельный файл php.ini для каждого виртуального хоста Apache?

Возможно ли иметь отдельный файл php.ini, который заменяет файл php.ini по умолчанию для каждого виртуального хоста? Я использую Apache / 2.2.14, PHP 5.3.2-1.

Например, у меня есть несколько vhosts, указывающих на домены в моем /var/www/ каталог:

/var/www/website1.com  
/var/www/website2.com

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

/var/www/website1.com/htdocs/
/var/www/website1.com/php.ini

редактировать
Для тех, кому интересно, я нашел больше информации по теме на Как настроить файлы php.ini для каждого сайта на сервере LAMP с помощью NameVirtualHosts?.

Если вы используете mod_php, вы можете переопределить желаемые значения в httpd.conf. Вот эти директивы модуля:

php_value - PHP Value Modifier
php_flag - PHP Flag Modifier
php_admin_value - PHP Value Modifier (Admin)
php_admin_flag - PHP Flag Modifier (Admin)

Если нет, то лучший вариант - PHP FPM (погуглите).

Если вы используете cgi (или fastcgi, или fpm, что тоже является fastcgi), вы можете использовать .user.ini файлы.

Просто поместите .user.ini в корневом каталоге веб-сайта с вашими параметрами php, как показано ниже:

memory_limit=256M
upload_max_filesize=200M
post_max_size=200M

И php расширит основной файл php.ini этими параметрами.

Добавьте PHPINIDir в тег VirtualHost и укажите в нем каталог, в котором ваш файл php.ini будет использовать vhost.

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

схватил из http://www.howtoforge.com/how-to-specify-a-custom-php.ini-for-a-website-apache2-with-mod_php

Редактировать 14.04.2010 12:30 EST: ** Неважно, это изменило «загруженный файл конфигурации» для всех vhosts. **