Wordpress to Ghost
环境:
- Centos-6、Ngnix
- Nodejs:v0.10.40
- Npm:1.4.28
- MySQL:5.1.73
前期准备
yum update
更新yum源
yum pdate
更新yum源
yum groupinstall "Development Tools"
安装开发工具包
安装Nginx
先编辑下Nginx的仓储地址,新建nginx.repo文件:
vi /etc/yum.repos.d/nginx.repo
在文件中写入以下内容:
1 | [nginx] |
保存退出,然后使用yum下载Nginx,并安装:
sudo yum install nginx -y
sudo service nginx start
开启nginx
sudo chkconfig nginx on
设置nginx为开机启动
这样Nginx的安装就完成了,在浏览器中输入VPS的IP或者域名就可以看见Nginx友好的提示:“Welcome to Nginx!”
使用Nginx配置反向代理
如果完成上一步并且在浏览器中看见Nginx的welcome,那么我们就可以开始配置反向代理,让代理从80端口指向2368端口
去到以下这个目录:
cd /etc/nginx/conf.d
删掉default.conf配置文件
rm default.conf
在此目录下新建一个.conf文件,文件名随意
vi myself.conf
在文件中写入以下内容:
1 | server { |
将server_name换成自己的域名,或者ip,保存退出,并重启nginx: service nginx restart ok,nginx的问题就close file了
安装配置Mysql
Ghost v0.7.4 full (zh) 集成了sqlite3,不喜欢用Mysql的话可以忽略此步骤 :yum install mysql mysql-server
service mysqld start
启动mysqlmysql
chkconfig mysqld on
设置为开机启动
mysql_secure_installation
配置mysql 如下:
1 | Set root password? [Y/n] //设置root密码 -- 根据个人需求 |
为了支持中文,我们还要修改mysql的字符支持,编辑MySQL的配置文件:
vi /etc/my.cnf
在对应的位置加上对应的内容:
1 | [client] |
新建一个ghost专用的mysql用户和专用的database:
mysql -u root -p
//用root用户登录mysql
create database ghost;
//创建ghost数据库
GRANT ALL PRIVILEGES ON ghost.* To 'ghost'@'%' IDENTIFIED BY '密码';
//创建ghost database 和 用户名为ghost的用户
//%代表能被所有地址访问
安装Node.js
这里根据Ghost官方的建议,我们安装v0.10.40版本
1 | wget http://nodejs.org/dist/v0.10.40/node-v0.10.40.tar.gz |
安装Ghost
将ghost安装在/var/www下
cd /var/www
没有就创建该目录
wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip
下载中文版的Ghost(原生版goole font会被墙,需要自己优化)
解压:
unzip -d ghost ghost-latest.zip
进入ghost安装目录:
cd ghost
安装Ghost:
sudo npm install --production
安装完成后可以通过如下命令启动ghost的开发模式,测试安装是否成功:npm start
3.7.此时ghost将会运行在127.0.0.1:2368上,在浏览器中输入此地址即可访问。
这里要将config.example.js重命名为config.js再对其进行修改配置mv config.example.js config.js
vi config.js
我们找到生产环境的配置:production
1 | production: { |
用命令npm start
来试试启动开发者模式的Ghost,启动后在浏览器输入自己blog地址如果能看见Ghost。至此ghost安装成功!
使用PM2让Ghost永远在线
只要一断开ssh,Ghost的进程就会被关闭,这里使用PM2来守护Ghost服务进程,并让其运行在生产模式production上
1 | //进到ghost的安装目录 |
这样进程守护就完成了,ghost会永远在线,并且会伴随vps重启运行,几个常见命令如下:
pm2 restart 进程名
重启进程
pm2 list
或 pm2 status
查看运行的进程
pm2 show 进程名/进程ID
查看进程详情
数据转移
wp搜索“Ghost”插件,或手动下载
经测试,1M左右的wp-posts数据表用该插件可以导出为ghost可用的json文件,我的wp-posts数据表接近3M,没有成功导出过,最后自己写个脚本跑出来即可。
图片处理
图片迁移我是选择将原wp的所有图片传到七牛,然后给nginx写rewrite规则。
wp的图片存在wp-content/uploads中,将所有图片下载下来。
注册七牛账号,新建一个Bucket仓库,下载上传所用命令行工具
切换到该工具的目录下,执行初始化:
./qrsboxcli init <AccessKey> <SecretKey> <SyncDir> <Bucket> [<KeyPrefix>]
- AccessKey、SecretKey可进入个人中心查看
- SyncDir 是本地的同步目录,该目录下的文件会随时同步上传值七牛云存储。
- Bucket 是保存同步文件的资源空间名。
- KeyPrefix 是文件前缀,可选。如果设置了该参数,那么上传的文件名前都会加上前缀。这个前缀主要用于在空间中区分不同上传来源的文件。
然后使用以下命令开始文件同步:
./qrsboxcli sync &
查看进程:
./qrsboxcli log
终止进程:
./qrsboxcli stop
设置Nginx Rewrite规则
图片上传到七牛之后,配置nginx.conf。打开之前创建的.conf文件:
vim /etc/nginx/conf.d/myself.conf
由于wp文章中的图片请求都是wp-content/uploads/year/month/*.(jpg|png|gif),所以可以按照如下规则rewrite图片地址:
1 | location ^~ /wp-content/ { |
保存,重启nginx服务即可。
Wordpress to Ghost