短版本: PHP(或Apache ??)将“C:”附加到所有相对URL的开头。我怎么能让它停止这样做?
详情: 我正试图在Windows Vista上手动设置AMP堆栈。这仅供家庭网络内部使用。
我已经安装了Apache 2.2,MySQL和PHP 5.4。除了PHP将“C:”附加到每个URL的开头之外,一切都很好。例如,即使调用php_info()
,也会显示php正在将“C:”添加到SCRIPT_PATH
和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编译)都出现了这个问题。
答案 0 :(得分:1)
我遇到了同样的问题,我通过在Apache的httpd.conf文件中将“FcgidFixPathinfo”设置为0来修复它。这是我找到这个的链接。
答案 1 :(得分:0)
我认为你的配置肯定存在一些微妙的错误,我无法猜测它是什么。
但是,如果您对手动安装AMP堆栈的挑战不感兴趣,并且您只想在一个简单的准备安装中完成所有操作,我可以建议您查看WAMPServer。
只需单击安装即可安装Apache / MySQL和PHP。
我建议您在尝试使用WAMPServer之前确保已卸载所有其他尝试安装Apache和MySQL,因为它们无疑会引起混淆。
只是一个建议!