bluecms安装错误一记
阅读原文时间:2023年07月09日阅读:1

菜鸡兴致勃勃下载了bluecms1.6准备大干一番

环境 phpstudy

mysql 5.7.26

apache 2.4.39

php 7.3.4

结果安装第四步发现个这个问题

开始还以为自己这个PHP版本太高了

再降低到5.4.45

这是约德尔人的一小步~

这个大家就很难受,好心情都被影响了,百度一番,发现了问题:

我等判断问题应该是出在了第五步

前面的include 和 update 不明白也无妨,因为卡不到那里,接着就是 if (is_writable),意思是 is_writable() 函数判断指定的文件是否可写。

可写的话就是打开写入一个 install.lock ,这个文件是防止重复安装的。

如果不可写的话就跳入第五步。找到了问题激动的就去看看data文件里是没有 install.lock

说明他没有写,那问题就出在哪里呢?

百度的文章介绍:

经过测试后发现在该cms的所有common.inc.php文件中,错误的应用了require:

暂时咱们还不懂甚意思,我就先将作者的说法记录下来:

为什么使用require会出错的呢?require和include的区别:include运行时碰到错误会继续执行代码,require不会继续执行代码;include()是有条件包含函数,而require()则是无条件包含函数;include有返回值,而require没有。加_once的区别在于如果该文件中已经被包含过,则不会再次包含。

由于在index.php文件中分别在开头调用了/install/include/common.inc.php和在step5中调用了/include/common.inc.php,两个调用文件都包含了Smarty类的文件,这里重复调用产生了错误,也就不会生成install.lock文件,造成重安装漏洞,修复只需将require改为require_once就会正常的生成install.lock文件。

**链接:https://www.jianshu.com/p/1ab0311887a0**

随后我就没看到 require,就直接把这个once注释了

不出其然

改回来,保存再刷新

好了以后改一下根目录就算是完事了。

虽然小头还是懵懵的,但是不影响自己的成功呢。

后面琢磨一下如何修复,欢迎大佬指教