Windows上的Apache和php-fpm

时间:2017-02-27 18:27:17

标签: php windows apache


php 7.1
Apache 2.4 + mod_proxy_fcgi
Windows 10

我正在尝试在Windows上设置php-fpm + apache,使用mod_proxy_fcgi但不断收到错误。任何人都可以帮我配置apache。

我得到了php-fpm runnig,并且证实它实际上使用了nginx,所以php应该不是问题。


PHP-fpm正在端口9123上运行。

这是我的vhost配置:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "${SRVROOT}/htdocs"
    <Directory "${SRVROOT}/htdocs">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        <FilesMatch "\.php$">
            SetHandler proxy:fcgi://127.0.0.1:9123
        </FilesMatch>
    </Directory>    
</VirtualHost>

这是错误:

  

代理错误

     

您的浏览器发送了此服务器无法理解的请求。该   代理服务器无法处理请求GET /index.php /.

     

原因:无法解析URI:   FCGI://127.0.0.1:9123C:/Apache24/htdocs/index.php*

有谁知道如何修复它?

3 个答案:

答案 0 :(得分:1)

我正在处理同样的问题而且我找到了根本原因:我们很可能都在关注this wiki.apache.org guide。在指南中有一些拼写错误。导致问题的原因是SetHandler之后缺少斜线。这是适合我的配置:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

<FilesMatch "\.php$">
    <If "-f %{REQUEST_FILENAME}">
        SetHandler "proxy:fcgi://localhost:9123/"
    </If>
</FilesMatch>

答案 1 :(得分:0)

你试过把:

<FilesMatch "\.php$">
    SetHandler proxy:fcgi://127.0.0.1:9123
</FilesMatch>

目录外? IE浏览器。如果你把这部分放在docroot指令和目录指令之间会发生什么?

此致 埃里克

答案 2 :(得分:0)

嗨尝试类似的事情:

<FilesMatch "^/CHANGE_ME/.*\.php(/.*)?$">
    SetHandler proxy:fcgi://127.0.0.1:9123
</FilesMatch>