手机版
你好,游客 登录 注册
背景:
阅读新闻

如何在 FreeBSD 10.2 上安装使用 Nginx 的 Ghost

[日期:2016-03-17] 来源:Linux中国  作者:Linux [字体: ]

Node.js 是用于开发服务器端应用程序的开源的运行时环境。Node.js 应用使用 JavaScript 编写,能在任何有 Node.js 运行时的服务器上运行。它跨平台支持 Linux、Windows、OSX、IBM AIX,也包括 FreeBSD。Node.js 是 Ryan Dahl 以及在 Joyent 工作的其他开发者于 2009 年创建的。它的设计目标就是构建可扩展的网络应用程序。

Ghost 是使用 Node.js 编写的博客平台。它不仅开源,而且有很漂亮的界面设计、对用户友好并且免费。它允许你快速地在网络上发布内容,或者创建你的混合网站。

在这篇指南中我们会在 FreeBSD 上安装使用 Nginx 作为 web 服务器的 Ghost。我们会在 FreeBSD 10.2 上安装 Node.js、Npm、nginx 和 sqlite3。

 

第一步 - 安装 Node.js npm 和 Sqlite3

如果你想在你的服务器上运行 ghost,你必须安装 node.js。在这一部分,我们会从 freebsd 移植软件库中安装 node.js,请进入库目录 "/usr/ports/www/node" 并通过运行命令 "make" 安装。

  1. cd/usr/ports/www/node
  2. make install clean

如果你已经安装了 node.js,那就进入到 npm 目录并安装它。npm 是用于安装、发布和管理 node 程序的软件包管理器。

  1. cd/usr/ports/www/npm/
  2. make install clean

下一步,安装 sqlite3。默认情况下 ghost 使用 sqlite3 作为数据库系统,但它也支持 mysql/mariadb 和 postgresql。我们会使用 sqlite3 作为默认数据库。

  1. cd/usr/ports/databases/sqlite3/
  2. make install clean

如果安装完了所有软件,还有检查 node.js 和 npm 的版本:

  1. node --version
  2. v0.12.6
  3. npm --version
  4. 2.11.3
  5. sqlite3 --version
  6. 3.8.10.2

node 和 npm 版本

node 和 npm 版本

 

第二步 - 添加 Ghost 用户

我们会以普通用户 "ghost" 身份安装和运行 ghost。用 "adduser" 命令添加新用户:

  1. adduser ghost
  2. FILL WithYour INFO

添加用户 Ghost

添加用户 Ghost

 

第三步 - 安装 Ghost

我们会把 ghost 安装到 "/var/www/" 目录,首先新建目录然后进入到安装目录:

  1. mkdir-p /var/www/
  2. cd/var/www/

用 wget 命令下载最新版本的 ghost:

  1. wget--no-check-certificate https://ghost.org/zip/ghost-latest.zip

把它解压到 "ghost" 目录:

  1. unzip -d ghost ghost-latest.zip

下一步,更改属主为 "ghost",我们会以这个用户安装和运行它。

  1. chown-R ghost:ghost ghost/

都做完了的话,通过输入以下命令切换到 "ghost" 用户:

  1. su- ghost

然后进入到安装目录"/var/www/ghost/":

  1. cd/var/www/ghost/

在安装 ghost 之前,我们需要为 node.js 安装 sqlite3 模块,用 npm 命令安装:

  1. setenv CXX c++; npm install sqlite3 --sqlite=/usr/local

注意: 以 “ghost” 用户运行,而不是 root 用户。

现在,我们准备好安装 ghost 了,用 npm 命令安装:

  1. npm install --production

下一步,复制配置文件 "config.example.js" 为 "config.js",用 nano 编辑器编辑:

  1. cp config.example.js config.js
  2. nano-c config.js

更改 server 模块的第 25 行:

  1. host:'0.0.0.0',

保存并退出。

现在用下面的命令运行 ghost:

  1. npm start --production

通过访问服务器 ip 和 2368 号端口验证一下。

Ghost 安装完成

Ghost 安装完成

以 “ghost” 用户在 "/var/www/ghost" 目录安装了 ghost。

 

第四步 - 作为 FreeBSD 服务运行 Ghost

要在 freebsd 上以服务形式运行应用,你需要在 rc.d 目录添加脚本。我们会在 "/usr/local/etc/rc.d/" 目录为 ghost 创建新的服务脚本。

在创建服务脚本之前,为了以服务形式运行 ghost,我们需要安装一个 node.js 模块,用 npm 命令以 sudo/root 权限安装 forever 模块:

  1. npm install forever -g

现在进入到 rc.d 目录并创建名为 ghost 的新文件:

  1. cd/usr/local/etc/rc.d/
  2. nano-c ghost

粘贴下面的服务脚本:

  1. #!/bin/sh
  2. # PROVIDE: ghost
  3. # KEYWORD:shutdown
  4. PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
  5. ./etc/rc.subr
  6. name="ghost"
  7. rcvar="ghost_enable"
  8. extra_commands="status"
  9. load_rc_config ghost
  10. : ${ghost_enable:="NO"}
  11. status_cmd="ghost_status"
  12. start_cmd="ghost_start"
  13. stop_cmd="ghost_stop"
  14. restart_cmd="ghost_restart"
  15. ghost="/var/www/ghost"
  16. log="/var/log/ghost/ghost.log"
  17. ghost_start(){
  18. sudo-u ghost sh -c "cd $ghost && NODE_ENV=production forever start -al $log index.js"
  19. }
  20. ghost_stop(){
  21. sudo-u ghost sh -c "cd $ghost && NODE_ENV=production forever stop index.js"
  22. }
  23. ghost_status(){
  24. sudo-u ghost sh -c "NODE_ENV=production forever list"
  25. }
  26. ghost_restart(){
  27. ghost_stop;
  28. ghost_start;
  29. }
  30. run_rc_command "$1"

保存并退出。

下一步,给 ghost 服务脚本添加可执行权限:

  1. chmod+x ghost

为 ghost 日志创建新的目录和文件,并把属主修改为 ghost 用户:

  1. mkdir-p /var/www/ghost/
  2. touch/var/www/ghost/ghost.log
  3. chown-R /var/www/ghost/

最后,如果你想运行 ghost 服务,你需要用 sysrc 命令添加 ghost 服务到开机启动应用程序:

  1. sysrc ghost_enable=yes

用以下命令启动 ghost:

  1. service ghost start

其它命令:

  1. service ghost stop
  2. service ghost status
  3. service ghost restart

Ghost 服务命令

Ghost 服务命令

更多详情见请继续阅读下一页的精彩内容http://www.linuxidc.com/Linux/2016-03/129259p2.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款