问题:在配置apache2.4的php-fpm里,是用如 ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/www/szt_anqun_org/public_html/$1 来设置,如typecho可以正常安装,但安装后,无法登录到后,也无法浏览到文章页,如
https://szt.anqun.org/index.php/archives/1/ 页面,会提示404。
原因:如果使用 ProxyPass 或 ProxyPassMatch,php 的 pathinfo 会丢失。换成如下,可支持 pathinfo,
<FilesMatch "\.php$">
SetHandler "fcgi://127.0.0.1:9000"
</FilesMatch>
<Proxy "fcgi://127.0.0.1:9000/" enablereuse=on max=10>
</Proxy>
参考:
*
https://serverfault.com/questions/888114/missing-path-info-on-apache-2-4-php5-6-fpm-proxy-fcgi
*
https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
针对您在Apache 2.4中配置php-fpm遇到的问题,即安装Typecho后无法登录后台或浏览文章页面(如出现404错误),这主要是因为使用ProxyPassMatch
时PHP的PATH_INFO
信息可能未被正确传递。根据您的描述和参考信息,解决此问题的关键在于调整Apache配置以支持PATH_INFO
。
修改Apache配置
首先,打开Apache的配置文件,通常位于/etc/apache2/sites-available/your_site.conf
或httpd.conf
,具体位置依据您的系统配置而定。然后,替换或注释掉原有的ProxyPassMatch
指令,并添加以下配置来启用对PATH_INFO
的支持:
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
这段配置会将所有.php
文件的请求通过FastCGI代理到本地的php-fpm服务,并确保PATH_INFO
能够正确传递。
重启Apache服务
修改配置后,需要重启Apache服务以应用更改。执行以下命令之一,取决于您的系统:
sudo systemctl restart apache2
sudo service apache2 restart
验证配置
完成上述步骤后,尝试重新访问之前出现问题的页面,比如https://szt.anqun.org/index.php/archives/1/
。如果配置正确,现在应该能够正常显示内容,不再出现404错误。
/var/log/apache2/error.log
和/var/log/php-fpm.log
,这些日志能提供更详细的错误信息帮助进一步诊断问题。通过以上步骤,您应该能够解决Apache与php-fpm集成时的PATH_INFO
丢失问题,从而确保Typecho等依赖PATH_INFO的PHP应用可以正常工作。