gpt4 book ai didi

apache - 将 PHP 设置为始终在错误 500 时重定向

转载 作者:行者123 更新时间:2023-12-04 15:09:14 25 4
gpt4 key购买 nike

在我的网站上,我希望它将所有错误 500 错误重定向到/500.html。截至目前,某些页面显示为 GET
http://localhost/ [HTTP/1.0 500 Internal Server Error 1ms]
在开发者工具中。我尝试通过编辑 /etc/apache2/sites-enabled/000-default.conf 来实现它.该文件如下所示:

<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
ErrorDocument 500 /500.html
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

我也试过编辑 apache2.conf.htaccess但我得到了同样的结果。

P.S:我每次都尝试重新启动Apache!

最佳答案

如果您尝试使用 mod_php 在 apache 中拦截来自 PHP 的 500 个错误与 SetHandler (一种很常见的方式),那么答案就是你不能。据我所知,它不是受支持的功能。

但是有一些方法,例如通过它的 FastCGI 接口(interface) ( PHP-FPM ) 和 Apache proxy 使用 PHP。模块来实现你所需要的。

首先,您可能需要确保 mod_proxyproxy_fcgi_module安装在您的服务器上并在 Apache 配置中启用,如下所示:

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

还要确保 PHP-FPM 已安装并作为服务运行,它使用的默认端口是 9000。

然后用以下内容替换您的 apache PHP 配置(可能在/etc/httpd/conf.d/php.conf 中)。
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1
DirectoryIndex /index.php index.php

这意味着您现在正在使用 Apache 代理模块向 PHP 发送流量。可以指示 Apache 拦截来自代理模块的错误响应,并在您的 VirtualHost 中使用自定义错误处理程序。部分。
ProxyErrorOverride On
ErrorDocument 500 /500.html

关于apache - 将 PHP 设置为始终在错误 500 时重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36429019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com