如何在CentOS上安装Ghost?

由于大多数 VPS 能够支持 CentOS。本文将详细叙述如何在 CentOS 系统上安装服务器,以及基于 Node.js 运行 Ghost 博客程序。

安装指南:


安装

安装 Nginx

更新 CentOS 软件,安装开发工具包、Vim 和 wget:

yum update -y
yum groupinstall -y "Development Tools"
yum install -y vim wget

首先我们安装Nginx启动HTTP服务器,安装成功后输入你的网站IP就可以看到“Welcome to Nginx!”。

编辑Nginx的仓储地址。输入:

vim /etc/yum.repos.d/nginx.repo

接着按键盘上的 “S” 便于用vim编辑内容,把下面的内容粘贴进去。

[nginx] 
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0
enabled=1

编辑完成,按下 Esc,输入 :wq! 回车退出。 现在,用 yum 自动下载安装。

sudo yum install nginx -y
sudo service nginx start
sudo chkconfig nginx on

NOTE: 在 CentOS 7 执行上述操作时会出现提示。应该使用/bin/systemctl start nginx.servicesystemctl enable nginx.service来开启Nginx服务器。

安装 Node.js

方法一: 下载源代码后执行编译和安装。缺点:编译程序往往要消耗很多时间。

从官方仓库获得最新的 Node.js 源代码包:

wget http://nodejs.org/dist/node-latest.tar.gz
tar -xzf node-latest.tar.gz
cd node-v*

编译和安装 Node.js:

./configure
make
sudo make install

完成后我们可以通过 node -vnpm -v 命令来检查 Node.js 的版本。

方法二:从网络仓库下载已经编译完成的安装包。

首先添加仓库:

curl -sL https://rpm.nodesource.com/setup | bash -

直接下载安装 Nodejs:

yum install -y nodejs

分别用 node -vnpm -v 检查 Node.js 的版本。两种方法的最终效果都一样哟!

安装 Ghost

创建一个文件夹,用来放置网站文件和 Ghost 博客程序。

sudo mkdir -p /var/www/
cd /var/www/

从官方网站下载最新版本的 Ghost(ghost-latest.zip):

wget https://ghost.org/zip/ghost-latest.zip

解压:

unzip -d ghost ghost-latest.zip

进入 Ghost 安装目录:

cd /var/www/ghost

执行安装命令,安装 Ghost:

sudo npm install --production

安装完成后用 npm start 命令启动开发者模式下的 Ghost,用于检查有没有安装成功。 成功了,Ghost会运行在本地局域网内 127.0.0.1:2368。如果是在电脑上安装的,用浏览器访问此地址即可预览 Ghost。


配置

以生产模式运行 Ghost

但是要部署,我们不能让其运行在开发模式。需要让其运行在生产模式,且当其运行进程退出时自动重启。因此我们可以使用强大的进程守护程序“pm2”达到此目的。(也可以使用Forever)

  • 进入到刚才的Ghost安装目录,执行下面的命令安装PM2:

    sudo npm install pm2 -g

  • 我们要设置环境变量为“production”生产模式!“index.js”是程序启动的入口。最后给这个pm2的进程命名为"ghost" 于是,执行下面的命令:

    NODE_ENV=production pm2 start index.js --name "ghost"

  • 让PM2知道在开机后自动运行我们的网站:

    pm2 startup centos

    pm2 save

  • 提示: pm2 kill ghost (清除所有ghost进程)

    pm2 <start|stop|restart> ghost (启动|停止|重启ghost进程)

    pm2 startup <centos|ubuntu|amazon> (让pm2能够在这3个系统上自动启动)

至此,pm2 已经可以守护 Ghost 博客永远在线。

配置 Nginx 的反向代理

前面,如果你已经安装好了 Nginx。 新建一个 Nginx 代理配置文件,并将代理指向到本地的Ghost端口:

sudo vim /etc/nginx/conf.d/ghost.conf

先按下 S 键,再将如下内容拷贝到到新文件中。注意将 My-Domain-Name.com 改成你要设置的网址。在编辑完成后,按下 Esc,输入 :wq! 回车退出。

server {
    listen 80;
    server_name My-Ghost-Blog.com;
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
}

重新启动 Nginx 服务器,让设置生效。(这里针对 CentOS 7 使用 sudo /bin/systemctl restart nginx.service

sudo service nginx restart

PS: 关键的工作都已做完了! 你的博客程序能够跟随操作系统自动运行了。

但是别忘了修改服务器时区哦。错误的系统时间会导致博客程序显示错误的文章发布日期。

sudo yum install -y ntp
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

Enjoy!