2

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

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

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

4

2 回答 2

1

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

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

于 2014-02-01T00:32:01.620 回答
0

我认为您的配置一定有一些微妙的错误,我无法猜测是什么。

但是,如果您对手动安装 AMP 堆栈的挑战不感兴趣,而您只想要一个简单的准备安装的东西,我建议您看看 WAMPServer。

这可以一键安装 Apache/MySQL 和 PHP。

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

只是一个建议!

于 2013-08-27T12:47:28.020 回答