我最近在本地机器上安装了 Apache 2.4,以及使用 PHP-FPM 的 PHP 5.4.8。
一切都很顺利(过了一会儿......)但仍然有一个奇怪的错误:
我像这样为 PHP-FPM 配置了 Apache:
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Users/apfelbox/WebServer"
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/Users/apfelbox/WebServer/$1
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
它有效,例如,如果我打电话给http://localhost/info.php
我得到正确的phpinfo()
(它只是一个测试文件)。
但是,如果我调用目录,则会File not found.
在错误日志中收到带有正文的 404 :
[Tue Nov 20 21:27:25.191625 2012] [proxy_fcgi:error] [pid 28997] [client ::1:57204] AH01071: Got error 'Primary script unknown\n'
Run Code Online (Sandbox Code Playgroud)
我现在尝试使用 mod_rewrite 进行代理:
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Users/apfelbox/WebServer"
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/Users/apfelbox/WebServer/$1 [L,P]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
但问题是:它总是重定向,因为http://localhost/
自动http://localhost/index.php
请求,因为
DirectoryIndex index.php index.html
Run Code Online (Sandbox Code Playgroud)