如何启用虚拟目录支持php?

时间:2014-08-20 22:39:05

标签: php virtual-directory

我在phpinfo.php中看到“虚拟目录支持”被禁用,我该如何启用它?

2 个答案:

答案 0 :(得分:15)

简而言之:你不能轻易。你不应该。

更长的故事:PHP应该提供无共享的环境。在这种情况下,这意味着如果两个脚本并行运行,它们不应该干扰。在大多数情况下,这不是问题,因为不同的脚本使用不同的进程(带有mod_prefork的Apache模块,FastCGI,fpm,...)但在某些情况下,人们使用PHP作为线程环境中的模块。 (Microsoft IIS模块,Apache mod_mpm模块等)如果是这种情况,PHP不能依赖操作系统来分离上下文,但必须自己做。一个相关区域是当前工作目录。您提到的选项与此有关,名称具有误导性:它不是“虚拟目录支持”,而是“虚拟当前工作目录支持”。它是文件系统操作的抽象。因此,当在不同的线程和代码(例如include "./foo.php";)中有两个PHP请求时,您希望它相对于请求主脚本而不是环境的全局状态。 VCWD支持就是这样做的。因为它仅与线程环境相关,所以启用/禁用是否绑定到PHP是否构建线程安全的设置,这是在编译时完成的。除非你需要这个。作为用户,您不应该关心它 - 它与使用PHP脚本中的流或某些东西无关。

答案 1 :(得分:1)

使用--enable-maintainer-zts进行编译应该这样做 但要确保你知道它的作用,here is an explanation