首页 > 解决方案 > 执行 PHP 脚本来处理 Apache2 的 ErrorDocument 500

问题描述

我正在使用 PHP-FPM 来托管一个繁忙的网站。我通过 PHP-FPM 代理提供所有 php 和 html 页面。对于 500 个错误,我想通过托管在同一服务器上的另一个 PHP 脚本向所有利益相关者发送电子邮件,其中包含 URL、其查询字符串和 cookie。

然而ErrorDocument 500 /report/webmaster/dp-server-error.php,在虚拟主机内部添加会导致重定向循环到错误脚本,即 dp-server-error.php。作为解决方法,我在虚拟主机文件中做了类似的事情,它可以工作。

ProxyPassMatch ^/(.*\.(php|html)(/.*)?)$ unix:/run/php/php7.0-fpm.sock|fcgi://localhost/var/www/example.com/
ProxyErrorOverride On
ErrorDocument 500 https://www.example.com/report/webmaster/dp-server-error.php?page=%{REQUEST_URI}?%{QUERY_STRING}&cookies=%{HTTP:Cookie}

但是,解决方法存在一些问题。cookie 可能超过 URL 中的有效字符数。该 URL 可能会被其中一个爬虫注意到,并且爬取该 URL 可能会发送错误的电子邮件警报。我希望 ErrorDocument 在不使用完整域名的情况下正常工作。我想知道如何避免重定向循环。也使用

ProxyPass /report/webmaster/dp-server-error.php !

避免重定向循环是不可接受的,因为在发送电子邮件进行进一步分析之前,我无法使用现有的 PHP 框架对错误进行详细分析。

标签: phpserverapache2fpm

解决方案


推荐阅读