阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下Ghost 博客系统安装教程

115次阅读
没有评论

共计 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

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4201字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中