![如何使用 NameVirtualHosts 在 LAMP 服务器上设置每个站点的 php.ini 文件?](https://linux22.com/image/486849/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20NameVirtualHosts%20%E5%9C%A8%20LAMP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E8%AE%BE%E7%BD%AE%E6%AF%8F%E4%B8%AA%E7%AB%99%E7%82%B9%E7%9A%84%20php.ini%20%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我有一个灯服务器为多个不同的网站提供服务名称虚拟主机。
直到最近全局 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>
答案3
另一个建议是使用 mod-fastcgi 或 mod-fcgi,它们将 PHP 作为单独的独立守护进程运行。然后,您可以为每个网站定义单独的用户和 php.ini 配置文件。
答案4
另一个选择是苏普它允许您为每个 VirtualHost 定义一个 php.ini。它还允许您为每个 VirtualHost 指定一个 PHP 版本。