• 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加了两个点…

     

  • Raspberry Pi B+ web物联网遥控灯初试折腾笔记

    暑假一段时间也是……闲的蛋疼。就拿出Raspberry准备折腾一番,结果被吐槽“两百多你不如买个二手手机而且性能不会比这个差”“控制灯?你用这个不如用Arduino”

    哦,好吧。其实树莓派有GPIO,这个是一个和Arduino类似的东西。但是却有强于Arduino的性能。我们可以研究这个,并且结合起来,凸显它的优势。本文还是主要说明树莓派的web和简单的物联网控制。

    [Read More…]