Centos环境下搭建Ghost博客系统

2017-04-09  本文已影响0人  dihuihengxin

最近想搭建一个Ghost的个人博客系统,在网上搜到了很多关于如何搭建Ghost系统的文章和方法,但是基本上不是过时了就是不能用的。刚开始我是按着别人给的流程在阿里云云主机上捣鼓的,遇到不少的问题,并不能完整成功的搭建出可用的Ghost博客系统。这对于我来说可不是一个很好的消息,因为我一旦决定想做某一件事,必定抱着“不到黄河心不死”的决心。再说了我不能半途而废就放弃自己的想法,所以深入的研究网上许多大牛们给出的方案,加上通宵达旦不懈的努力,终于走出了这个坑!心想着肯定还有很多朋友会遇到这个问题,所以写下此博文与大家分享一下,希望能帮到你们。

欢迎点击我的博客前往查看效果。

我的配置信息

我个人采用Ghost + MySQL + Nginx来搭建的,以下是具体的版本信息:

安装环境准备

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博客使用说明
  1. 访问博客前台:第一次登陆要求注册邮箱账户作为管理员账号,直接使用域名或IP都可以访问博客前台了。
  2. 访问博客后台:浏览器地址输入你的域名/ghost或是你的IP/ghost,使用第一次注册的管理账号登陆就可以进入博客后台了。
博客主题更换

可以到博客:http://marketplace.ghost.org/下载你喜欢的主题,有免费的也有收费的,也可以自己制作一个专属的主题哦。
我的采用的主题,本人非常感谢该主题的制作者他的博客地址

下面我简单说一下主题如何的更换:

  1. 当然了,先下载自己喜欢的主题,上传到/var/www/ghost/content/themes/目录下,并解压;
  2. 重启一下pm2守护进程ghost;
  3. 登录到ghost后台:“全局设置”--->“博客主题”选择刚上传的主题(已存在“Casper-zh-1.2.5”和“Roon-zh-1.1”两个默认主题)--->“保存”;
  4. 刷新你的博客首页,哇,你全新的博客主题出来了!好好享受一下吧!

哈哈,是不是自己动手搭建好一个个人博客很鸡冻啊!如果你在搭建过程遇到问题,可以随时联系我哦!

欢迎转载!转载请注明出处,谢谢合作!

上一篇下一篇

猜你喜欢

热点阅读