【发布时间】:2008-12-08 21:01:07
【问题描述】:
我想在我的 php.ini 文件 (C:\Windows\php.ini) 中设置 include_path 变量。
但是,对于托管在同一 Windows 服务器上的不同站点,我想要不同的 include_path 值。我该怎么做?
【问题讨论】:
标签: windows configuration php
我想在我的 php.ini 文件 (C:\Windows\php.ini) 中设置 include_path 变量。
但是,对于托管在同一 Windows 服务器上的不同站点,我想要不同的 include_path 值。我该怎么做?
【问题讨论】:
标签: windows configuration php
http://php.net/manual/en/configuration.file.php 说:
在这些位置搜索php.ini(按顺序):
。 . .
您可以查看此列表,看看其中一种技术是否对您的情况有帮助。例如,你可以设置环境变量PHPRC,或者你可以在每个当前工作目录下放一个不同的php.ini文件,假设每个虚拟主机都有不同的cwd。
请注意,当使用 Apache 和 mod_php 或其他将 PHP 嵌入 Web 服务器的模块(例如 FastCGI)时,php.ini 文件会在 Web 服务器启动时读取一次。当您以 CGI 方式使用 PHP 时,php.ini 文件会在每个 Web 请求期间被读取,因此您有更多机会使用不同的 php.ini。
【讨论】:
假设您在 httpd.conf 文件中有正确的 AllowOverride 设置,您可以从 .htaccess 文件设置 php include_path。下面是一个例子:
.htaccess
php_value include_path "d:\path\to\include"
【讨论】:
据我了解,更重要的是为每个服务器/站点设置单独的包含路径,然后是多个 php.ini 文件?我说尽可能将您的代码保留在 PHP 中。
然后你可以用set_include_path or ini_set设置include_path。
在 apache 中,您可以使用php_value include_path "<first path to look>:<second path>:<etc>:." 在虚拟域或 .htaccess 文件中设置它。 IIS 大概也有类似的方法。
【讨论】:
不幸的是,我认为你不能。但是,一些网络服务器可以单独更改 PHP 设置...使用 mod_php 的 Apache 具有可以在各种虚拟主机上设置的 php_value 设置,IIS 可能有类似的设置,但我不确定。
set_include_path 也可以在运行时覆盖包含路径。
附:为胜利而战的 TF2 工程师。
【讨论】: