TypeCodes

解决阿里云无法安装typecho 1.0,页面全变空白

在Windows中安装 typecho 比较简单,只要先创建了数据库,然后安装过程和wordpress也类似。但是之前博主在自己的阿里云CentOS 6.5系统中安装 typecho,却出现了问题。

1 问题描述

先用 mysql 的一个用户创建了一个数据库,然后进入typecho的安装页面,填写好相关信息。typecho 会自动检测输入的数据库信息是否正确。如果正确,那么就会出现下图的页面。因为博客的根目录权限是不可写的,所以typecho程序无法自动生成配置文件 config.inc.php 。于是把里面的代码复制出来,并在根目录下新建文件 config.inc.php ,然后把复制的代码粘贴进去。结果在点击“创建完毕,继续安装”后,安装页面就跳转到空白页面了。

点击“创建完毕,继续安装”后,安装页面就跳转到空白页面

2 问题解决

初步看了下typecho的安装代码文件 install.php ,主要是初始化数据库、生成配置文件等,然后看了下 php-fpm 的错误日志 error.log 。结果发现很多 warning 信息,原来和 session 有关:找不到需要的 session 文件(no such file)、无法写入 session 内容。

session 警告和错误

linux 文件的读写问题,肯定跟权限有关。于是查看 php 默认的 session 文件保存路径:在配置文件 /etc/php.ini 的第 1267 行可以看到是 /var/lib/php/session 。

1264 ; where MODE is the octal representation of the mode. Note that this
1265 ; does not overwrite the process's umask.
1266 ; http://www.php.net/manual/en/session.configuration.php#ini.session.save-path
1267 session.save_path = "/var/lib/php/session"

于是查看 /var/lib/php/session 目录的权限设置,增加写入权限:

###### 默认权限为 755
[root@typecodes php]# ls -l
total 4
drwxr-xr-x 2 root apache 4096 Jul 26 19:02 session
###### 修改权限为 770
[root@typecodes php]# chmod 775 -R session
total 4
drwxrwx--- 2 root apache 4096 Jul 26 19:02 session
3 后记

问题就这样解决了,安装 typecho 比较关键的是自己要先创建一个数据库,这点和wordpress是不同的。至于安装过程中出现的问题,大家可以通过 php 的日志查看是否存在错误或警告信息。至于前面提到的 “安装页面就跳转到空白页面了” 原因是:typecho的安装程序 install.php 的第 58 行,对 $_SESSION['typecho'] 做了判断,即为空则直接 exit,页面不显示任何内容。另外,php的错误日志 error.log 中产生的 warning 信息,也都是由 install.php 中相应的代码导致的,就不多说了。

//判断是否已经安装
if (!isset($_GET['finish']) && file_exists(__TYPECHO_ROOT_DIR__ . '/config.inc.php') && empty($_SESSION['typecho'])) {
    exit;
}
打赏支持

Comments »