XAMPP下安装Moodle时,解决MYSQL升级以及页面重定向问题
2017-05-06 13:14
746 查看
这次xampp下安装moodle整整折磨了我差不多一天,直到凌晨3点钟才搞定。由于mysql版本的问题,中途才试图使用wampserver集成环境解决,但是由于本人电脑的问题,安装不成功,最后又回头使用xampp。
但是,本人感觉wamp可能解决起来比较方便,因为他的mysql版本号满足moodle的要求。前提是你可以安装成功。
moodle安装过程:
1.在安装之前首先在xampp的mysql命令行执行下面的数据库代码手动创建数据库(这样可以避免在检测安装环境的阶段出现一些错误)
CREATE DATABASE moodle DEFAULT CHARACTER SET UTF8
COLLATE utf8_unicode_ci;
2.刚开始几步基本没有问题,不会存在问题,填写该填写的东西
3.当我们到达安装环境的检测页面的可能会报错,我遇到的主要是php扩展库和mysql版本低的问题
(1)扩展库的问题,我们可以根据提示在php.ini中查找对应的扩展,并且开启他
注意:一种比较特殊的一个扩展---opcache
大家可以根据我的代码开启和补充:
(2)xampp的mysql版本低的问题(我们需要升级mysql)
1.首先我们在mysql官网下载一个高于moodle要求的mysql版本
2.下载下来,我们进行安装,大家都会
3.安装完成后,找到mysql安装目录
4.然后找到xampp的mysql安装目录
5.我们接下来进行升级操作,首先将xampp的mysql目录重新命名为mysql-old,并且新建一个mysql文件夹
6.然后将你刚才安装的高版本mysql目录中的bin lib share 三个文件夹拷贝到新建的mysql文件中去
7,然后再将mysql-old中的data文件夹也拷贝到mysql中去,并且将mysql-old/bin/下的my.ini也拷贝到mysql中对应
的文件夹bin的目录下
8.这样mysql升级就完成了。环境检查就成功了
9,然后continue下一步。可能会出现空白页面,这时候不要着急,等个十几或者二十分钟就会有数据表创建的信息
出来。(当出现空白的页面,观察上面网路圈没有转动的时候,刷新一下 就可以了。然后继续等)
10,接下来出现一些信息设置页面,正常设置就可以了、
******************************************出现重定向的问题**********************************************************
解决办法:
1产生问题的真正的原因
输入各类子栏目的链接如login,user,course时发现并不是所有的页面都不能显示。但是当要进入注册、登录等关键性链接页面时,都会跳转到admim目录的index.php页面。所以,这个页面是出现问题的主要页面。 通过分析发现,在Moddle目录下的index.php文件中有如下条件判断语句:if
($hassiteconfig && moodle_needs_upgrading())。意思是当hassiteconfig字段有效并且检测到Moodle有更新时就自动跳转到admin目录的index.php文件进行执行。如图4所示。
新跳转的index.php文件里要判断跳转过程中的cache缓存的值和sesskey表单值是否有效。如果全部的验证都确定为真时,设置cache的属性值为0,并且opcache缓存重启。否则设置cache的属性值为1。
后续的条件判断语句检测到cache的属性值为1时,就会执行redirect(new moodle_url('/admin/index.php', array('cache' => 1)))语句。但是,页面并没有检查出cache的属性值,因此会重复的执行上诉语句,在两个index.php页面中进行死循环式的跳转。如图5所示。
2解决方法
当尝试对index.php页面的条件跳转指令进行修改,能够解决上述问题。但是Moodle的条件跳转指令里包含着许多检测方式,修改后可能会对平台产生影响。所以,推荐一种较为实用的方式,admin目录下index.php文件里有如下代码段:
if ( (isset($_GET['cache']) and $_GET['cache'] === '0')
......
} else {$cache = 1;}
这段代码为检测Moodle是否有缓存信息和关键数据保护检测。会根据不同的情况给cache字段赋值。
(1)将这段代码注释或删除掉,使得moodle平台在第一次安装后进入该页面不去考虑cache值的设置,而直接进入平台的主页面。
(2)在目录栏内输入“http://localhost/moodle/index.php?cache=1”。然后对平台进行操作时,数据库和缓存中会有新生成数据的写入。 (我这里直接输入http://localhost根地址,因为按照他的也是重定向页面)
(3)此时再在index.php文件中恢复上述注释或删除的代码段。再次打开Moodle平台时,检测机制会顺利的通过,而不会出现因检测语句冗余而产生的页面重定向循环问题。如图6所示。
3
结论
Moodle的缓存检测和关键数据检测的方法是完善和优秀的。但是在首次安装后进入首页时,这些检测的判断语句过于复杂和冗余。可能会导致某些终端在安装时出现页面重定向循环问题。对于一般的用户,我们只能在不影响整个系统正常运行的前提下,适当的屏蔽掉一些判断代码,以使得安装能继续运行通过。该方法希望能为Moodle平台的使用者提供参考和借鉴。
该方法:引自 http://www.92to.com/xuexi/2016/12-21/14802572.html
但是,本人感觉wamp可能解决起来比较方便,因为他的mysql版本号满足moodle的要求。前提是你可以安装成功。
moodle安装过程:
1.在安装之前首先在xampp的mysql命令行执行下面的数据库代码手动创建数据库(这样可以避免在检测安装环境的阶段出现一些错误)
CREATE DATABASE moodle DEFAULT CHARACTER SET UTF8
COLLATE utf8_unicode_ci;
2.刚开始几步基本没有问题,不会存在问题,填写该填写的东西
3.当我们到达安装环境的检测页面的可能会报错,我遇到的主要是php扩展库和mysql版本低的问题
(1)扩展库的问题,我们可以根据提示在php.ini中查找对应的扩展,并且开启他
注意:一种比较特殊的一个扩展---opcache
大家可以根据我的代码开启和补充:
[opcache] zend_extension=php_opcache.dll --------额外添加 ; Determines if Zend OPCache is enabled opcache.enable=1 ---------开启 ; Determines if Zend OPCache is enabled for the CLI version of PHP opcache.enable_cli=1 ---------开启 ; The OPcache shared memory storage size. opcache.memory_consumption=528 ---------开启 ; The amount of memory for interned strings in Mbytes. opcache.interned_strings_buffer=8 ---------开启 ; The maximum number of keys (scripts) in the OPcache hash table. ; Only numbers between 200 and 100000 are allowed. opcache.max_accelerated_files=10000 ---------开启 ; The maximum percentage of "wasted" memory until a restart is scheduled. ;opcache.max_wasted_percentage=5 ; When this directive is enabled, the OPcache appends the current working ; directory to the script key, thus eliminating possible collisions between ; files with the same name (basename). Disabling the directive improves ; performance, but may break existing applications. ;opcache.use_cwd=1 ; When disabled, you must reset the OPcache manually or restart the ; webserver for changes to the filesystem to take effect. ;opcache.validate_timestamps=1 ; How often (in seconds) to check file timestamps for changes to the shared ; memory storage allocation. ("1" means validate once per second, but only ; once per request. "0" means always validate) opcache.revalidate_freq=1 ---------开启这样就可以解决扩展之类的环境检查问题
(2)xampp的mysql版本低的问题(我们需要升级mysql)
1.首先我们在mysql官网下载一个高于moodle要求的mysql版本
2.下载下来,我们进行安装,大家都会
3.安装完成后,找到mysql安装目录
4.然后找到xampp的mysql安装目录
5.我们接下来进行升级操作,首先将xampp的mysql目录重新命名为mysql-old,并且新建一个mysql文件夹
6.然后将你刚才安装的高版本mysql目录中的bin lib share 三个文件夹拷贝到新建的mysql文件中去
7,然后再将mysql-old中的data文件夹也拷贝到mysql中去,并且将mysql-old/bin/下的my.ini也拷贝到mysql中对应
的文件夹bin的目录下
8.这样mysql升级就完成了。环境检查就成功了
9,然后continue下一步。可能会出现空白页面,这时候不要着急,等个十几或者二十分钟就会有数据表创建的信息
出来。(当出现空白的页面,观察上面网路圈没有转动的时候,刷新一下 就可以了。然后继续等)
10,接下来出现一些信息设置页面,正常设置就可以了、
******************************************出现重定向的问题**********************************************************
解决办法:
1产生问题的真正的原因
输入各类子栏目的链接如login,user,course时发现并不是所有的页面都不能显示。但是当要进入注册、登录等关键性链接页面时,都会跳转到admim目录的index.php页面。所以,这个页面是出现问题的主要页面。 通过分析发现,在Moddle目录下的index.php文件中有如下条件判断语句:if
($hassiteconfig && moodle_needs_upgrading())。意思是当hassiteconfig字段有效并且检测到Moodle有更新时就自动跳转到admin目录的index.php文件进行执行。如图4所示。
新跳转的index.php文件里要判断跳转过程中的cache缓存的值和sesskey表单值是否有效。如果全部的验证都确定为真时,设置cache的属性值为0,并且opcache缓存重启。否则设置cache的属性值为1。
后续的条件判断语句检测到cache的属性值为1时,就会执行redirect(new moodle_url('/admin/index.php', array('cache' => 1)))语句。但是,页面并没有检查出cache的属性值,因此会重复的执行上诉语句,在两个index.php页面中进行死循环式的跳转。如图5所示。
2解决方法
当尝试对index.php页面的条件跳转指令进行修改,能够解决上述问题。但是Moodle的条件跳转指令里包含着许多检测方式,修改后可能会对平台产生影响。所以,推荐一种较为实用的方式,admin目录下index.php文件里有如下代码段:
if ( (isset($_GET['cache']) and $_GET['cache'] === '0')
......
} else {$cache = 1;}
这段代码为检测Moodle是否有缓存信息和关键数据保护检测。会根据不同的情况给cache字段赋值。
(1)将这段代码注释或删除掉,使得moodle平台在第一次安装后进入该页面不去考虑cache值的设置,而直接进入平台的主页面。
(2)在目录栏内输入“http://localhost/moodle/index.php?cache=1”。然后对平台进行操作时,数据库和缓存中会有新生成数据的写入。 (我这里直接输入http://localhost根地址,因为按照他的也是重定向页面)
(3)此时再在index.php文件中恢复上述注释或删除的代码段。再次打开Moodle平台时,检测机制会顺利的通过,而不会出现因检测语句冗余而产生的页面重定向循环问题。如图6所示。
3
结论
Moodle的缓存检测和关键数据检测的方法是完善和优秀的。但是在首次安装后进入首页时,这些检测的判断语句过于复杂和冗余。可能会导致某些终端在安装时出现页面重定向循环问题。对于一般的用户,我们只能在不影响整个系统正常运行的前提下,适当的屏蔽掉一些判断代码,以使得安装能继续运行通过。该方法希望能为Moodle平台的使用者提供参考和借鉴。
该方法:引自 http://www.92to.com/xuexi/2016/12-21/14802572.html
相关文章推荐
- mac升级yosemite之后xampp中mysql不能启动的问题解决
- xampp在CentOS6.5下安装以及碰到的问题和解决
- 安装widows mysql 免安装版(zip) 步骤详解 以及遇到问题解决 以及忘记密码的修改方法
- 安装widows mysql 免安装版(zip) 步骤详解 以及遇到问题解决 以及忘记密码的修改方法
- MySQL5.7.11免安装版的安装和配置以及解决MYSQL服务无法启动问题
- 安装widows mysql 免安装版(zip) 步骤详解 以及遇到问题解决 以及忘记密码的修改方法
- 2015-1-22(mac升级yosemite之后xampp中mysql不能启动的问题解决)
- 安装widows mysql 免安装版(zip) 步骤详解 以及遇到问题解决 以及忘记密码的修改方法
- mysql5.1升级5.6步骤以及出现问题解决方法
- MySql5.7.12免安装版配置以及服务无法启动问题解决方法
- win7 x64下安装mysql-workbench 5.2以及解决无法运行问题
- xampp下mysql设置密码以及解决中文乱码问题
- window下mysql安装以及问题解决方法
- Mac上php和mysql的安装以及一些配置问题解决
- 2015-1-22(mac升级yosemite之后xampp中mysql不能启动的问题解决)
- 关于mysql-5.7.9-winx64以及其他系列安装的问题解决
- Linux上安装mysql 5.6.27,以及常见问题解决
- win7 x64下安装mysql-workbench 5.2以及解决无法运行问题
- 安装widows mysql 免安装版(zip) 步骤详解 以及遇到问题解决 以及忘记密码的修改方法
- 解决Linux环境下安装xampp之后外部无法连接MySQL的问题