每个Apache虚拟主机都有单独的php.ini文件吗?


11

是否有一个单独的php.ini文件可以覆盖每个虚拟主机的默认php.ini文件?我正在运行Apache / 2.2.14,PHP 5.3.2-1。

例如,我有几个虚拟主机指向/var/www/目录中的域:

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

我想要的是能够在每个目录中放置一个自定义php.ini文件,该文件将仅覆盖该虚拟主机的默认值,但是如果未指定该值,则保留原始默认值:

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

编辑
对于那些感兴趣的人,我在如何使用NameVirtualHosts在LAMP服务器上设置每个站点的php.ini文件中找到了有关该主题的更多信息

Answers:


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 FPM)。


2
是的,我还可以在每个虚拟主机根目录中使用.htaccess来更改值,从我的阅读中可以看出,这是一种很好的方法。但是我知道我已经看到了一些共享托管的虚拟主机,这些虚拟主机允许您使用它们自己的php.ini覆盖它们,因此必须有另一种方法来正确执行?

2

如果您使用的是cgi(或fastcgi或fpm,也为fastcgi),则可以使用.user.inifiles

只需.user.ini使用php选项将文件放在您的webroot目录中,如下所示:

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

php将使用该选项扩展主要的php.ini文件。


-3

将PHPINIDir添加到VirtualHost标记内,并将其指向vhost将使用的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 pm:**没关系,这更改了所有虚拟主机的“已加载配置文件”。**


PHPINIDir会为所有虚拟主机加载该php.ini,而不仅仅是您放入的那个主机。我在假设相同的情况下被抓到了:(
alandarev
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.