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

Moodle计划任务无法运行问题求助

解决Moodle 4.1.4 cron任务报错:IntlTimeZone类未找到及数据库致命错误

问题核心

报错的根源是CLI版本的PHP未加载intl扩展(网页端PHP开启intl不代表cron使用的CLI PHP也开启了),后续数据库错误是该异常触发的连锁反应(任务锁释放时数据库连接未正常初始化)。

调试与解决步骤

  • 确认cron使用的PHP环境状态

    1. 创建phpinfo.php文件,内容为:
      <?php phpinfo(); ?>
      
    2. 通过SSH登录主机,执行命令:php /home/cbisacok/public_html/phpinfo.php,查看输出中intl扩展是否存在。
    3. 如果CLI PHP未加载intl,需要在Namecheap的cron任务设置中,指定PHP8.0的完整路径(比如/usr/local/php80/bin/php,具体路径可咨询主机商),确保使用的PHP版本已启用intl。
  • 验证Moodle环境的intl状态

    1. 登录Moodle后台,进入站点管理 > 服务器 > PHP信息,确认网页端PHP的intl扩展已加载。
    2. 临时在config.php顶部添加调试代码,触发cron后查看日志:
      error_log("PHP Version: " . phpversion());
      error_log("Intl Loaded: " . (extension_loaded('intl') ? 'Yes' : 'No'));
      
      查看cPanel的错误日志,确认CLI环境下intl是否加载。
  • 临时解除任务锁(可选)
    如果因错误导致任务锁卡住,可手动清理数据库:

    1. 登录数据库管理工具(如phpMyAdmin),找到mdl_task_lock表(前缀可能不同,以你的Moodle配置为准)。
    2. 备份表后,清空表内所有记录,解除被卡住的任务锁。
  • 联系主机商支持
    若共享主机的CLI PHP扩展无法自行修改,直接联系Namecheap技术支持,要求为PHP8.0 CLI版本启用intl扩展。

内容的提问来源于stack exchange,提问作者Marc Hypolite

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:51:11