本博客前段时间从PHP 5.x升级到了PHP 7.1。毕竟花了几十块购买的主机,主机商确实会对主机上的软件进行升级。经检测,PHP 7.1的真实版本是7.1.7。之前安装程序时,我从来没有关心过PHP版本的问题。主机后台设置中,默认的PHP版本是native。

前面文章中我提到了CommentToMail这个插件。插件在后台显示的菜单错乱。我各种折腾,修改代码,重装插件都无法解决。后来因为Typecho的beta版本提到其要求的最低PHP版本升为5.4,我关心起PHP版本。折腾过程简略如下:

首先,我将PHP版本从native调到最高,也就是7.1,然后打开博客发现500 Datebase Error。上网搜索资料,发现PHP 7以上版本不支持MySQL,而是支持MySQLi。我询问主机商,主机后台是否支持MySQLi,主机商说支持。然而我并未找到相关选项。我于是说明了我要用PHP 7.1,主机商说目前PHP 7.1还不支持。

然后,我将PHP调整为5.6。这时博客可以正常访问。就这样一直用着,我发现,CommentToMail插件的后台显示正常了。

接下来,针对上述出现的错误,我继续搜索关于PHP 7与MySQL的消息,无意间知道了PDO这个东西。我打开主机控制面板,找到了PHP 7.1的选项,里面列出了几十个支持的项目,我看不懂,但里面有个pdo_mysql和pdo_mysqli,都是默认勾选的。于是,我便重新安装博客。在7.1的版本中,安装时没有“使用MySQL”的选项,只有“使用pdo_MySQL”和“使用pdo-SQLite”的选项。我就按照“使用pdo_MySQL”选项,连接了已有的MySQL数据库,成功。博客并未出现异常。

至于主机商为何还使用相对低版本的MySQL,并未升级到最新版本,根据网上的新闻,我做出猜测。我猜测的原因是为了稳定和兼容。MySQL新版本跨度大,对于原来的数据库,怕是兼容性不好,所以我觉得这是他们未升级MySQL到新版本的原因。但是这仅仅是我的猜测。

2019年9月20日更新:直接在config.inc.pnp里面将“Mysql”修改为“Pdo_Mysql”即可,无需重新安装。