使用Typecho && VPS搭建轻量级博客

最近由于使用了Hexo的静态博客,深感静态页面的Blog简介高效,好管理,非常的Geek。就想着能不能找到一个轻量级的仿照WP的博客框架。最终发现了Typecho,其实还是非常符合我的意愿的:小巧、简介、有后台发布系统。说开始就开始,准备搭建,开始了无尽的踩坑之旅

环境问题

确保有:

  • PHP5.1以上
  • MySQL or SQLite等任意一种数据库支持
  • 数据库中创建一个「typecho」的数据库
    我的VPS上目前是LNMP1.3的环境,再次感谢军哥。

安装过程

  • 这里下载最新版本的Typecho,解压到你想放的网站的根目录里注意名字切记切记

  • 解压后,配置一下ng的conf,添加以下两行(LNMP1.2以上已经原生的支持了Typecho的伪静态了,很多人后面出现的404错误基本都是这么造成的):

    include typecho
    include enable-php-pathinfo.conf

  • 打开你指向的域名/install.php,按照要求去开始下一步,在初始化的过程中,会让填写一些数据库相关的东西,不要填错了

  • 在安装之前,需要在网站的安装目录下面新建一个config.inc.php文件,页面上面生成的代码拷贝进去,

正常情况通过上面的流程,这样安装就完成了,前后台都能登录上去了。But 我遇到了非常多的坑,记录下,可能可以帮助他人。

踩坑

前台正常显示,任何的链接都可以打开,除了后台/admin/xxxx.php

遇到这个问题也挺奇怪的,大多数网上的网友朋友都是因为配置伪静态的缘故,但要是这个错误的话前后台都是会变成404。

接着我通过浏览器的开发者模式看到报错是500,去看了看nginx的log正常,php的log默认没有开启,打开后仍然没有log。这时候我尝试着重启了下php,解决。2333

service php-fpm restart

本以为完事大吉了,接着出现了下面的错误。

所有的admin/xxx.php都是空白页,返回码是200

这个我就蒙圈了,怎么会返回正常但是没有页面内容呢?so,step through

<?php
echo ‘0’;
if (!defined('__DIR__')) {
define('__DIR__', dirname(__FILE__));
}
echo ‘1’;
define('__TYPECHO\_ADMIN__', true);
echo '2';

if (!defined('__TYPECHO\_ROOT\_DIR__') && !@include\_once __DIR__ . '/../config.inc.php') {
file\_exists(__DIR__ . '/../install.php') ? header('Location: ../install.php') : print('Missing Config File');
exit;
}
echo ‘3';

结果发现3没有被输出出来,把问题缩小到if语句中。

从上面的代码可以定位到是if语句造成的问题,看一看定义根目录好像出了问题。仔细的查看后,发现忽略了一个问题。

在我下载Typecho后,copy到网站根目录的时候,修改了一次文件夹名称,导致了目录出现问题

解决方案也非常的简单,重新安装一遍就可以解决这个了

Wrodpress博客迁移

由于我之前是通过WP来写作博客的,所以我需要把之前的数据全部导入到Typecho中。

官方的文档,写的还是非常的蛋疼的,戳这里(http://docs.typecho.org/plugins/wordpress-to-typecho "戳这里"),几句话说完了。实际的过程中,发现还有一个非常重要的步骤:WP博客的服务器的数据库远程连接的功能必须要开启。方法很简单:

  • 有图形界面管理数据库的话(例如phpmyAdmin),添加一个新的用户,给足权限。

like this

  • 没有图形界面,可以在VPS的mysql命令行中输入下方命令:

    mysql -u root -p
    GRANT ALL PRIVILEGES ON . TO ‘yourUser’@‘%’ IDENTIFIED BY ‘yourPassword' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    上面的代码记得替换自己的用户和密码

注:这里我犯了一个错误,试图给远程的帐号一个root权限,一直报错。回头想一想,逻辑上来说ACL不会这么设计

配置下属性,在数据库地址中填入你实际的远程链接地址。

like this

接着就可以开始迁移了,我大概有60多篇文章,3w多条评论,不到1分钟就迁移完了,速度还是不错的。

插件安装

安装插件也比较方便,但是很不幸的是官方没有一个插件市场,需要自己手动的去程序猿交友网站github去找寻。

这里有很多插件,按照需要clone下来,传到typecho中的usr/plugins里面就好了,在后台,去启用这个插件就完成了。

目前我使用的:SmartSpam&Syntax Highlighter,就已经够了。