如何在DigitalOcean上使用Nginx托管Ghost
介绍
2013 年 4 月,博客制作领域的新手 John O'Nolan 为一种名为 Ghost 的新型博客启动了 Kickstarter,它可以从根本上简化编写和维护一个博客。 在这里,我们将逐步完成在 DigitalOcean VPS 上设置和运行 Ghost 的所有步骤。
先决条件
在你开始之前,你应该把一些事情放在一起
- 获得幽灵副本
- 本教程将假设您在本地计算机上已经拥有 Ghost 的副本。 由于它目前仅对 Kickstarter 支持者开放,因此您应该已经收到了一个可以下载它的网站的链接。
- 本教程将假设您在本地计算机上已经拥有 Ghost 的副本。 由于它目前仅对 Kickstarter 支持者开放,因此您应该已经收到了一个可以下载它的网站的链接。
- 设置 VPS
- 本教程将假设您已经设置了 VPS。 我们将使用 Ubuntu 12.04,但您应该可以随心所欲。 如果您在这部分需要帮助,本教程 将帮助您入门。
- 本教程将假设您已经设置了 VPS。 我们将使用 Ubuntu 12.04,但您应该可以随心所欲。 如果您在这部分需要帮助,本教程 将帮助您入门。
- 将域指向您的 VPS
- 本教程将假设您已经将域指向您的 VPS。 本教程 应该可以帮助你完成这部分,如果你不确定如何去做。
第 1 步:安装 npm
在开始之前,我强烈建议您确保您的系统是最新的。 首先通过运行 SSH 进入您的 VPS:
ssh root@*your-server-ip*
在您的本地机器上,并在您的 VPS 上运行以下命令:
apt-get update apt-get upgrade
完成后,我们需要安装 npm
。 运行以下命令将为 Node 安装一些依赖项,将其存储库添加到 apt-get
,然后安装 nodejs
。
apt-get install python-software-properties python g++ make add-apt-repository ppa:chris-lea/node.js apt-get update apt-get install nodejs
注意: 你不应该需要使用 sudo
运行命令,因为你可能以 root 身份登录,但如果你偏离本教程并以其他用户身份登录,请记住,您可能需要 sudo
。
现在,如果您在命令行中运行 npm
,您应该会看到打印出的一些帮助信息。 如果一切顺利,您就可以安装 Ghost 了!
第 2 步:安装 Ghost
接下来要做的是将您的 Ghost 副本放到远程服务器上。 请注意,此步骤仅在当前是必需的,而 Ghost 处于测试阶段。 一旦它向公众开放,它将可以通过 npm
安装(本教程可能会更新以反映这一点)。
欢迎您将文件直接下载到您的 VPS 或通过 FTP 传输。 我将向您展示如何使用 SCP 将文件夹从您的主机复制到服务器。 以下命令将在您的本地终端中运行:
cd /path/to/unzipped/ghost/folder scp -r ghost-0.3 root@*your-server-ip*:~/
这会将 ghost-0.3
文件夹的所有内容复制到服务器上 root 用户的主文件夹。
现在,回到远程服务器,进入刚刚上传的 Ghost 文件夹并使用 npm
安装 Ghost。 命令将如下所示:
cd ~/ghost-0.3 npm install --production
完成后,运行以下命令以确保安装正常工作:
npm start
您的输出应如下所示:
> ghost@0.3.0 start /root/ghost-0.3 > node index Ghost is running... Listening on 127.0.0.1:2368 Url configured as: http://my-ghost-blog.com
如果是这样,恭喜! Ghost 已在您的服务器上启动并运行。 使用 Control-C 停止该过程并继续执行下一步以完成配置。
第 3 步:安装和配置 nginx
下一步是安装和配置nginx
。 Nginx(发音为“engine-x”)是“一个免费的、开源的、高性能的 HTTP 服务器和反向代理”。 基本上,它将允许来自外部的 80 端口连接连接到运行 Ghost 的端口,以便人们可以看到您的博客。
安装很简单:
apt-get install nginx
配置只是更具挑战性。 通过 cd
进入 nginx 的配置文件并删除默认文件开始:
cd /etc/nginx/ rm sites-enabled/default
现在,创建一个新的配置文件:
cd sites-available touch ghost
并粘贴以下代码,修改它以适应您自己的配置(您唯一需要更改的是域名):
server { listen 0.0.0.0:80; server_name *your-domain-name*; access_log /var/log/nginx/*your-domain-name*.log; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header HOST $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:2368; proxy_redirect off; } }
最后,创建从 sites-available
到 sites-enabled
的文件的符号链接:
cd .. ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/ghost
这将侦听从端口 80 传入的流量并将请求传递给 Ghost,前提是它们连接到您提供的域。
再次启动服务器(使用第 2 步末尾的代码)并访问您的域。 如果你看到幽灵,你很高兴!
第 4 步:配置新贵
最后一步是创建一个处理 Ghost 的 Upstart 任务,并确保如果您的服务器由于某种原因关闭,Ghost 将被重新启动。 首先通过执行以下操作创建一个新的 Upstart 配置文件:
cd /etc/init nano ghost.conf
并粘贴以下配置:
# ghost # description "An Upstart task to make sure that my Ghost server is always running" # author "Your Name Here" start on startup script cd /root/ghost npm start end script
这应该确保 Ghost 在您的服务器启动时启动,并允许您使用 service ghost start
、service ghost stop
和 service ghost restart
轻松控制 Ghost。