之前解决过一次,但没有记录下来,后来测试其他特性,又忘记了,在此做一个记录。

要记得,安装 typecho 1.1 前一定要先创建好相关数据库

默认的数据库名 typecho,要确认本地已存在指定名称的数据库,才可以连接,并写入相关表。

如果在已经创建好了数据库,再次提交仍然报错『对不起,无法连接数据库,请先检查数据库配置再继续进行安装』,需要检查两点:

  • 已创建的数据名称是否与表单中填写的数据库名称一致
  • 使用表单中的数据库账号和密码是否正确,是否能够登录目标数据库服务器

数据库适配器不需要特意修改,因为代码里已经自动判断了本地环境是否支持。比如 PHP7 不支持 Mysql 原生函数适配器,则选项中会自动去除,默认为 Pdo 驱动 Mysql 适配器。当然如果有 mysqli 方式可以选择,也可以使用 mysqli。

如果环境中未安装 MySQL,也可以选择 sqlite 方式,本地文件存储方式,不需要数据库服务器。

对于网上说的 typecho 对 PHP7 不支持、不兼容的问题,在安装时候是不存在的。只有在过去安装时数据库适配器选择 MySQL 并且环境中 PHP 版本从 5.x 升级到 7.x 之后,再次访问页面才会报错。此时只需要修改 config.inc.php 定义数据库参数部分:

# 将 $db = new Typecho_Db('Mysql', 'typecho_'); 改为
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');

那么是不是 typecho 对 PHP 版本所有版本都支持呢?也不是。

拿最新版本 typecho 1.1 (2017)来说,因为源码中使用了中括号定义数组的用法,这种用法在 PHP 5.4 之前是不支持的,所以如果环境中 PHP 版本 <= 5.3,安装时会报错:

Parse error: syntax error, unexpected '[', expecting ')' in path\to\install.php on line 242