2 min read

Linode vps 安装配置 Ghost

我的 vps 情况:

  • 操作系统 – CentOS 7 64 位
  • web 服务器软件 – Apache

Ghost 基于 Node.js,它本身自带 web 服务器,不需要 Apache。

安装 Ghost

主要参照 Ghost 官方帮助

  1. 下载 Ghost

    $ curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip
    
  2. 解压 Ghost

    $ unzip -uo ghost.zip -d ghost
    
  3. 安装 Ghost

    $ cd ghost
    $ npm install --production
    
  4. 启动 Ghost

    $ npm start --production
    

现在,你可以在 vps 上通过 127.0.0.1:2368 路径访问到 Ghost 博客了。

配置 Apache 与 Ghost

当然,你的目的可不是在 vps 上访问 Ghost,而是通过域名访问 Ghost。

ghost 目录下有一个 config.example.js 文件,用于配置相关信息,比如域名,端口等。

执行以下操作前,请先确保你在 DNS 服务器上把域名绑定到 vps 的 ip 地址。

  1. 复制一个 config.js

    $ cd ghost
    $ cp config.example.js config.js
    
  2. 修改 config.js

    将 config.js 里 production 部分里的 url: 'http://my-ghost-blog.com' 改为 url: 'http://example.com'

  3. 重启 Ghost

    Ctrl - C 关闭 Ghost,再执行 npm start --production 启动它。

    这时你能看到如下信息:

    Migrations: Up to date at version 003
    Ghost is running... 
    Your blog is now available on http://example.com 
    Ctrl+C to shut down
    

    但这信息并不意味着我们能访问到 Ghost 了。因为 example.com 域名访问的是 80 端口,在这个端口上监听的是 Apache 而不是 Node.js – 它是在 2368 端口监听着。

所以我们还需要配置 Apache。

打开 /etc/httpd/conf.d/vhost.conf 文件(CentOS 系统的情况),添加如下内容:

 <VirtualHost *:80>
     ServerName www.frontbin.com
     ServerAlias frontbin.com
     ProxyPreserveHost on
     ProxyPass / http://localhost:2368/
     ProxyPassReverse / http://localhost:2368/
 </VirtualHost>

重启 apache:

$ sudo service httpd restart 

这样,Apache 充当代理,会把它监听到的流量转发给 Node.js 监听的端口,这时访问 http://example.com,我们就能打开 Ghost 博客了。

Ghost – Just a blogging platform

Installing Ghost on Linux – Ghost SupportGhost Support

Configuring Ghost – Ghost SupportGhost Support

报告问题 修订

如果你有自建 https 代理的需求,欢迎尝试 Phantom,一键搭建,方便快捷。查看 demo