适用于 CentOS 6.8 系统搭建 Ghost 博客平台,针对性于 6.8 版本。
亲测(腾讯云 CentOS 6.8 64位系统)
- Node .js 安装失败,通过 RPM 安装时 nmp 版本太低,造成无法执行 Ghost 安装。通过源代码安装时,系统无法编译,囧。从网络仓库安装 Node.js 时,是 v0.10 版本,Ghost官方不支持, npm 也没有附带安装。最终选择直接下载已经编译包安装,简单粗暴。
- 安装成功后重启,发现网站不能打开 Nginx 502 Bad Gateway 错误,原因是:PM2进程守护无法随服务器重启而自动启动,并且
pm2 start flisoo
命令也失效了,所以改用 Forever。 - 以下是失败多次总结出来的全新教程,跟 CentOS 7 系列完全不同
官网教程,是万能的,适用于所有 CentOS 版本安装,但是吧,有时候不同版本安装 Ghost 时,会出现一些小问题,造成安装失败,所以还是有必要出一个针对性的安装教程,我是这么想的。
大神就不要吐槽我幼稚了,虽然我写了十几篇 Ghost 安装教程。
安装步骤:
- 安装 Nginx
- 安装 Node.js
- 安装 Ghost
- 配置 Nginx 反向代理
- 安装 Forever 进程守护程序
开始
查看当前 CentOS 系统版本:
cat /etc/redhat-release
安装开发工具包:
yum groupinstall 'Development Tools'
安装 Nginx
安装 Nginx 作为HTTP服务器,编辑 Nginx 的仓储地址:
vim /etc/yum.repos.d/nginx.repo
接着按一下键盘上的字母 “ i ”,把下面的内容粘贴进去。
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
粘贴完成后,按一下 Esc 键,然后输入 :wq! ,按回车退出。
(注意“:”和“!”是英文输入法下的符号)
现在,用 yum 自动下载并安装 Nginx:
sudo yum install nginx -y
启动 Nginx ,并设置开机启动:
sudo service nginx start
sudo chkconfig nginx on
安装node.js
看了N+教程,总结最简单的一种安装方法,CentOS 6系统安装 Node.js 真心麻烦,新手会踩很多坑才会安装成功自己想要的版本,下面我将安装 Ghost 官方推荐支持的 Node.js V6 版本。
下载软件包,并解压:
wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.gz
解压:
tar xzf node-v6.9.5-linux-x64.tar.gz
cd node-v6.9.5-linux-x64
我们想在 /usr/local 目录中安装 Node.js,所以使用以下命令将文件复制到 /usr/local 目录即可:
for dir in bin include lib share; do cp -par ${dir}/* /usr/local/${dir}/; done
查看版本 node -v
和 npm -v
,发现成功安装 node.js 6.x 版本和 npm 3.x 版本。
注意:下载速度很慢很慢,建议自己用电脑下载好文件,然后通过 FTP 传到 root 目录,再用 SSH 命令tar xzvf node-v6.9.5-linux-x64.tar.gz
解压,下载地址:https://nodejs.org/dist/v6.9.5/ 记得下载 node-v6.9.5-linux-x64.tar.gz
文件。
安装 Ghost
创建一个文件夹,用来放置网站文件:
sudo mkdir -p /data/www/
cd /data/www/
从官方网站下载最新版本的 Ghost:
curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip
解压到 flisoo 文件夹(命令的意思是:创建 flisoo 文件夹,并把 Ghost 解压进去):
unzip -d flisoo ghost.zip
cd /data/www/flisoo
配置 config.js文件,尚未运行 Ghost,不会有 config.js 文件,但可以通过复制 config.example.js 创建一个:
sudo cp config.example.js config.js
sudo vim config.js
先按一下字母 “i”,然后修改里面的http:/my-ghost-blog.com为你想要绑定的域名,编辑完成后,按一下 Esc键,再输入 :wq! 回车退出。
接下来就可以执行安装了:
npm install --production
配置 Nginx 反向代理
新建一个 Nginx 代理文件,并将代理指向 Ghost 端口:
sudo vim /etc/nginx/conf.d/ghost.conf
先按一下字母 “i”,再将下面内容粘贴进去。注意将 flisoo.com www.flisoo.com 改成你上面想要绑定的域名(通过这样的域名格式,你将可以通过两种形式访问网站)。编辑完成后,按一下 Esc键,输入 :wq!,回车退出。
server {
listen 80;
server_name flisoo.com www.flisoo.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 服务器,让设置生效。
sudo service nginx restart
安装 Forever 进程守护
Ghost 使用 npm start --production
命令启动。但这命令有一个缺点,当你关闭终端窗口或者 SSH 断开连接时,Ghost 就停止了。为了防止 Ghost 停止工作,我们需要使用进程守护程序“Forever”
你可以使用 forever 以后台任务运行 Ghost 。forever 将会按照 Ghost 的配置,当进程 crash 后重启 Ghost。
进入 flisoo 目录:
cd /data/www/flisoo
安装 forever:
npm install forever -g
让 Ghost 永远在线,输入:
NODE_ENV=production forever start index.js
可以使用的命令:
- 停止 Ghost:
forever stop index.js
- 检查 Ghost 是否正在运行:
forever list
至此,Forever 已经可以守护 Ghost 博客永远在线了。
注意:今后重启服务器后,都要执行以下命令去启动 Ghost:
cd /data/www/flisoo
NODE_ENV=production forever start index.js
之前安装 pm2 进程守护的时候,可以随 CentOS 7服务器重启而自动启动,但是一到 CentOS 6系统,pm2 自动启动失效了,造成我还以为是 Node.js 的问题,查了很多教程不断去重装 Node.js,最后发现是 CentOS 6系统本身的问题,让 pm2 无法自动启动,啊啊啊啊啊啊啊,反正都要每次去启动,索性换成 Forever 了,Ghost 官方推荐安装的。
之前是使用 wget
命令去下载 Ghost 软件的,但是发现速度超级慢,然后就会卡住断线,所以换成 curl -L
去下载了,虽然速度一样很慢,但是不会卡住啊