记一次Typecho迁移

由于插热水壶电源时不小心碰到了树莓派的插头,指示灯闪了一下,一丝不祥的预感闪过。SSH连上树莓派一看,果然特么重启了。想想还是把博客放到VPS上吧,最起码稳定不是。于是就开始了坑爹的迁移。

Reference:

其实也没啥东西,就是一些小异常比较烦人。
首先导出数据库的数据,网上搜命令分分钟搞定,然后把网站源码什么的打包,也就是/var/www/html下的Typecho相关文件。
VPS上配置了相应的环境后,导入数据库,放上源码,防火墙开端口,启动就好了。
输入网址一看

database server error

什么鬼??!!想了会后觉得应该是数据库配置的问题,于是打开数据库的配置文件config.inc.php,果然,用户名密码忘记改了。改好后刷新网页……
依然是这个错!!
what the fuck!!
又一顿搜索后发现原来是PHP版本的问题,之前用的PHP版本是5.3的,现在VPS上是7.0。连接数据库的参数名改变了,所以发生了错误。

$db = new Typecho_Db('Mysql', 'typecho_');

替换为

$db = new Typecho_Db('Pdo_Mysql', 'typecho_');

这次刷新后就好了。
在搜索过程中发现有人有404的异常,貌似只有Nginx会出现。以下未测试,仅转载解决方法:

方法一:

发现除了首页能正常显示,其余页面都是 404,基本可以确定是伪静态造成的,因为图省事环境为lnmp,直接找到网站配置文件,编辑/usr/local/nginx/conf/vhost/网站名.conf,找到include enable-php.conf;,修改为include enable-php-pathinfo.conf;,保存退出并重启。

方法二:

这是由于Nginx对pathinfo支持不够的问题,需要手动添加地址重写代码。

在站点配置文件,默认为

/etc/nginx/sites-available/default
中对应本Typecho的

server{
    ...
    location / {
        ...
        //这里添加
        ...
        try_files $uri $uri/ =404;
        ...
    }
}

添加如下代码:

if (-f $request_filename/index.html){
    rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
    rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
    rewrite (.*) /index.php;
}

然后重启

标签: none

仅有一条评论

  1. 不喜欢用nginx,总感觉问题很多,还是apache简单,方便。

添加新评论

ali-01.gifali-58.gifali-09.gifali-23.gifali-04.gifali-46.gifali-57.gifali-22.gifali-38.gifali-13.gifali-10.gifali-34.gifali-06.gifali-37.gifali-42.gifali-35.gifali-12.gifali-30.gifali-16.gifali-54.gifali-55.gifali-59.gif

加载中……