Ghost 开源博客平台

Ghost 是一个简洁、强大的写作平台。你只须专注于用文字表达你的想法就好,其余的事情就让 Ghost 来帮你处理吧。

在阿里云服务器上安装 Ghost (4)-- 安装 Ghost

前面三篇文章分别讲解了 Node.js、Nginx、MySQL 的安装,如果前几步没搞定的话,先回去转转吧:

现在我们准备进入 Ghost 的世界吧!

做些准备工作

创建数据库

我们希望 Ghost 搭配 MySQL 数据库运行,因此需要为 Ghost 创建一个 MySQL 数据库。前面已经安装好 MySQL 了,现在我们就来创建数据库吧:

mysql -uroot -p -e 'create database ghost;'  

系统会提示你输入 MySQL 数据库的 root 账户密码(还记得前一章节安装 MySQL 时设置的密码吗?)。指令执行之后就创建了一个叫做 ghost 的数据库,将来,你的文章就是存在这里喽!

配置 Nginx

我们希望利用 Nginx 做 Ghost 的前端代理服务。OK, 我们进入 /etc/nginx/sites-available/ 目录设置 Nginx :

cd /etc/nginx/sites-available/  
sudo touch ghost.conf  
sudo vi ghost.conf  

最后一条指令是用 vim 编辑器打开 ghost.conf 文件进行编辑。我们输入如下内容:

server {  
    listen 80;
    server_name ghostchina.com; //替换为你自己的域名!

    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
}

如果不会用 vim 的话,请百度一下吧。只要会基本操作就 OK 了。

然后我们为 ghost.conf 文件做一个软链接到 /etc/nginx/sites-enabled/ 目录下:

sudo ln -s /etc/nginx/sites-available/ghost.conf /etc/nginx/sites-enabled/ghost.conf  

安装 forever

目前我们推荐采用 Upstart 进程守护工具来启动 Ghost。关于如何通过 Upstart 启动、监控 Ghost,请参考这篇文章:用 Upstart 守护 Ghost

如果是通过 npm start 启动 Ghost 的话,只要你关闭了远程连接,Ghost 也就停了,这个我们当然不希望喽。幸好,有 forever 工具帮我们解决这个问题。接下来执行以下指令来安装 forever

sudo npm install forever -g  

注意:这条指令将 forever 安装到全局环境。安装的时候系统会提示一些 WARN,这是因为 forever 依赖的 Node.js 版本过低,没关系,不用理会。

Ghost,走你!

下载 Ghost

Ghost 安装包是经过压缩的,在 Linux 上我们需要用 unzip 工具对其解压,因此,首先要安装 unzip 工具:

sudo apt-get install unzip  

接下来我们下载 Ghost 安装包:

cd /srv/  
sudo curl -L http://dl.ghostchina.com/Ghost-0.4.1.zip -o ghost.zip  

注意:上述下载链接是 Ghost中文网 提供的 CDN 加速下载。除了加速,还有一个原因就是:某些网站随时都可能被和谐掉!

将其解压缩:

 sudo unzip ghost.zip -d ghost

现在,/srv/ghost/ 目录下面就是我们的 Ghost 系统了!

修改 Ghost 配置文件

我们进入 Ghost 系统目录,为 Ghost 增加配置文件并配置数据库:

cd /srv/ghost/  
sudo cp config.example.js config.js  
sudo vi config.js  

最后一条指令是用 vim 打开 config.js 文件进行编辑。我们只修改 production 一节的配置信息,修改为如下形式(注意按照你自己的实际情况替换!):

    // ### Production
    // When running Ghost in the wild, use the production environment
    // Configure your URL and mail settings here
    production: {
        url: 'http://ghostchina.com', //替换为你自己的域名。
        mail: {},
        database: {
            client: 'mysql',
            connection: {
                host     : '127.0.0.1',
                user     : 'root', //我们暂且用 MySQL 的 root 账户
                password : '123456', //输入你的 MySQL 密码
                database : 'ghost', //我们前面为 Ghost 创建的数据库名称
                charset  : 'utf8'
            }
        },
        server: {
            // Host to be passed to node's `net.Server#listen()`
            host: '127.0.0.1',
            // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
            port: '2368'
        }
    },

检查无误后我们保存并退出编辑器。

安装 Ghost 依赖的库

很多同学安装到这一步都会遇到 sqlite 安装失败的情况,究其原因,还是我们伟大的“墙”在捣乱。由于安装 sqlite 时需要从亚马逊的 S3 服务器上下载一些组件,但是国外服务器经常被墙,所以在这一步上掉进坑里的同学都很无辜。

不幸的是,目前没有好的解决办法。

不过,我们这一系列教程讲解是采用 MySQL 数据库搭配 Ghost ,所以我们可以不安装 sqlite,具体操作如下:

打开 Ghost 系统的目录下面的 package.json 文件,将 "sqlite3": "2.2.0", 这一行删除掉(注意,你看到的 sqlite 版本可能会不一样,但是,只要是 sqlite3 字样,删除即可)。

接下来,进入存放 Ghost 系统的目录并安装 Ghost 所依赖的 npm 包:

cd /srv/ghost/  
sudo npm install --production  

很快,所有依赖包就安装好了,当前目录下会多出一个 node_modules 目录。

启动 Ghost

执行如下指令重启 Nginx、启动 Ghost:

sudo service nginx restart  
cd /srv/ghost  
sudo NODE_ENV=production forever start index.js  

YEAH! 现在打开浏览器并输入你的域名看看是否出现了熟悉的画面:

Ghost 默认网站截图

大结局

没了!

王赛
关于作者 王赛