共计 4201 个字符,预计需要花费 11 分钟才能阅读完成。
先放出 Ghost 博客项目地址:https://github.com/tryghost/Ghost
前言
Ghost 这个博客系统可真是难装,第一次装失败后放弃了一段时间,转而用的 JustWriting,但是这个系统也太精简了 …… 之后我决定回归 ghost!我在一个国外哥们儿的博客上找到了一篇 Ghost 安装参考教程,结合官网文档略加修改成功安装。后来经历了好几次重装和升级,我现在对 Ghost 的安装和配置已经轻车熟路。顺便吐槽一下,官方文档写的有点混乱,各种链接跳来跳去,完全不按流程来,我第一次安装愣是没看懂。那里面还要求用浏览器打开本地 2368 端口进行预览,我 VPS 连个图形界面都没有,预览个啥。
好了,废话不多说,正文开始,本文对官网教程做了整编,让你轻松拥有自己的博客。
Ghost+Web 服务器转发原理介绍
官方文档建议使用 Nginx 作为 Ghost 的前端来转发 80 端口请求,那么 Ghost 的工作总流程就可以描述为:
Nginx 监听 80 端口,Ghost 一直监听本地 127.0.0.1:2368 端口,你从外网访问 www.xxx.com 时,Nginx 从 80 端口接收请求,将之转发到本地 127.0.0.1:2368 端口,然后 Ghost 就收到访问请求了。
可是为什么不直接让 Ghost 使用 80 端口呢却要依赖 Web 服务器转发呢?这是因为 Ghost 需要运行在 root 权限上,为了避免风险,就用 Nginx 转发一下。另外,Nginx 毕竟是 Web 服务器,配置灵活、并发高,用来做 Ghost 的前端是非常适合的,如果你服务器上还有其他网站那就更要用 Nginx 了,不然你的 80 端口给了 Ghost 就没法负载其他网站了。
有的朋友的服务器上本来就有 Apache 支撑的其他网站,现在又要装 Nginx,这两者不可能同时存在,不然 80 端口不够分的,看起来好麻烦,怎么办?这篇教程除了提供 Ghost+Nginx 的方案外,还提供了 Ghost+Apache 的方案来作为示例,不管你熟悉哪一个,总有一个适合你。
Ghost 采用 Node.js 编写,默认使用 SQLite3 数据库,非常轻量,因为是文件型数据库,所以无需安装。Ghost 还有强大的社区支持,创始人本身也在用这个软件进行商业化运营提供收费托管服务,软件开发的流程非常规范,开发者社区运作井井有条,不用担心这软件得不到维护。
你还在使用 WordPress 这个大家伙吗,赶紧投奔 Ghost 吧。
演示环境
系统配置:CentOS 6.X
首先你要有一台 VPS,并且有一个域名,这里不展开讲怎么购买了,本文主要针对具备 Linux 使用基础并且已有建站经验的朋友。
下面的步骤假设你有一个域名,拿我的域名 linuxidc.com
做示例吧!
Fire up your terminal !
准备步骤
Node.js 的安装
安装 4.4 LTS 版的 node.js,编译安装太麻烦,可以直接去 Google 搜索下载二进制包,解压并将得到的目录重命名为 node
放入 /usr/local/
系统目录下,然后在 /etc/profile
里追加一行export PATH=$PATH:/usr/local/node/bin
,你可以直接编辑文件,也可以通过如下命令做到这一点:
echo export PATH=$PATH:/usr/local/node/bin >> /etc/profile
再用 source
命令让这个设置生效:
source /etc/profile
Web 服务器的安装
安装 Nginx 或者 Apache(httpd),自己选择吧!这里不展开讲了,实在是太简单了。
创建 Ghost 目录
创建 Ghost 目录,mkdir /var/ghost
下载 Ghost 解压
cd /var/ghost
切换到 Ghost 目录,去官网把 Ghost 软件包下载下来,然后 unzip ghost-xxx.zip
解压软件包,解压后你会发现所有的文件都散在当前目录里了。
Ghost 安装流程
之后的步骤都在 /var/ghost
目录里进行,请提前切换到 root 用户,免得麻烦!
安装相关依赖模块
npm install --production
官网上的说明里,这一步没有加参数 -g,不要乱加。既然没有加 -g,那就是本地安装而非全局安装,安装位置在本目录下的 node_modules/
里
初次运行
直接启动,让 Ghost 做一些初始化操作
npm start --production
在这期间你会看到一些输出,如果有红色字体标明的 Error 提示,说明出现了错误。
结束初次运行
然后 Ctrl+ C 关闭 Ghost,我们还要继续进行一些设置。
设置域名
Edit config.js and change the url: to your URL. 编辑 config.js 文件,将 production: 代码块内的
url: 'http://my-ghost-blog.com',
改为
url: 'http://linuxidc.com',
注意这里写的 URL 就是以后注册账号和登录后台时所用的 URL,必须完全一样,http 前缀也不能省略,如果注册时用的 URL 和这里的不一样,那么就会出现错误提示说无权限访问!
优化邮件设置
优化下邮件设置,让博客系统给自己发邮件时发件人地址更规范一些。编辑 config.js
文件,将 production:
代码块内的
mail: {},
改为
mail: {from: '"Hao Lee\'s Blog"<blog@linuxidc.com>'},
设置 Web 服务器
所有请求 linuxidc.com 的连接,都将被 Web 服务器转发至 Ghost 的 2368 端口。这也就允许你在同一台服务器上拥有其他网站,从而互不影响。
对于 Nginx 用户
打开 /etc/nginx/nginx.conf
,在http
语句块内追加上:
server {
listen 80;
server_name linuxidc.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
/etc/init.d/nginx restart
对于 Apache 用户
打开 /etc/httpd/conf/httpd.conf
`#NameVirtualHost *:80` 这一行取消注释
再在文件末尾加上如下语句,配置请求转发
<VirtualHost *:80>
ServerName linuxidc.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
AddDefaultCharset Off
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:2368/
ProxyPassReverse / http://127.0.0.1:2368/
</VirtualHost>
重启 httpd 服务,service httpd restart
完成这些后
现在启动 Ghost 并访问域名已经能进入博客页面了,但下面还需要实现 Ghost 后台运行,不然你退了终端的话 Ghost 就停止了。
使用 Forever 让 Ghost 后台运行
安装 forever 包
npm install forever -g
启动 Ghost 用这条命令
NODE_ENV=production forever start index.js
关闭 ghost 用这条命令
forever stop index.js
查看运行状态用这条命令
forever list
注册账户
用 forever
命令让 Ghost 后台运行,然后浏览器访问 http://www.example.com/ghost
就可以看到初始化界面。
开始注册吧,注册后就能使用你自己的博客了。
如果这一步提示说没有权限,那就是这里所用的 URL 和前面配置文件中所写的不一样,请检查下 config.js 文件或修改浏览器地址栏 URL。
系统重启后
系统重启后别忘了启动 Nginx 或 Apache,其实应该设成开机自启。
然后用 forever 后台运行 Ghost 即可。
后记
备注
为什么不直接让 ghost 监听 80 端口,而要 Web 服务器转发请求?
http://support.ghost.org/basic-nginx-config/
其他参考资料
-
官网安装步骤:http://support.ghost.org/installing-ghost-linux/
-
基本配置:http://support.ghost.org/getting-started/#step-3:-basic-ghost-configuration
-
后台运行:http://support.ghost.org/deploying-ghost/#making-ghost-run-forever
-
邮件设置:http://support.ghost.org/mail/#from-address
-
第一次运行注册:http://support.ghost.org/ghost-first-run/
鸣谢
本文的 Apache 配置部分参考了:https://www.centosblog.com/install-ghost-blog-platform-centos-linux/
这文章里面的 1 - 4 步和第 6 步很有用。
第五步写的有点怪异,我们不参考了,而是按照官网的做法,先启动 Ghost 让其初始化配置文件,再对配置文件进行编辑 Edit config.js and change the url: to your URL.
CentOS 7 系统安装 Ghost 博客平台 http://www.linuxidc.com/Linux/2016-10/136410.htm
CentOS6 32 位安装 Ghost http://www.linuxidc.com/Linux/2015-09/123063.htm
Ubuntu14.04 搭建 Ghost 平台博客 http://www.linuxidc.com/Linux/2016-11/137337.htm
CentOS 7.2 搭建 Ghost 博客 http://www.linuxidc.com/Linux/2016-11/137336.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137341.htm