专栏首页云计算教程系列如何在Ubuntu 14.04上使用Ghost和Nginx创建博客
原创

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

介绍

Ghost是一个轻量级(~7.5MB)的开源博客平台,非常易于使用。Ghost是完全可定制的。互联网上有很多可供Ghost使用的免费或付费的主题。

在本教程中,我们将完成在Ubuntu 14.04系统上安装和运行Ghost的步骤。我们还将安装Nginx代理端口并安装forever一个节点包,以保持Ghost在后台运行。

准备

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

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

  • Ubuntu 14.04 腾讯云CVM
  • 注册域名指向腾讯云CVM的IP地址
  • 具有sudo权限的非root用户(你需要一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。)

本教程中的所有命令都应以非root用户身份运行。如果命令需要root访问权限,则前面会有sudo

第1步 - 安装Node.js和Npm

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

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

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

安装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建议 在var/www/ghost里安装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和邮件设置是需要修改的信息的关键区域。该URL是必要的。否则,链接将带您进入默认http://my-ghost-blog.com页面。Ghost可以在没有邮件设置的情况下运行,但建议您添加它们。在撰写本文时,Ghost仅在用户忘记其帐户密码时才要求邮件正常运行,因此不配置邮件会造成太大危害。

打开文件进行编辑:

sudo nano config.js

您必须更改url域的值(或者您可以使用服务器的IP地址,以防您现在不想使用域)。该值必须采用URL的形式。例如http://example.com/。如果此值格式不正确,Ghost将无法启动。

同时host将该server部分的值更改为0.0.0.0

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

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:2368http://your_servers_ip:2368)。

按下CTRL+C终端以关闭Ghost实例。

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

第4步 - 安装Nginx

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

使用以下命令安装它:

sudo apt-get install nginx

接下来,我们必须通过将目录更改为/etc/nginx以及删除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

将以下代码粘贴到文件中,如果您不想立即添加域,请将your_domain.tld更改为您的域名或服务器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步 - 用forever保持Ghost运行

下一步是让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

可以通过从Ghost目录运行它来停止forever

forever stop index.js

可能的错误

对于以下错误消息:

Error: SQLITE_READONLY: attempt to write a readonly database

root用户身份启动forever(键入exit以注销当前用户):

sudo forever start index.js

如果最后一个命令说它找不到'forever',请使用命令的完整路径:

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做更多的事情。例如,受密码保护的博客是最新功能之一。

另请访问以下内容以了解更多信息:

更多Ubunta教程请前往腾讯云+社区学习更多知识。

参考文献:《How To Create a Blog with Ghost and Nginx on Ubuntu 14.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何为Python 3设置Jupyter Notebook

    Jupyter Notebook为交互式计算提供了一个命令shell作为Web应用程序。该工具可以与多种语言一起使用,包括Python,Julia,R,Hask...

    穿鞋跑得快
  • 使用dig执行手动DNS查询

    dig 是一个命令行DNS查询实用程序,允许您诊断域名解析问题。如果您没有域名,建议您先去这里注册一个域名,将域名解析到您的服务器,您可以使用腾讯云云解析进行快...

    穿鞋跑得快
  • 如何在Ubuntu 14.04上安装Solr 5.2.1

    Solr是一个基于Apache Lucene的搜索引擎平台。它是用Java编写的,并使用Lucene库来实现索引。可以使用各种REST API访问它,包括XML...

    穿鞋跑得快
  • 如何搭建 Ghost 博客

    Ghost是一个轻量级(~7.5MB)的开源博客平台,非常易于使用。Ghost是完全可定制的。互联网上有很多可供Ghost使用的免费或付费的主题。

    Mr.Crypto
  • 如何在CentOS 7上安装和配置Ghost

    Ghost是一个轻量级的开源博客平台,易于使用。Ghost是完全可定制的,有许多主题可用。

    风研雨墨
  • Android 属性动画:这是一篇很详细的 属性动画 总结&攻略

    实现动画效果在Android开发中非常常见,因此Android系统一开始就提供了两种实现动画的方式:

    Carson.Ho
  • 剑指offer(二):不修改数组找出重复的数字

    在一个长度为 n+1 的数组里的所有数字都在 1 到 n 的范围内,所以数组中至少有一个数字是重复的。请找出数组中任意一个重复的数字,但不能修改输入的数组。例如...

    程序员小浩
  • [翻译]Windows Phone 7 Application Controls

    前言-关于这段译文 Windows Phone开发的中文资料缺乏,这段译文翻译自《UI Design and Interaction Guide for Win...

    ShiJiong
  • 深度学习在美团点评的应用

    前言 近年来,深度学习在语音、图像、自然语言处理等领域取得非常突出的成果,成了最引人注目的技术热点之一。美团点评这两年在深度学习方面也进行了一些探索,其中在自然...

    美团技术团队
  • 聊聊dubbo-go的tracingFilter

    dubbo-go-v1.4.2/filter/filter_impl/tracing_filter.go

    codecraft

扫码关注云+社区

领取腾讯云代金券