PHP正在将驱动器名称添加到所有URL的开头

时间:2013-08-25 02:53:44

标签: php apache wamp

短版本: PHP(或Apache ??)将“C:”附加到所有相对URL的开头。我怎么能让它停止这样做?

详情: 我正试图在Windows Vista上手动设置AMP堆栈。这仅供家庭网络内部使用。

我已经安装了Apache 2.2,MySQL和PHP 5.4。除了PHP将“C:”附加到每个URL的开头之外,一切都很好。例如,即使调用php_info(),也会显示php正在将“C:”添加到SCRIPT_PATHPHP_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编译)都出现了这个问题。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我通过在Apache的httpd.conf文件中将“FcgidFixPathinfo”设置为0来修复它。这是我找到这个的链接。

http://www.apachelounge.com/viewtopic.php?p=18659

答案 1 :(得分:0)

我认为你的配置肯定存在一些微妙的错误,我无法猜测它是什么。

但是,如果您对手动安装AMP堆栈的挑战不感兴趣,并且您只想在一个简单的准备安装中完成所有操作,我可以建议您查看WAMPServer。

只需单击安装即可安装Apache / MySQL和PHP。

我建议您在尝试使用WAMPServer之前确保已卸载所有其他尝试安装Apache和MySQL,因为它们无疑会引起混淆。

只是一个建议!