xiunoBBS出现 Server Response Empty! 错误捉虫记

很有没有写文章了。感觉也没啥好写的。博客偶尔出故障上来看看折腾下,故障拖久了bai度居然还把我删了。 最近在布置论坛的问题。在服务器上布置的很好,一点问题都没有。xiuno4就跑起来了。 但是这几天我想在自己的Manjaro上(打肿脸充Arch(其实这是祸根))部署xiunobbs,在设置数据库时却遇到了Server Response Empty! 诶这就很讨厌……但是貌似不止我一个人这么倒霉,去搜了一下。别人建议换服务商,,诶大兄弟我自己开发环境您要我换电脑?好吧,开始干活。 等不及的,请直接去最后看解决方案。

正文开始

机器也没有xdebug。手动进去,进install/index.php打断点。发现 install_sql_file() 这里断了。跟进去,这个函数是拆分install.sql导入数据库建立表结构的。

手打断点。

到了这句。

很明显,只有db_exec返回bool(false)才会触发。于是我试了一下子,诶?返回的int(0)然而不能触发。折腾了半天,突然想起这是一个循环。

跟进db_exec函数,看看它怎么写的:

哦?继续打断点,当即对$n进行输出。

最后一个……我,看见你了。鬼头鬼脑的东西。

这里的false触发了message函数,然而message函数在参数为-1情况下会exit。然而并没有$errno, $errstr。所以返回empty。

这很可能是出错但是没有返回任何错误信息!!

带着返回值和$sql一起输出看看,,很容易就发现了这句:

这里反回错误。明显,建立表bbs_forum失败了。赶快去mysql看看。

果然这样!没有bbs_forum!!

于是拖进mysql执行试试。

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘rank tinyint(3) unsigned NOT NULL default ‘0’,

threads mediumint(8) unsigned N’ at line 5

发现错误。rank关键字污染。

原因找到了:

因为我用的Arch,Arch特性是软件都是最新版本。结果我安装的就是:

Server version: 8.0.12 MySQL Community Server (GPL)

这个版本和前面的版本有很多变化。

估计是rank成了关键字

那么解决方法也简单,用区别就行,把rank改成rank.

所以解决方案:

进install/install.sql,修改bbs_forum表结构如下:

其实就是rank加了两个点…

 

仅有1条评论 发表评论

  1. 翰主主 /

    hi,可以介绍一下你的linux 系统是哪一个版本吗?我超级喜欢的。希望你能分享,我的QQ81876823.如果你看到可以联系一下哈。

发表评论

*

Protected with IP Blacklist CloudIP Blacklist Cloud