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

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

是否可以有一个单独的 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 文件,该文件将仅覆盖该 vhost 的默认值,但如果未指定该值,则保留原始默认值:

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

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

答案1

如果您使用 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(谷歌一下)。

答案2

如果你使用 cgi(或 fastcgi,或 fpm,也是 fastcgi),则可以使用.user.ini文件

只需将.user.ini包含 php 选项的文件放在 webroot 目录中即可,如下所示:

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

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

答案3

在 VirtualHost 标签内添加 PHPINIDir 并将其指向 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

编辑于 2010 年 4 月 14 日 12:30pm EST:** 没关系,这会更改所有虚拟主机的“已加载配置文件”。**

相关内容