搬家记
这是一篇旧文,其中的内容可能已经过时。
从一台丢包率高达十分之一的服务器上把博客搬走,访问速度明显有了质的飞跃。因为之前对 WordPress 做了很多自定义的改动,所以我没有采取全新安装 WordPress + 安装主题插件 + 导入文章的方式,而是直接把整个文件夹和数据库打包带走了。
简单把我的步骤和遇到的问题罗列一下:
-
进入旧服务器博客目录,打包博客文件夹;
tar -cvf blog.tar blog
-
把压缩包上传到新服务器对应目录(700M 的文件只花了 15 秒);
scp blog.tar [email protected]:/home/blog
-
进入新服务器,解压压缩包;
tar -tvf blog.tar
-
在旧服务器上导出博客数据库;
-
新服务器主目录下安装 phpMyAdmin;
-
进入 phpMyAdmin 导入博客数据库;
-
修改
wp-config.php
中的数据库名、登录名和密码; -
把域名解析至
104.131.144.112
,由于 TTL 设置为十二小时,所以不会立即生效; -
等待域名更新时,在服务器上准备好域名跳转。进入
/etc/apache2/sites-available
,添加文件handsomeone.com.conf
。这里由于 Ubuntu 新版本的特性,文件名一定要以.conf
结尾。文件内容为:<VirtualHost \*:80> ServerAdmin [email protected] ServerName handsomeone.com ServerAlias \*.handsomeone.com DocumentRoot /home/blog/blog ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
然后使用a2ensite
命令使配置生效并重启 apache2。
- 检查
apache2.conf
。确保/home/blog
下有Require all granted
语句。如果博客目录下有.htaccess
文件,则/home/blog
下还应有AllowOverride All
语句,否则.htaccess
无效。当时为虚拟目录失效的问题伤脑筋了好久,最后才发现是这个原因。 从别的地方看到一个窍门,要迅速判断.htaccess
是否生效,就打开它随意加点文字进去。如果它的确起着作用,那么由于解析失败,访问博客时会返回错误 500。 - 最后,如果
.htaccess
里用到了rewrite
、expires
等模块,最好到服务器/etc/apache2/mods-enabled
里看这个模块是否被启用了。如果没有,就用a2enmod
命令启用此模块,然后重启 Apache。