You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian OpenLiteSpeed下WordPress php错误日志不生成及500报错排查

Debian+OpenLiteSpeed运行WordPress发布/更新页面500错误排查与修复

问题现象

Debian系统搭配OpenLiteSpeed运行WordPress站点时,发布、更新页面(对应处理脚本post.php)返回Error 500错误。

前期排查过程

  • 执行php --ini定位php.ini路径,发现配置项display_logs为Off
  • 参照配置说明修改PHP参数:添加error_log = /var/log/php_error_log配置,设置error_reporting = E_ALL,将display_errors改为On
  • 保存配置验证生效后,复现post.php的500错误,指定路径未生成php_error_log文件,无法确认是否需要手动创建日志、是否遗漏配置步骤
  • 补充排查1:在网站根目录创建内容为<?php phpinfo(); ?>的1.php文件,用于验证Web服务加载的php.ini是否正确,但访问该页面显示空白
  • 补充排查2:捕获到完整报错信息:
[STDERR] PHP Fatal error:  Uncaught Error: Call to undefined method Normalizer::isNormalized() in /var/www/html/wp-content/plugins/cloudflare/vendor/symfony/polyfill-intl-idn/Idn.php:338
Stack trace:
#0 /var/www/html/wp-content/plugins/cloudflare/vendor/symfony/polyfill-intl-idn/Idn.php(163): Symfony\Polyfill\Intl\Idn\Idn::process()
#1 /var/www/html/wp-content/plugins/cloudflare/vendor/symfony/polyfill-intl-idn/bootstrap.php(140): Symfony\Polyfill\Intl\Idn\Idn::idn_to_ascii()
#2 /var/www/html/wp-content/plugins/cloudflare/src/WordPress/WordPressClientAPI.php(18): idn_to_ascii()
#3 /var/www/html/wp-content/plugins/cloudflare/src/WordPress/Hooks.php(148): CF\WordPress\WordPressClientAPI->getZoneTag()
#4 /var/www/html/wp-content/plugins/cloudflare/src/WordPress/Hooks.php(442): CF\WordPress\Hooks->purgeCacheByRelevantURLs()
#5 /var/www/html/wp-includes/class-wp-hook.php(307): CF\WordPress\Hooks->purgeCacheOnPostStatusChange()
#6 /var/www/html/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters()
#7 /var/www/html/wp-includes/plugin.p in /var/www/html/wp-content/plugins/cloudflare/vendor/symfony/polyfill-intl-idn/Idn.php on line 338

报错触发逻辑:Cloudflare插件在文章状态变更时触发缓存清理逻辑,调用未定义方法抛出致命错误。

修复步骤

1. 解决日志不生成、phpinfo页面空白问题

OpenLiteSpeed使用独立的lsphp进程处理Web请求,和系统CLI模式下的PHP是两套独立程序,之前用php --ini查到的是CLI模式的配置文件,不是Web服务实际加载的配置,所以修改后不生效。

  • 手动创建日志文件并配置正确权限:
touch /var/log/php_error_log
chown www-data:www-data /var/log/php_error_log
chmod 644 /var/log/php_error_log
  • 重启服务生效配置:
systemctl restart lsws
killall -9 lsphp

重启后再访问1.php即可正常显示phpinfo信息,可在页面中确认Web服务实际加载的php.ini路径、已安装PHP扩展列表,后续修改配置要改对应路径下的文件。

2. 修复核心500报错

报错中Normalizer::isNormalized()方法属于PHP的intl扩展,当前环境未安装该扩展导致Cloudflare插件调用失败:

  • 安装对应PHP版本的intl扩展,先在OpenLiteSpeed WebAdmin控制台确认当前站点使用的PHP版本,以PHP8.1为例:
apt update
apt install php8.1-intl
  • 验证扩展是否安装成功,替换命令中的lsphp路径为实际版本路径:
/usr/local/lsws/lsphp81/bin/php -m | grep intl

命令返回intl即为安装成功。

  • 再次重启OpenLiteSpeed和lsphp进程:
systemctl restart lsws
killall -9 lsphp
  • 验证功能:可先临时禁用Cloudflare插件,测试发布、更新页面是否恢复正常,再重新启用插件,确认文章更新时的缓存清理逻辑可正常执行,不再抛出500错误。

内容的提问来源于stack exchange,提问作者Gary Oak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 18:24:39