如何在 Ubuntu 14.04 上使用 Ghost 和 Nginx 创建博客

介绍

Ghost是一个轻量级(~7.5MB)的开源博客平台,非常易于使用。Ghost是完全可自定义的。在互联网上有大量的主题可用于Ghost,无论是免费的还是付费的。

在本教程中,我们将通过步骤来获得Ghost设置并在Ubuntu 14.04系统上运行,我们还将安装Nginx到代理端口,并安装永远,一个节点包,以保持Ghost在背景中运行。

前提条件

没有一个服务器运行Ghost的最低尺寸要求。考虑你的博客将获得多少访客,当你决定创建什么尺寸Droplet时,你计划分享多少内容。

在你开始之前,你需要以下几点:

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

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

本教程中的所有命令都应该作为非根用户运行。如果需要 root 访问,则将先由 sudo初始服务器设置与 Ubuntu 14.04解释如何添加用户并给他们 sudo 访问。

第1步:安装 Node.js 和 Npm

您需要更新本地包索引并安装zipwget包,我们将在本教程中稍后使用它们。

1sudo apt-get update
2sudo apt-get install zip wget

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

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

一旦安装了 Node.js,请通过运行检查安装的版本:

1node -v

结果应该是这样的:

1v0.10.38

检查npm是否已安装:

1npm -v

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

11.4.28

如果它输出一个错误,即 npm 未安装,请使用此命令安装它:

1sudo apt-get install npm

更新「npm」到版本 2.5.0 以执行以下命令:

1sudo npm install [email protected] -g

查看已安裝的「npm」版本:

1npm -v

产量应该是:

12.5.0

第2步:安装Ghost

接下来我们需要安装Ghost。Ghost.org建议在var/www/ghost中安装Ghost,所以我们将在那里安装它。

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

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

现在我们已经获得了最新版本的Ghost,我们必须解码它. 我们还将更改我们的目录为 /var/www/ghost/:

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

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

1sudo npm install --production

Ghost 安装完成后,我们需要在启动 Ghost 之前设置 Ghost。

第3步:设置幽灵

Ghost 的配置文件应位于 /var/www/ghost/config.js 位置,但是,在 Ghost 中不安装任何此类文件,而安装中包含 config.example.js’。

将示例配置文件复制到适当的位置. 请确保复制而不是移动,以便在您需要重置更改的情况下拥有原始配置文件的副本。

1sudo cp config.example.js config.js

您的URL和邮件设置,在制作部分,是需要修改的信息的关键区域。URL是必需的。否则,链接将带您到默认的http://my-ghost-blog.com’页面。幽灵可以在没有邮件设置的情况下工作,但建议您添加它们。在写这篇文章时,幽灵只需要邮件功能,如果用户忘记了他们的帐户密码,所以不需要配置邮件就不会造成太大的伤害。

打开文件以编辑:

1sudo nano config.js

您必须将)。 此值必须以URL的形式。 例如, http://example.com/ 或 http://45.55.76.126/. 如果这个值没有正确格式化,Ghost 将不会启动。

还将服务器部分中的主机值更改为0.0.0.0

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

 1[label /var/www/ghost/config.js]
 2var path = require('path'),
 3    config;
 4
 5config = {
 6    // ### Production
 7    // When running Ghost in the wild, use the production environment
 8    // Configure your URL and mail settings here
 9    production: {
10        url: 'http://my-ghost-blog.com',
11        mail: {
12            // Your mail settings
13        },
14        database: {
15            client: 'sqlite3',
16            connection: {
17                filename: path.join(__dirname, '/content/data/ghost.db')
18            },
19            debug: false
20        },
21
22        server: {
23            // Host to be passed to node's `net.Server#listen()`
24            host: '127.0.0.1',
25            // Port to be passed to node's `net.Server#listen()`, for iisnode s$
26            port: '2368'
27        }
28    },
29
30(...)

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

虽然仍在 /var/www/ghost 目录中,请使用以下命令启动 Ghost:

1sudo npm start --production

结果应该是这样的:

1> ghost@0.6.4 start /var/www/ghost
2> node index
3
4Migrations: Database initialisation required for version 003
5Migrations: Creating tables...
6Migrations: Creating table: posts
7
8[...]

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

在终端中按CTRL+C,关闭 Ghost 实例。

<$>[注] 注: Ghost 可以进一步定制。 Ghost.org详细说明每个配置选项。

第4步:安装 Nginx

下一步是安装 Nginx. 基本上,它将允许端口80上的连接连接到Ghost正在运行的端口。

用以下命令安装:

1sudo apt-get install nginx

接下来,我们需要通过将我们的目录更改为/etc/nginx并在/etc/nginx/sites-enabled中删除默认文件来配置 Nginx:

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

我们将创建一个名为幽灵/etc/nginx/sites-available/中的新文件,并用nano打开它来编辑它:

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

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

1server {
2    listen 80;
3    server_name your_domain.tld;
4    location / {
5        proxy_set_header X-Real-IP $remote_addr;
6        proxy_set_header Host      $http_host;
7        proxy_pass http://127.0.0.1:2368;
8    }
9}

现在我们将在网站启用中同步我们的配置:

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

我们将重新启动 Nginx:

1sudo service nginx restart

接下来我们将创建一个新的用户. 这个用户只会被授予在目录中做的事情的特权 /var/www/ghost. 这是一个安全措施. 如果 Ghost 受到威胁,你的系统将是安全的。

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

我们将提供特权:

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

您现在可以作为幽灵用户登录:

1su - ghost

现在我们需要启动幽灵:

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

您应该能够访问您的博客在端口 80 作为 http://<your_server_ip>/ 或 http://<your_domain_name>/.

步骤5 - 保持幽灵运行永远

下一步是保持Ghost在后台运行。‘永远’是一个节点模块,可以用来在后台启动Ghost,并监视它,以确保它保持。

安装永远使用以下命令从你的幽灵目录中,即/var/www/ghost 但是在运行命令之前,退出幽灵用户并登录你的非根用户:

1exit
2sudo npm install -g forever

开始Ghost作为Ghost用户,也必须从Ghost目录中运行:

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

结果应该是这样的:

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

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

1NODE_ENV=production forever start index.js

「永遠」可以通過從 Ghost 目錄運行來停止:

1forever stop index.js

可能的错误

如下错误消息:

1Error: SQLITE_READONLY: attempt to write a readonly database

开始):

1sudo forever start index.js

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

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

如果您看到以下错误:

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

您不在 /var/www/ghost 目录中. 更改到此目录并再次执行命令。

结论

恭喜您!您已经安装了Ghost,并学会了如何使用Nginx进行代理端口。

您可以使用 Ghost 做得更多,例如,密码保护的博客是最新的功能之一。

查看Ghost上的其他DigitalOcean教程:

此外,请参阅以下内容来了解更多:

Published At
Categories with 技术
Tagged with
comments powered by Disqus