【问题标题】:Custom 404 message when using PHP-FPM with Apache将 PHP-FPM 与 Apache 一起使用时的自定义 404 消息
【发布时间】:2016-02-23 22:48:36
【问题描述】:

我已将 Apache(Debian 上为 2.2.22)配置为通过 FastCGI 处理 PHP 文件:

SetHandler 应用程序/x-httpd-php

动作应用程序/x-httpd-php /fcgi-bin/php5-fpm 虚拟别名

/fcgi-bin/php5-fpm /fcgi-bin-php5-fpm FastCgiExternalServer

/fcgi-bin-php5-fpm -socket /var/run/php5-fpm.sock -idle-timeout 600 -pass-header 授权

显示自定义文件未找到 (HTTP 404) 页面在 Apache 中配置如下:

..

错误文档 404 /pagenotfound.htm

..

目录>

不存在的非 PHP 文件 的请求由自定义 404 pagenotfound.htm 文件响应。没问题。

但是对不存在的 PHP 文件的请求会以 http-status-header "HTTP/1.1 404 Not Found" 和内容 "File not found." 来回答,所以不是我的自定义错误页面。问题!

Apache 错误日志显示(在后一种情况下):

[2015 年 11 月 21 日星期六 14:03:07] [错误] [client xx.xxx.xx.xx] FastCGI: server "/fcgi-bin-php5-fpm" stderr: Primary script unknown

使用 PHP-FPM 时如何为不存在的 PHP 文件配置自定义 404 页面?

【问题讨论】:

    标签: php apache mod-fastcgi


    【解决方案1】:

    在您的全局服务器配置或单个虚拟主机中设置“ProxyErrorOverride on”,请参阅http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxyerroroverride

    【讨论】:

    • 不幸的是,此选项在 2.3.10 及更高版本中可用,并且相关系统运行版本 2.2。
    • 适用于 Apache 2.4
    【解决方案2】:

    当显示“找不到文件”而不是不存在的 .php 文件的自定义错误页面时(并且所有其他不存在的文件都会获得正确的自定义错误页面)...

    Centos 8,PHP 7.2.11 文件:/etc/httpd/conf.d/php.conf

    在 SetHandler 之后添加 'ProxyErrorOverride On'

    <FilesMatch \.(php|phar)$>
        SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
        ProxyErrorOverride On
    </FilesMatch>
    

    不确定是否需要,但我确实这样做了:

        systemctl restart httpd
    

    【讨论】:

      猜你喜欢
      • 2018-05-03
      • 2015-03-14
      • 2020-02-08
      • 2014-05-26
      • 2022-01-15
      • 1970-01-01
      • 2014-12-09
      • 1970-01-01
      • 2020-06-09
      相关资源
      最近更新 更多