如何创建与Ghost的Nginx在Ubuntu 14.04博客

Ghost是一个轻量级(〜7.5MB),开源博客平台是很容易使用。 Ghost是完全可定制的。有可用于在互联网上Ghost主题负载,免费以及付费。 在本教程中,我们将通过步骤获得Ghost安装并运行你的Ubuntu 14.04系统上。我们也将安装Nginx的代理端口,并安装`forever`,节点包,以保持Ghost在后台运行。

介绍

Ghost是一个轻量级(〜7.5MB),开源的博客平台,这是真的很容易使用。 Ghost完全可定制。 在互联网上有很多主题可供Ghost使用,免费和付费。

在本教程中,我们将通过步骤获取Ghost设置并在Ubuntu 14.04系统上运行。 我们也将安装Nginx的代理端口,并安装forever ,节点包,以保持Ghost在后台运行。

先决条件

服务器没有运行Ghost的最小大小要求。 考虑在决定要创建的Droplet大小时,您的博客将获得多少访问者以及您计划共享多少内容。 本教程是在运行Ubuntu 14.04的最小尺寸的DigitalOcean Droplet上测试的。

开始之前,您需要以下内容:

  • Ubuntu 14.04 Droplet
  • 注册的域名指向您的Droplet的IP地址
  • 具有sudo权限的非root用户

本教程将帮助您设置您的域名指向你的Droplet。

本教程中的所有命令都应以非root用户身份运行。 如果需要该命令的root访问权限,它会在前面加sudo与Ubuntu 14.04初始服务器设置介绍了如何添加用户,并给他们sudo访问。

第1步 - 安装Node.js和Npm

您需要更新您的本地包指数和安装zipwget包。 我们将在本教程后面使用它们。

sudo apt-get update
sudo aptitude install zip wget

Ghost需要Node.js v0.10.x(最新稳定版)。 节点的不稳定版本,像v0.12.x, 被支持。 Node.js v0.10.36和npm v2.5.0是由Ghost.org推荐的。

从PPA的方法安装Node.js的本教程

一旦安装了Node.js,通过运行以下命令来检查安装的版本:

node -v

输出应类似于:

v0.10.38

检查npm安装:

npm -v

如果安装了npm,它应该输出安装的版本:

1.4.28

如果输出的错误没有安装npm,请使用以下命令安装:

sudo apt-get install npm

更新npm通过运行以下命令2.5.0版本:

sudo npm install npm@2.5.0 -g

检查的版本npm安装:

npm -v

输出应为:

2.5.0

第2步 - 安装Ghost

接下来我们需要安装Ghost。 Ghost.org建议安装在Ghostvar/www/ghost ,所以这就是我们将安装它。

首先,我们将创建一个目录/var/www/然后从Ghost的GitHub的库下载最新版本的Ghost:

sudo mkdir -p /var/www/
cd /var/www/
sudo wget https://ghost.org/zip/ghost-latest.zip

现在我们已经获得了最新版本的Ghost,我们必须解压缩它。 我们也将改变我们的目录/var/www/ghost/

sudo unzip -d ghost ghost-latest.zip
cd ghost/

现在我们可以安装Ghost依赖项和节点模块(仅限生产依赖项):

sudo npm install --production

完成后安装Ghost。 我们需要设置Ghost,我们才能启动它。

第3步 - 设置Ghost

Ghost的配置文件应位于/var/www/ghost/config.js 但是,没有这样的文件与Ghost安装。 相反,安装包括config.example.js

将示例配置文件复制到正确的位置。 请确保复制而不是移动,以便您拥有原始配置文件的副本,以便在需要还原更改时使用。

sudo cp config.example.js config.js

您的网址和邮件设置,这是在production部分,都是需要修改信息的关键领域。 URL是必需的。 否则,链接将带你到默认http://my-ghost-blog.com页面。 Ghost可以在没有邮件设置的情况下运行,但是建议您添加它们。 在撰写本文时,Ghost只需要邮件正常工作,以防用户忘记其帐户密码,因此不会对配置邮件造成太大的损害。

打开文件进行编辑:

sudo nano config.js

你必须改变价值url到任何您的域名是(或者你可以的情况下,使用您的服务器的IP地址,你不希望立即使用域)。 此值必须采用URL的形式。 例如, http://example.com/http://45.55.76.126/ 如果此值格式不正确,Ghost将无法启动。

同时改变的值hostserver部分0.0.0.0

以下显示需要更改为红色的值:

/var/www/ghost/config.js
var path = require('path'),
    config;

config = {
    // ### Production
    // When running Ghost in the wild, use the production environment
    // Configure your URL and mail settings here
    production: {
        url: 'http://my-ghost-blog.com',
        mail: {
            // Your mail settings
        },
        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(__dirname, '/content/data/ghost.db')
            },
            debug: false
        },

        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 s$
            port: '2368'
        }
    },

(...)

保存文件,然后按退出纳米文本编辑器CTRL+X然后Y最后ENTER

同时还在/var/www/ghost目录,用下面的命令启动Ghost:

sudo npm start --production

输出应类似于:

> ghost@0.6.4 start /var/www/ghost
> node index

Migrations: Database initialisation required for version 003
Migrations: Creating tables...
Migrations: Creating table: posts

[...]

如果一切顺利,你应该能够使用端口2368来访问你的博客: http://your_domain._name :2368 (或http://your_servers_ip:2368 )。

CTRL+C在终端关机Ghost实例。

注:Ghost可以进一步定制Ghost.org详细解释了每个配置选项。

第4步 - 安装Nginx

下一步是安装Nginx。 基本上,它将允许端口80上的连接连接到运行Ghost的端口。 在简单的话,你就可以访问你的博客Ghost不加:2368

使用以下命令安装它:

sudo apt-get install nginx

接下来,我们将不得不改变我们的目录来进行配置的Nginx /etc/nginx和删除默认文件/etc/nginx/sites-enabled

cd /etc/nginx/
sudo rm sites-enabled/default

我们将创建一个新的文件/etc/nginx/sites-available/称为ghost ,并打开它nano对其进行编辑:

sudo touch /etc/nginx/sites-available/ghost
sudo nano /etc/nginx/sites-available/ghost

在文件中粘贴以下代码并以红色突出显示代码更改为您的域名,或者您的服务器的IP地址,如果你不希望现在添加域:

server {
    listen 80;
    server_name your_domain.tld;
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
}

现在,我们将符号链接我们的配置sites-enabled

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

我们将重新启动Nginx:

sudo service nginx restart

接下来,我们将创建一个新用户。 该用户将被授予唯一的特权做的东西在目录/var/www/ghost 这是一种安全措施。 如果Ghost被破坏,你的系统将是安全的。 这可以通过运行以下命令来完成:

sudo adduser --shell /bin/bash --gecos 'Ghost application' ghost

我们将授予权限:

sudo chown -R ghost:ghost /var/www/ghost/

现在,您可以登录为ghost的用户:

su - ghost

现在我们需要启动Ghost:

cd /var/www/ghost
npm start --production

您应该可以通过端口80访问您的博客,网址为http:// <your_server_ip> /或http:// <your_domain_name> /。

第5步-保持Ghost与运行forever

下一步骤是使Ghost的运行在后台执行。 forever是一个节点的模块可用于在后台启动Ghost和监视,以确保它保持向上。 如果Ghost崩溃,永远会自动启动另一个Ghost实例。

安装forever从你的Ghost目录中的以下命令,即/var/www/ghost 但在运行命令注销之前ghost用户,并登录到你的非root用户:

exit
sudo npm install -g forever

启动Ghost的ghost用户。 它也必须从Ghost目录运行:

su - ghost
cd /var/www/ghost
forever start index.js

输出应类似于:

warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: index.js

默认情况下,它在开发环境中加载。 这可以通过运行以下命令来更改:

NODE_ENV=production forever start index.js

forever可以从Ghost目录中运行这个被停止:

forever stop index.js

可能的错误

对于以下错误消息:

Error: SQLITE_READONLY: attempt to write a readonly database

开始forever作为root用户(类型exit注销当前用户):

sudo forever start index.js

如果最后一个命令说它找不到“永远”,请使用命令的完整路径:

sudo /usr/local/bin/forever start index.js

如果您看到以下错误:

error:   Cannot start forever
error:   script /home/ghost/index.js does not exist.

你是不是在/var/www/ghost目录。 切换到此目录并再次执行命令。

结论

恭喜! 你已经安装了Ghost,并学习了如何用Nginx代理端口。 您还学会了如何保持与正在运行的任务forever节点程序包。

有很多你可以做的Ghost。 例如,受密码保护的博客是最新的功能之一。

查看其他DigitalOcean上的Ghost教程:

也请访问以下内容了解更多: