我刚刚全新安装了 Apache 2.2.17 和 PHP 5.3.4。对于 Apache,我选择了 Win32 安装程序;对于 PHP,我选择了 x86 VC6 Thread Safe,原因是这,并且我将Apache放在C:\web\Apache2.2,将PHP放在C:\web\libraries\PHP。
问题是,每次我尝试访问本地主机上的 PHP 页面时,我的日志文件中都会出现以下条目:
[Thu Dec 16 11:54:02 2010] [error] [client 127.0.0.1] File does not exist: C:/web/htdocs/web, referer: http://localhost/
DocumentRoot 是 C:\web\htdocs,它适用于普通的 .html 文件(有用!)。但似乎 Apache 正在将所有对 .php 页面的请求重定向到 htdocs 的 /web 子文件夹。我不明白。
PHP 安装程序所做的一切都在 httpd.conf 中:
ScriptAlias /php/ "C:/web/libraries/php/"
Action application/x-httpd-php "C:/web/libraries/php/php-cgi.exe"
和 mime.types:
application/x-httpd-php php
application/x-httpd-php-source phps
答案1
丢失的
LoadModule php5_module "C:/web/libraries/PHP/php5apache2_2.dll"
看起来 PHP 人员把它搞乱了。
为了获得上面的 ScriptAlias 行,我实际上在 PHP 安装程序中选择了“Apache 2.2.x 模块”,但它似乎添加了 PHP-CGI 指令,这不是我想要的。
因此我自然而然地选择了“Apache CGI”来配置“Apache 2.2.x 模块”;)
以下是我httpd.conf
现在拥有的内容:
PHPIniDir "C:/web/libraries/PHP/"
LoadModule php5_module "C:/web/libraries/PHP/php5apache2_2.dll"
AddType application/x-httpd-php .php
我不确定这是否完全正确,但它确实有效。