记一次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; }
然后重启
不喜欢用nginx,总感觉问题很多,还是apache简单,方便。