先放出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直接监听80端口的话是需要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使用基础并且已有建站经验的朋友。

下面的步骤假设你有一个域名,拿我的域名haolee.me做示例吧!

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://haolee.me',

注意这里写的URL就是以后注册账号和登录后台时所用的URL,必须完全一样,http前缀也不能省略,如果注册时用的URL和这里的不一样,那么就会出现错误提示说无权限访问!

优化邮件设置

优化下邮件设置,让博客系统给自己发邮件时发件人地址更规范一些。 编辑config.js文件,将production:代码块内的

mail: {},

改为

mail: { from: '"Hao Lee\'s Blog" <blog@haolee.me>' },

设置Web服务器

所有请求haolee.me的连接,都将被Web服务器转发至Ghost的2368端口。这也就允许你在同一台服务器上拥有其他网站,从而互不影响。

对于Nginx用户

打开/etc/nginx/nginx.conf,在http语句块内追加上:

server {
listen 80;
server_name haolee.me;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 haolee.meProxyRequests OffProxyPreserveHost On
<Proxy *>AddDefaultCharset OffOrder deny,allowAllow 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.

Ghost 博客系统终极安装教程,装不上来打我!相关推荐

  1. 【Microsoft Azure 的1024种玩法】六十.通过Azure Virtual Machines快速搭建个人Ghost博客系统

    [简介] Ghost 是一套基于Node.js 语言开发构建的开源博客系统,它的整体架构为前端管理系统基于Ember.js, 后端的模板引擎采用的handlebars, 数据库是基于MySQL的,本篇 ...

  2. 基于Spring+SpringMVC+MyBatis博客系统的开发教程(十一)

    第11课:博客书写页面--KindEditor 富文本编辑器 富文本编辑器 KindEditor KindEditor 是一套开源的 HTML 可视化编辑器,可支持文字编辑.emoji 表情和图片上传 ...

  3. 如何优雅又庶民地在Github Pages中上线Ghost博客系统

    序篇 笔者对于「想要拥有个人网站」这事儿,在过去几年总会偶尔灵光一现,心血来潮地买下几个月的轻应用服务器以及域名,然后兴高采烈地架设起来,更换各种博客主题,记录一些学习心得:然而,潮起之后马上潮落,有 ...

  4. 【ghost】centos使用nginx实现ghost博客系统的反向代理

    ~转载请注明http://blog.csdn.net/u013015161/article/details/48375565 整个8月份都没有更新博客,一方面是自己在忙一些有的没的,另一方面,也是懒的 ...

  5. 基于Spring+SpringMVC+MyBatis博客系统的开发教程(十三)

    第13课:第三方 QQ 登录及账号绑定与解除 使用 QQ 第三方登录时要调用第三方接口,需要 AppID 和 AppKey 等信息,所以首先要申请注册一下. 申请注册 首先在百度搜索 QQ 互联或者点 ...

  6. 基于Spring+SpringMVC+MyBatis博客系统的开发教程(十六)

    第16课:Spring Security 之手机登录认证授权 通过上一篇的源码分析得知 Spring Security 提供的默认认证方式是根据用户名和密码进行认证的.要想通过手机登录认证就得制定自己 ...

  7. 基于Spring+SpringMVC+MyBatis博客系统的开发教程(五)

    第05课:注册(邮件激活.Redis 缓存.Ajax 异步获取) 前期准备 首先在 webapp 目录下引入 JSP 和 CSS.JS.images 等资源文件,资源文件已放入文末的百度网盘链接中. ...

  8. 基于Spring+SpringMVC+MyBatis博客系统的开发教程(十二)

    第12课:个人资料修改页面 正式开始本文内容前,我们先做下准备,即在 WEB-INF 下的 personal 文件夹下导入个人资料修改页面 profile.jsp 文件. 通过访问个人主页的修改个人资 ...

  9. docker-compose搭建ghost博客系统

    ghost的官网开发文档地址:https://ghost.org/docs/ 其对应的详细配置地址说明如下: https://ghost.org/docs/config/#configuration- ...

最新文章

  1. Linux命令行与命令
  2. 年度盘点!必看AI顶会论文、Github高星项目大合集(附链接)
  3. 送你了,思科设备基础配置命令大全(一),赶紧收藏......
  4. 最长上升子序列(LIS)算法
  5. ps字体识别_PS字体包免费送:艺术+时尚+炫酷+复古等5000多款字体,由你来选择
  6. Avalonia跨平台入门第二十篇之语音播放问题
  7. 鸿蒙之火是什么意思,鸿蒙突然火了!鸿蒙是什么?
  8. java的课程总结_Java课程总结
  9. python接口自动化(四十二)- 项目架构设计之大结局(超详解)
  10. 【转】Android上常见度量单位【xdpi、hdpi、mdpi、ldpi】解读
  11. Atitit. Ati IDE 开发平台的第一版规划
  12. Raki的读paper小记:Code and Named Entity Recognition in StackOverflow
  13. 计算机硬盘哒哒响,教你轻松解决硬盘异响(咔咔或者嗒嗒声)
  14. error ‘for’ loop initial declarations are only allowed in C99 mode的报错原因和两种解决办法
  15. win7系统怎么用笔记本做wifi热点
  16. TaoFramework
  17. macBook下将m4a转换成mp3
  18. 基于vue+exharts的双折线图
  19. 从哪里租vps远程桌面服务器,租vps远程桌面服务器
  20. Spark RDD 论文详解(二)RDDs

热门文章

  1. tomcat_修改网页标签图标
  2. 改变PowerPoint2003中超链接的颜色
  3. 211计算机考研到985难度,这份考研难度排行榜亮了,很多人不知道,这几所211竟比985还难考...
  4. Failed to connect to github.com port 443: Timed out
  5. Failed to connect to github.com port 443 连接超时
  6. 如何编写商场超市行业群发短信
  7. esp32录音功能开发_【安信可ESP32语音开发板专题①】ESP32-A1S音频开发板之离线语音识别控制LED灯...
  8. 点状字符的一种简便识别方式
  9. 热图3:热图行列分组信息注释
  10. 推荐常用的六个插件武装你的Chrome(附带文件下载)