【问题标题】:Moodle clears cache when upgrading database, won't let database upgradeMoodle在升级数据库时清除缓存,不会让数据库升级
【发布时间】:2015-09-28 07:10:48
【问题描述】:

以管理员身份登录会直接进入不可跳过的插件屏幕,这迫使我升级 Moodle 的数据库。单击升级数据库后,屏幕立即变为空白,url 以index.php?confirmplugincheck=1&cache=0 结尾

然后,如果我刷新页面,我会收到错误消息。 Moodle 无法访问moodledata/cache 的内容,因为升级删除了它们。如果我将备份中的内容复制到 moodledata/cache,该站点可以正常工作,但会再次将我带到不可跳过的插件屏幕。

错误:

警告: require_once(C:\Moodle\server\moodledata/cache/locallib.php):打开流失败:第 34 行的 C:\Moodle\server\moodledata\cache\disabledlib.php 中没有这样的文件或目录

致命错误:require_once(): 无法打开所需的 'C:\Moodle\server\moodledata/cache/locallib.php' (include_path='C:\Moodle\server\moodledata/lib/zend;C:\Moodle \server\moodledata/lib/pear;.;C:\Moodle\server\php\PEAR') 在 C:\Moodle\server\moodledata\cache\disabledlib.php 第 34 行

Moodle 版本:2.9+

【问题讨论】:

    标签: php caching moodle


    【解决方案1】:

    能否尝试在升级前从命令行清除缓存,看看是否可行。

    php admin/cli/purge_caches.php
    

    https://docs.moodle.org/29/en/Administration_via_command_line#Purge_caches

    如果不是,那么在 config.php 中 datarootdirroot 的值是什么?

    还有,您是从哪个版本的 Moodle 升级的?

    更新:也将这些行插入到 config.php 中

    error_reporting(E_ALL | E_STRICT);
    ini_set('display_errors', 0);
    
    $CFG->debug = E_ALL | E_STRICT;
    $CFG->debugdisplay = true;
    

    【讨论】:

    • $CFG->dataroot = 'C:\\Moodle\\server\\moodledata';没有根目录。从 2.9+ 版本升级。
    • locallib.php 不会在 moodledata 目录中,所以那里出了点问题。尝试添加$CFG->dirroot = 和moodle 站点的根文件夹。还有你是从哪个版本升级的?
    • 上面还要加上调试行
    • 升级2.9+版本
    • 脚本运行良好,但通过清除缓存我得到相同的“无法从缓存文件夹中找到文件”错误。
    【解决方案2】:

    遇到同样的问题,已解决

    $CFG->dataroot  = '/home/moodledata';
    $CFG->dirroot  = '/home';
    

    【讨论】:

      【解决方案3】:

      就我而言, $CFG->数据根 指着 $CFG->wwwroot 入口文件夹也是如此。所以我然后在我的 moodle 条目文件夹之外创建了 moodledata 文件夹,然后指向我的 $CFG->数据根 给它。升级顺利。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-28
        相关资源
        最近更新 更多