本博客前段时间从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到新版本的原因。但是这仅仅是我的猜测。

另外再说一个问题。我使用了Short Links插件,所有的外链都会使用your_blog_path/go/key的形式打开。然而,对于评论时没有留下网址的情况,评论者的主页信息就会显示为your_blog_path/go。这个链接是可以打开的,由于不存在该文件,因此会跳到404界面。今早我想个办法解决这个问题。在博客根目录新建/go文件夹,在/go文件夹下新建index.php文件,做动态跳转。查了一些资料,做了多次测试,有一种方法有效。根据枫树林的博客提供的方法,在index.php写入如下代码:

<script> location="https://linhai1990.com";</script>

这样打开your_blog_path/go则不会跳转到404了,而是直接跳到了博客主页。打开your_blog_path/go/key则不受影响。