具体表现

在自定义面板点保存,页面直接 500,其他页面正常。

先判断哪一层出错

保存动作要序列化大量选项,超过 PHP 默认内存上限被中断。判断时先分清是 WordPress 内存不足 本身的配置问题,还是上游调用、运行环境带进来的差异;前者改配置就能收口,后者要沿着请求链路一层层往上找,处理顺序不能颠倒。先在出问题的机器上复现一次,把报错原文和发生时间记下来,再对着日志定位。

操作步骤

  1. 先看错误日志确认是内存耗尽
  2. 提高 WordPress 与 PHP 的内存上限
  3. 减少单次保存的数据量

对应的命令或配置片段如下,可直接复制:

define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
# php.ini
memory_limit = 256M

测试环境复现不了时,先对比两边的版本号和配置文件,差异往往就在被忽略的那几行里。如果同一现象隔一段时间又出现,多半是某个定时任务或重启流程把配置覆盖回去了,顺手查一遍启动脚本。

收尾检查

主题设置能保存成功,日志无内存耗尽记录。

作者 9823189