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

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

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

第二步 - 添加 Ghost 用户

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


  1. adduser ghost
  2. FILL With Your INFO

第三步 - 安装 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” 用户在 "/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 安装和配置 Nginx

默认情况下,ghost 会以独立模式运行,你可以不用 Nginx、apache 或 IIS web 服务器直接运行它。但在这篇指南中我们会安装和配置 nginx 和 ghost 一起使用。

用 pkg 命令从 freebsd 库中安装 nginx:


  1. pkg install nginx

下一步,进入 nginx 配置目录并为 virtualhost 配置创建新的目录。


  1. cd /usr/local/etc/nginx/
  2. mkdir virtualhost/

进入 virtualhost 目录,用 nano 编辑器创建名为 ghost.conf 的新文件:


  1. cd virtualhost/
  2. nano -c ghost.conf

粘贴下面的 virtualhost 配置:


  1. server {
  2. listen 80;
  3. #Your Domain
  4. server_name ghost.me;
  5. location ~* \.(?:ico|css|js|gif|jpe?g|png|ttf|woff)$ {
  6. access_log off;
  7. expires 30d;
  8. add_header Pragma public;
  9. add_header Cache-Control "public, mustrevalidate, proxy-revalidate";
  10. proxy_pass http://127.0.0.1:2368;
  11. }
  12. location / {
  13. add_header X-XSS-Protection "1; mode=block";
  14. add_header Cache-Control "public, max-age=0";
  15. add_header Content-Security-Policy "script-src 'self' ; font-src 'self' ; connect-src 'self' ; block-all-mixed-content; reflected-xss block; referrer no-referrer";
  16. add_header X-Content-Type-Options nosniff;
  17. add_header X-Frame-Options DENY;
  18. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  19. proxy_set_header Host $http_host;
  20. proxy_set_header X-Forwarded-Proto $scheme;
  21. proxy_pass http://127.0.0.1:2368;
  22. }
  23. location = /robots.txt { access_log off; log_not_found off; }
  24. location = /favicon.ico { access_log off; log_not_found off; }
  25. location ~ /\.ht {
  26. deny all;
  27. }
  28. }

保存并退出。

要启用 virtualhost 配置,你需要把那个文件添加到 nginx.conf。进入 nginx 配置目录并编辑 nginx.conf 文件:


  1. cd /usr/local/etc/nginx/
  2. nano -c nginx.conf

在最后一行的前面,包含 virtualhost 配置目录:


  1. [......]
  2. include virtualhost/*.conf;
  3. }

保存并退出。

用命令 "nginx -t" 测试 nginx 配置,如果没有错误,用 sysrc 添加 nginx 到开机启动:


  1. sysrc nginx_enable=yes

并启动 nginx:


  1. service nginx start

现在测试所有 nginx 和 virtualhost 配置。请打开你的浏览器并输入: ghost.me

Ghost.me 正在成功运行。

如果你想要检查 nginx 服务器,可以使用 "curl" 命令。

Ghost 正在 nginx 上运行。

总结

Node.js 是 Ryan Dahl 为创建和开发可扩展服务器端应用程序创建的运行时环境。Ghost 是使用 node.js 编写的开源博客平台,它有漂亮的外观设计并且易于使用。默认情况下,ghost 是可以单独运行的 web 应用程序,并不需要类似 apache、nginx 或 IIS 之类的 web 服务器,但我们也可以和 web 服务器集成(在这篇指南中使用 Nginx)。Sqlite 是 ghost 默认使用的数据库,它还支持 msql/mariadb 和 postgresql。Ghost 能快速部署并且易于使用和配置。

本文来自合作伙伴“Linux中国”

原文发布时间为:2013-04-02.

时间: 2024-08-04 07:23:35

如何在 FreeBSD 10.2 上安装使用 Nginx 的 Ghost的相关文章

如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理

如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理 Nginx 是一款自由开源的 HTTP 和反向代理服务器,也可以用作 POP3/IMAP 的邮件代理服务器.Nginx 是一款高性能的 web 服务器,其特点是功能丰富,结构简单以及内存占用低. 第一个版本由 Igor Sysoev 发布于2002年,到现在有很多大型科技公司在使用,包括 Netflix. Github. Cloudflare. WordPress.com 等等. 在这篇教程里我们会"在 fre

如何在Ubuntu 16.04上安装OTRS(开源问题单系统)

OTRS ,即开源问题单(ticket)申请系统,是一个用于客户服务.帮助台和 IT 服务管理的开源问题单软件.该软件是用 Perl 和 javascript 编写的.对于那些需要管理票据.投诉.支持请求或其他类型的报告的公司和组织来说,这是一个问题单解决方案.OTRS 支持包括 MySQL.PostgreSQL.Oracle 和 SQL Server 在内的多个数据库系统,它是一个可以安装在 Windows 和 Linux 上的多平台软件. 在本教程中,我将介绍如何在 Ubuntu 16.04

在 FreeBSD 10.1中安装 Mate 桌面

在 FreeBSD 10.1中安装 Mate 桌面 FreeBSD是全文本模式的系统,然而有些新用户想要使用GUI桌面环境.这个教程就是帮助你在Freebsd 10.1中安装Mate桌面. 下面是我的系统细节: root@Freebsd-unixmen:~ # uname -a FreeBSD Freebsd-unixmen 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov 11 21:02:49 UTC 2014 root@releng

如何在Ubuntu 14.04上安装轻量级web服务器Cherokee

如何在Ubuntu 14.04上安装轻量级web服务器Cherokee Cherokee 是一个免费,开源,高性能轻量级的全功能web服务器,支持大部分主流操作系统(Linux. Mac OS X. Solaris 和 BSD).它支持TLS/SSL.FastCGI. SCGI. PHP. uWSGI. SSI. CGI. LDAP. HTTP代理. 视频流处理. 内容缓存. 流量控制. 虚拟主机.Apache兼容的日志文件,以及负载均衡等功能. 今天我们介绍一下怎样在Ubuntu Server

如何在MacBook Pro Retina上安装Linux

如何在MacBook Pro Retina上安装Linux MacBook Pro拥有非常强大的配置,但是有些人想强上加强,他们想用Linux系统. 不管您是想要更开放和个性化的操作系统又或者是您只想要使用某些在Linux特有的软件,您都会想要在您的MacBook上安装Linux. 可惜的是MacBook Pro们可是一块块密不透风砖头,让您想装其他系统又无从下手.尤其是Linux,比在MacBook上装Windows还难. Boot Camp对于Linux来说也没有什么用处. 虽然如此,但并不

Linux有问必答:如何在Debian或Ubuntu上安装完整的内核源码

Linux有问必答:如何在Debian或Ubuntu上安装完整的内核源码 问题:我需要为我的Debian或Ubuntu下载并安装完整树结构的内核源码以供编译一个定制的内核.那么在Debian或Ubuntu上有什么可行的方法来下载完整的内核源码呢? 在给你的Linux安装完整内核源码之前,先问问自己是否真的需要这样做.如果你仅仅是尝试去编译一个内核模块或是为内核定制驱动,你并不需要完整的内核源码树.你只需要安装一些与内核对应的头文件,这样就足够了. 只有在你需要生成一个定制的内核,而且内核源码中的

怎样在 Ubuntu 14.10 Server 上安装 Cacti

怎样在 Ubuntu 14.10 Server 上安装 Cacti Cacti 是一个完善的网络监控的图形化解决方案,它被设计用来发挥 RRDTool (一个 Linux 数据存储和绘图工具)的数据存储和绘图的强大功能.Cacti 提供一个快速的轮询器,高级的绘图模版,多种数据获取方法和用户管理功能,并且可以开箱即用.所有的这些都被打包进一个直观,易用的界面,可用于监控简单的 LAN 网络,乃至包含成百上千设备的复杂网络. 功能 绘图 没有数量限制的监控图条目(graph item),每个图形可

在Ubuntu10.10和10.04上安装LibreOffice ppa

现在可以通过添加LibreOffice ppa,很容易的在http://www.aliyun.com/zixun/aggregation/13835.html">Ubuntu10.10和10.04上安装了. 安装步骤如下 第一步:用命令删除Openoffice sudo apt-get purge "openoffice*.*" 第二步:在Ubuntu 10.10 和10.04添加LibreOffice PPA sudo add-apt-repository ppa:l

如何在 Ubuntu 15.04 上安装带 JSON 支持的 SQLite 3.9.1

如何在 Ubuntu 15.04 上安装带 JSON 支持的 SQLite 3.9.1 欢迎阅读我们关于SQLite 的文章,SQLite 是当今世界上使用最广泛的 SQL 数据库引擎,它基本不需要配置,不需要设置或管理就可以运行.SQLite 是一个是公开领域public-domain的软件,是一个关系型数据库管理系统(RDBMS),用来在一个大数据表中存储用户定义的记录.对于数据存储和管理来说,数据库引擎要处理复杂的查询命令,这些命令可能会从多个表获取数据然后生成报告和数据总结. SQLit