最近想搭建一个Ghost的个人博客系统,在网上搜到了很多关于如何搭建Ghost系统的文章和方法,但是基本上不是过时了就是不能用的。刚开始我是按着别人给的流程在阿里云云主机上捣鼓的,遇到不少的问题,并不能完整成功的搭建出可用的Ghost博客系统。这对于我来说可不是一个很好的消息,因为我一旦决定想做某一件事,必定抱着“不到黄河心不死”的决心。再说了我不能半途而废就放弃自己的想法,所以深入的研究网上许多大牛们给出的方案,加上通宵达旦不懈的努力,终于走出了这个坑!心想着肯定还有很多朋友会遇到这个问题,所以写下此博文与大家分享一下,希望能帮到你们。
欢迎点击我的博客前往查看效果。
我的配置信息
我个人采用Ghost + MySQL + Nginx来搭建的,以下是具体的版本信息:
- 系统版本:Centos6.8 64位
- MySQL版本:5.1.73
- Nginx版本:1.10.3
- Node版本:node-v0.12.18
- Ghost版本:Ghost v0.7.4 full(zh)
安装环境准备
yum update #更新为最新的yum源
yum install -y vim #安装vim,不安装则用vi
MySQL的安装配置
开始安装
Ghost-0.7.4 full(zh)默认使用sqlite3数据库,但是sqlite对海量数据的读写效率比较慢,影响页面加载的速度从而造成用户的体验感不佳。下面是安装MySQL过程:
yum install mysql mysql-server #安装MySQL服务
service mysqld start #启动MySQL服务
mysql_secure_installation #根据实际需要配置MySQL密码,这里不详细说明
service mysqld restart #配置完后重启生效
chkconfig mysqld on #设置MySQL开机自启
配置文件
编辑MySQL的配置文件my.cnf
,修改字符编码为utf-8
,让博客系统支持中文,不出现一堆蚂蚁等火星文字
,毕竟博客还是以中文为主的。
vim /etc/my.cnf
在对应项上添加以下:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
在MySQL数据库中添加一个ghost数据库,并添加一个用户:
mysql -uroot -p #回车后输入你设置的密码进入到数据库
create database ghost; #创建一个ghost数据库,数据库名任意
grant all privileges on ghost.* to 'username'@'%' identified by 'passwd';
#说明:“username”为数据库ghost指定用户,不建议直接使用root用户,“passwd”为“username”用户的密码。
Nginx的安装配置
准备工作
安装Nginx前添加一个repo
文件,用于安装Nginx:
vim /etc/yum.repos.d/nginx.repo
编写以下内容(我就不具体说明每个字段的意思咯):
[Nginx]
name=Nginx
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
正式安装
直接yum方式安装Nginx:
yum install -y nginx #yum安装
service nginx start #启动Nginx服务
chkconfig nginx on #开机自启
然后在浏览器输入你的IP地址
就可以进入一个Nginx
的欢迎界面,出现如下图就说明Nginx安装成功了。
Nginx的反向代理配置
下面开始配置Nginx的反向代理(备份一下,在服务器上的配置文件不建议直接删除):
mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bar
cp /etc/nginx/conf.d/default.conf.bar /etc/nginx/conf.d/ghost.conf
vim /etc/nginx/conf.d/ghost.conf
配置成以下信息:
server {
listen 80;
server_name www.kalid.top; #这里是你的域名或IP地址
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368; #端口要与ghost中配置的一样
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
然后让Nginx重启让配置生效:
service nginx restart
Nodejs的安装
特别说明一下:根据Ghost中文网对Ghost-v0.7.4 full(zh)关于Node版本选择,我第一次安装node-v0.10x时,发现在安装ghost时提示node版本过低。原因是因为我yum安装的Nginx是1.10.3版本,要求node的版本不能过低。Ghost-v0.7.4 full(zh)官方建议是使用v0.10x,同时支持v0.12.x和v4.2.x版本。所以我就选择了v0.12.18,顺利的解决了版本问题。下面是安装过程:
wget http://nodejs.org/dist/v0.12.18/node-v0.12.18.tar.gz #wget没有的话,“ yum install -y wget ”安装后再执行上述命令
tar vxf node-v0.12.18.tar.gz -d /usr/local/src/ #解压到指定目录下
cd /usr/local/src/node-v0.12.18 #切换到解压后的目录下
./configure #简单使用默认配置
make && make install #编译安装node
Ghost的安装与配置
开始安装
创建ghost目录,将ghost安装到此目录下:
mkdir -p /var/www/ghost #创建目录,自己任意命令
cd !$ #切换到ghost目录,"!$"表示上个命令的最后一个参数
wget http://dl.ghostchina.com/Ghost-0.7.4-zh-full.zip #下载ghost
unzip Ghost-0.7.4-zh-full.zip #解压ghost压缩包到当前目录下
配置文件
在ghost目录中将config.example.js
复制一份并命名为config.js
。
config.js中的config数据配置对象是一个多维度对象,production(生产模式)和development(开发者模式),其中默认使用的是development配模式,实际我们要运行时是使用production模式。
下面进行具体的配置:
cp config.example.js config.js #复制
vim config.js
然后修改config.js
中的production
选项内容,使其使用mysql数据库,注释掉原来默认使用的sqlite3
数据库:
production: {
url: 'kalid.top', #你的域名或IP地址
mail: {},
database: {
client: 'mysql' #使用MySQL数据库
connection: {
host : '127.0.0.1', #数据库地址
user : 'username', #用户名
password : 'passwd', #密码
database : 'ghost', #创建的ghost数据库
charset : 'utf8'
},
server: {
host: '127.0.0.1',
port: '2368' #该端口和nginx中ghost.conf设置的端口要一致
}
}
至此,ghost博客基本就算搭建完成了。在ghost目录下使用npm start
启动ghost的开发者模式,然后在浏览器中输入你的域名或IP地址
就可以访问你搭建好的博客了。但是,这仅仅是开发者模式下的博客,一旦断开ssh连接,ghost进程马上就关闭,导致我们不能正常访问博客了。
解决ghost永久在线运行的办法
搭建的博客是希望它永久在线运行的,要不然就没有任何的意义了。怎样才可以在断开ssh连接后让博客系统一直运行呢?网上也给出了很多的解决方案,我也尝试了一下,发现不是很尽人意,可能是选择的版本有直接的关系。为了解决这个问题,我也是试了多次才就我目前选用的版本得到一个解决方案-------使用pm2在后台来守护ghost服务进程,不让其下线,使其持续在production生产模式上运行,这样博客就不用担心掉线的问题了。
pm2安装过程
cd /var/www/ghost
npm install -g pm2 #安装pm2
NODE_ENV=production pm2 start index.js --name "ghost" #指定入口文件和进程名字
这样,博客就可以持续正常运行和访问了。
pm2使用说明
pm2 [option] 进程名
。例如pm2 start ghost
启动守护进程ghost;pm2 restart ghost
重启守护进程ghost;pm2 stop ghost
关闭守护进程ghost。
每一次修改ghost的信息,都要重启一下才会生效,这个需要提醒一下。
博客攻略
ghost博客使用说明
- 访问博客前台:第一次登陆要求注册邮箱账户作为管理员账号,直接使用域名或IP都可以访问博客前台了。
- 访问博客后台:浏览器地址输入
你的域名/ghost
或是你的IP/ghost
,使用第一次注册的管理账号登陆就可以进入博客后台了。
博客主题更换
可以到博客:http://marketplace.ghost.org/下载你喜欢的主题,有免费的也有收费的,也可以自己制作一个专属的主题哦。
我的采用的主题,本人非常感谢该主题的制作者他的博客地址。
下面我简单说一下主题如何的更换:
- 当然了,先下载自己喜欢的主题,上传到
/var/www/ghost/content/themes/
目录下,并解压; - 重启一下pm2守护进程ghost;
- 登录到ghost后台:“全局设置”--->“博客主题”选择刚上传的主题(已存在“Casper-zh-1.2.5”和“Roon-zh-1.1”两个默认主题)--->“保存”;
- 刷新你的博客首页,哇,你全新的博客主题出来了!好好享受一下吧!
哈哈,是不是自己动手搭建好一个个人博客很鸡冻啊!如果你在搭建过程遇到问题,可以随时联系我哦!
欢迎转载!转载请注明出处,谢谢合作!