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

11

Можно ли иметь отдельный файл 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 в каждом каталоге, который переопределяет значения по умолчанию только для этого vhost, но сохраняет исходные значения по умолчанию, если это значение не указано:

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

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

Кальвин
источник

Ответы:

6

Если вы используете 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 (Google).

Artefacto
источник
2
Да, я также мог бы использовать .htaccess в каждом корне vhost для изменения значений, и из того, что я прочитал, это хороший способ сделать это. Но я знаю, что видел несколько хостингов с общим хостингом, которые позволяют переопределять их php.ini с их собственными, так что должен быть другой способ сделать это правильно?
2

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

Просто поместите .user.iniфайл в каталог webroot с настройками php следующим образом:

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

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

elboletaire
источник
-3

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

<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. **

матовый
источник
PHPINIDir загружает этот php.ini для ВСЕХ виртуальных хостов, а не только для того, в который вы его вставили. Меня поймали, предполагая то же самое :(
alandarev