春节假期没有出游,基本宅在家。抽空重装了 VPS ,当前已切换使用 aaPanel 面板(宝塔的国际版)。
我主要使用 BackWPup 插件作为 WordPress 网站备份插件。相对另一款知名的网站备份插件 UpdraftPlus,前者的免费版可自定义设置备份时段,且支持备份至第三方网盘 Dropbox 的子目录,支持自定义文件夹名称。
近日,BackWPup 插件在我设定的时段,无法按照设定的时间自动备份,甚至手工备份也无效,点击备份按钮毫无反应。尝试检查 VPS 磁盘剩余容量、更新插件版本、调整目录权限,调大 PHP 设置(max_execution_time、memory_limit、post_max_size、upload_max_filesize)、启用函数(exec、shell_exec、proc_open、popen),安装 PHP 扩展(zip、curl、fileinfo、mysqli),依旧无效。
最后准备放弃,拟改用 UpdraftPlus 插件之前,我导出 BackWPup 的运行日志,竟发现反复出现以下提示,并且任务不断每5分钟重启一次——
PHP Fatal error: Uncaught Error: Call to undefined function putenv()
终于找到故障的根本原因了,是 PHP 禁用了“putenv()”。putenv() 是 PHP 的系统环境变量函数,在很多 Linux 建站面板里,默认安全配置里会禁用该函数,而 BackWPup 插件在执行数据库备份打包/进程控制时需要调用 putenv(),因此会反复报错。
如何在 aaPanel 面板/宝塔面版开启 putenv 函数
aaPanel 面板/宝塔面版 → 官方应用 → PHP → 设置 → Disabled functions(禁用函数),您可以看到多个已被禁用的函数,找到 putenv ,点击 Del(删除),确认删除,其它的函数不要删除。最后,记得在 Service(服务) → Restart(重启),让 PHP 服务重启生效。


文章评论