我正在尝试将我的 Mac 配置移植到 Windows 上以供一些客户使用。
由于 Windows 不是 Mac OS,因此我必须使用 php-cgi.exe 而不是 PHP-FPM。我已经单独测试了每个组件,一切似乎都正常工作,因此我相信这是一个仅配置的问题。
在我的 Mac 上,有这个RewriteRule
:
RewriteCond %{SERVER_NAME} ^([^.]+)\.([^.]+)\.dev$
RewriteRule ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000%{DOCUMENT_ROOT}/%2/%1/$1" [P]
我已经添加了,RewriteCond
以便您可以看到%1
它们%2
来自哪里。
%{DOCUMENT_ROOT}
在我的 Mac 上,它以 开头,因此运行正常/
,但在 Windows 上%{DOCUMENT_ROOT}
则以 开头C:
。
测试此配置时,会出现以下错误:
代理错误
代理服务器从上游服务器收到无效响应。代理服务器无法处理请求 GET /。
原因:DNS查找失败:127.0.0.1:9000c:
看起来(通过查看 error.log)它127.0.0.1:9000:C:
被视为 IPv6 地址的一部分,并且按照[127.0.0.1:9000:C:]
日志中的方式进行转换。
如果我尝试使用以下方法隔离这两个部分/
:
RewriteCond %{SERVER_NAME} ^([^.]+)\.([^.]+)\.dev$
RewriteRule ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000/%{DOCUMENT_ROOT}/%2/%1/$1" [P]
^
我收到此错误:
未指定输入文件。
实际上,到目前为止我测试的所有东西都出现了这个错误。
有解决办法吗?