如何使用 NameVirtualHosts 在 LAMP 服务器上设置每个站点的 php.ini 文件?

如何使用 NameVirtualHosts 在 LAMP 服务器上设置每个站点的 php.ini 文件?

我有一个服务器为多个不同的网站提供服务名称虚拟主机

直到最近全局 php.ini文件一直很好,但最近我们的一位开发人员要求在 php.ini 中进行一些我不想全局设置的设置。

我确信我听说过,你可以在每个站点基础,但不知道如何去做。

有人能指出我如何实现这一目标的正确方向吗?

答案1

你在 php.ini 中设置的大多数设置也可以放在 .htaccess 或Apache 配置该网站的。例如,我的一个虚拟主机在 .htaccess 中有此内容

    php_value display_errors 1
    php_value register_globals 0
    php_value short_open_tag 0
    php_value magic_quotes_runtime 0
    php_value magic_quotes_gpc 0
    php_value session.name "PHPSESSID_SITEBLAH"
    php_value session.gc_maxlifetime 57600
    php_value session.gc_probability 1
    php_value session.gc_divisor 500

答案2

您还可以在 Apache 配置文件 (httpd.conf/apache.conf) 中指定配置设置。您可以根据自己的情况在上下文中指定配置值。

以下示例应将虚拟主机 example.com 的 upload_max_filesize 设置为 10M。

<VirtualHost *>
    ServerName example.com
    DocumentRoot /path_to_docroot
    php_value upload_max_filesize 10M
    php_admin_flag allow_url_fopen on
</VirtualHost>

如果您不想为整个站点设置此值,而是为应用程序所在的某个特定目录设置此值,那么您可以在 .

<VirtualHost *>
   ServerName example.com
   DocumentRoot /path_to_docroot
  <Location /testApp/>
     php_value upload_max_filesize 10M
     php_admin_flag allow_url_fopen on
  </Location>
</VirtualHost>

http://php.net/manual/en/configuration.changes.php了解更多解释。

答案3

另一个建议是使用 mod-fastcgi 或 mod-fcgi,它们将 PHP 作为单独的独立守护进程运行。然后,您可以为每个网站定义单独的用户和 php.ini 配置文件。

答案4

另一个选择是苏普它允许您为每个 VirtualHost 定义一个 php.ini。它还允许您为每个 VirtualHost 指定一个 PHP 版本。

相关内容