如何部署在Ubuntu 14.04一DocPad应用

在本教程中,我们将学习如何部署在DigitalOcean标准的64位的Ubuntu 14.04图像的[DocPad(https://docpad.org)提出的申请。 DocPad是一个Node.js的供电的静态站点生成器,可以单独或一起使Node.js应用程序用来驱动您的网站内容。 阅读本教程后,你应该能够为DocPad端口80上作为非root用户,并确保您的应用程序DocPad曾经崩溃,它会自动重新启动。

介绍

在本教程中,我们要学会如何部署提出的申请DocPad在DigitalOcean标准的64位的Ubuntu 14.04的形象。 DocPad是一个Node.js提供的静态网站生成器,可以单独使用或与Node.js应用程序一起使用,以驱动您的网站的内容。

阅读本教程后,您应该能够以非root用户身份在端口80上提供DocPad,并确保如果您的DocPad应用程序崩溃,它会自动重新启动。

先决条件

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

你应该在本教程的docpad用户做的一切。

第1步 - 安装Git,Node.js和NPM

在本节中,我们将安装DocPad的先决条件。

确保您的服务器的软件包列表已更新:

sudo apt-get update

安装Git的 ,这将让你部署一个默认的DocPad应用程序或从一个Git仓库的自定义应用。

sudo apt-get install git

将Node.js安装为您的Web服务器:

sudo apt-get install nodejs

需要注意的是,我们正在安装中的NodeJS而不是节点

Node.js的现在可从该命令的命令行nodejs

我们也希望它是提供给我们的命令节点 为了做到这一点,我们可以创建一个从节点到Node.js的符号链接。 这是必需的,以确保您的应用程序DocPad可以正常下载所有它的插件的依赖,因为他们中的一些节点打电话:

sudo ln -s /usr/bin/nodejs /usr/bin/node

欲了解更多信息和安装的Node.js的替代方法,请参阅文章如何在Ubuntu 14.04服务器上安装Node.js的

我们需要安装命令行界面的软件包管理器节点下载我们的Node.js依赖关系:

sudo apt-get install npm

第2步 - 将Node.js绑定到端口80

我们希望我们的应用程序可以在端口80上访问。默认情况下,DocPad应用程序在端口9778上运行。在这一步中,我们将Node.js绑定到端口80,稍后我们将配置我们的DocPad应用程序在端口80。 通过这种方式,我们可以从获取到我们的网站http://example.com而非http://example.com:9778

要绑定的Node.js到端口80,首先确保libcap2斌安装:

sudo apt-get install libcap2-bin

在大多数系统上,这已经安装。 然后将Node.js绑定到端口80:

sudo setcap cap_net_bind_service=+ep /usr/bin/nodejs

稍后在教程中,我们将配置我们的DocPad应用程序使用端口80。

第3步 - 安装DocPad

接下来,我们将使用NPM来安装DocPad本身。

sudo npm install -g docpad

清理在docpad用户的主目录的权限,因为我们使用sudo来安装DocPad:

sudo chown -R docpad:docpad ~

如果您选择不同的用户运行DocPad,请将用户和组替换为您自己的用户名。

第4步 - 创建DocPad应用程序

在本节中,我们将在服务器上设置您的DocPad应用程序。 您可以使用Git存储库中的现有项目,也可以从头开始创建新的测试应用程序。

为项目创建一个目录。 它可以被称为什么,但是在这种情况下,我们将使用docpad_test。 然后移动到该目录。

mkdir ~/docpad_test
cd ~/docpad_test

第4步a - 下载现有DocPad应用程序及其依赖关系

如果您有现有的DocPad应用程序,请按照以下步骤将其部署到您的服务器。 首先,我们需要从其Git存储库下载完成的应用程序:

git clone path_to_git_repository

接下来,我们需要下载我们所有的DocPad应用程序的依赖:

npm install

如果您的应用程序还使用Bower组件,请运行:

bower install

第4步b - 创建新的DocPad应用程序

如果您还没有DocPad应用程序,可以创建一个新的。 在应用程序目录中,初始化一个新的DocPad应用程序:

docpad run

如果这是您第一次运行DocPad,请根据需要回答交互式对话问题:

Before we continue, have you read and agree to DocPad's Terms of Service (http://bevry.me/tos) and Privacy Policy (http://bevry.me/privacy)? [Y/n] y

Would you like to subscribe to our newsletter and stay up to date with the latest releases and tutorials? [Y/n] n

然后我们将被提示选择一个骨架来支撑我们的应用程序。 让我们选择Twitter Bootstrap (选项4 ),因为它为我们创造了一个样本网站,我们马上就可以看到,在浏览器中运行。

4

现在等待几分钟,而DocPad构建并启动您的应用程序。 您应该在成功部署结束时看到此输出:

info: Installed the skeleton succesfully
notice: Shutting down the global DocPad, and starting up the local
info: Welcome to DocPad v6.63.8 (local installation: /home/docpad/docpad_test/node_modules/docpad)
info: Contribute: http://docpad.org/docs/contribute
info: Plugins: cleanurls, coffeescript, downloader, eco, less, livereload, marked, partials, related, stylus, text
info: Environment: development
info: DocPad listening to http://0.0.0.0:9778/ on directory /home/docpad/docpad_test/out
info: LiveReload listening to new socket on channel /docpad-livereload
info: Generating...
info: Generated 168/173 files in 15.012 seconds
info: Watching setup starting...
info: Watching setup
info: The action completed successfully

该过程将在您的终端窗口中继续运行。

现在访问您的IP地址或域在端口9778:

  • http://example.com:9778

您应该看到默认的DocPad主页:

默认DocPad主页

我们将更新应用程序以在下一步中在端口80上运行,以便用户在访问您的域时不需要指示端口。

您现在可以通过按CTRL + C停止DocPad服务器。

如果您要查看的文件ls中的应用程序目录,你应该看到以下生成的文件和目录的引导骨架:

docpad.coffee  LICENSE.md  node_modules  out  package.json  Procfile  README.md  src

我们的应用程序的源代码在src。

第5步 - 将DocPad配置为在端口80上运行

您需要将下面的行添加到您的docpad.coffee配置文件,这样DocPad将运行在端口80上首先应用程序,打开该文件进行编辑:

nano ~/docpad_test/docpad.coffee

添加行port: 80的范围内docpadConfig = {}块。 端口线路需要是在块内的第一级。 您可以添加它作为后的第一行docpadConfig = {

docpadConfig = {

. . .

    port: 80

. . .

}

确保您位于应用程序目录中。 使用以下命令运行DocPad。 如果这是您第一次在服务器上运行DocPad,请接受条款和条件,并确保您的应用程序可以运行:

./node_modules/docpad/bin/docpad run

应用程式成功运行后,您应该可以浏览至您的网站网址,并在浏览器中查看您的网站。

如果你不能找到它,请尝试导航至http://example.com:9778 如果你看到它在那里,那是因为你的端口没有正确在配置docpad.coffee文件。 端口需要在第一级被指定docpadConfig对象。

现在通过按Ctrl + C终止进程。 在下一节中,我们将使应用程序成为一种服务,而不是每次都从命令行启动它。

第6步 - 使用Upstart运行DocPad即服务

在最后一步中,我们将为DocPad应用程序创建一个Upstart脚本。 这将允许您从命令行运行启动,停止,重新启动等命令的应用程序。 它将在您的服务器的后台运行,所以你不必保持SSH连接打开。 我们还将配置系统以在崩溃或服务器重新启动时自动重新启动应用程序。

创建Upstart脚本:

sudo nano /etc/init/docpad_test.conf

添加以下内容:

description "DocPad Test Application"

start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]

# If the process quits unexpectedly trigger a respawn
respawn

env HOME=/home/docpad/
chdir /home/docpad/docpad_test/

setuid docpad
setgid docpad

exec /home/docpad/docpad_test/node_modules/docpad/bin/docpad run
  • description :输入一个描述此服务
  • env HOME :您DocPad用户的主目录
  • chdir :应用程序根目录
  • setuidsetgid :您的DocPad用户(组应具有相同的名称)
  • exec :的完整路径,我们要运行的DocPad的版本; 这与之前用于启动应用程序的命令相同,除了它使用完整路径

欲了解更多有关Upstart,请参阅这篇文章

从命令行启动您的应用程序。 如果您呼叫以外的文件的东西docpad_test .conf你应该使用合适的服务名称:

sudo service docpad_test start

等待约30秒,让您的DocPad应用程序生成; 这时候会根据您的应用程序的大小不同而不同,大约需要尽可能多的时间,当你用手动启动它./node_modules/docpad/bin/docpad run

等待几秒钟后,在浏览器中导航到您的域或IP地址。 你应该看到你的DocPad生成的网站。

你完成了! 如果你想,发出sudo reboot到你的服务器,并确保应用程序来自动备份。

结论

您现在应该能够创建一个新的DocPad应用程序或克隆一个现有的DocPad应用程序,将其部署到您的Ubuntu服务器,并能够访问您的域。

要开始构建自己的网站与DocPad,请参阅文档