现在我们准备进入 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 / { |
如果不会用 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! 现在打开浏览器并输入你的域名看看是否出现了熟悉的画面: