简短版本: PHP(或 Apache??)将“C:”附加到所有相对 URL 的开头。我怎样才能让它停止这样做?
详细信息: 我正在尝试在 Windows Vista 上手动设置 AMP 堆栈。这仅供我的家庭网络内部使用。
我已经安装了 Apache 2.2、MySQL 和 PHP 5.4。一切都很好,除了 PHP 将“C:”附加到每个 URL 的开头。例如,即使调用php_info()
显示 php 正在将“C:”添加到SCRIPT_PATH
and的开头PHP_SELF
。尽管DOCUMENT_ROOT
变量是正确的 (C:\Apache2\htdocs):
从 PHP 变量部分:
Variable Value
------------------------ ---------------
_SERVER["REQUEST_URI"] /test.php
_SERVER["SCRIPT_PATH"] C:/test.php
_SERVER["PHP_SELF"] C:/test.php
_SERVER["DOCUMENT_ROOT"] C:/Apache2/htdocs
我需要在 php.ini 中更改一些设置来纠正这个问题吗?它完全搞砸了链接,以至于我在我的 Apache 日志中收到很多这样的错误消息:
[error] [client 10.0.0.4] (20023)The given path was above the root path: Cannot map GET /C:/<rest of the actual path>
我已经将 php.ini 和 Apache httpd.conf 与我笔记本电脑上的 XAMPP 安装的相同文件进行了比较(没有这个问题),我看不到任何似乎会导致这种现象的差异。
Apache 2.4 + PHP 5.5(均使用 VC11 编译)和 Apache 2.2 + PHP 5.4(均使用 VC9 编译)均出现此问题。