如何在 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” 安裝。
cd /usr/ports/www/node make install clean
如果你已經安裝了 node.js,那就進入到 npm 目錄並安裝它。npm 是用於安裝、釋出和管理 node 程式的軟體包管理器。
cd /usr/ports/www/npm/ make install clean
下一步,安裝 sqlite3。預設情況下 ghost 使用 sqlite3 作為資料庫系統,但它也支援 mysql/mariadb 和 postgresql。我們會使用 sqlite3 作為預設資料庫。
cd /usr/ports/databases/sqlite3/ make install clean
如果安裝完了所有軟體,還有檢查 node.js 和 npm 的版本:
node --version v0.12.6 npm --version 2.11.3 sqlite3 --version 3.8.10.2
第二步 – 新增 Ghost 使用者
我們會以普通使用者 “ghost” 身份安裝和執行 ghost。用 “adduser” 命令新增新使用者:
adduser ghost FILL With Your INFO
第三步 – 安裝 Ghost
我們會把 ghost 安裝到 “/var/www/” 目錄,首先新建目錄然後進入到安裝目錄:
mkdir -p /var/www/ cd /var/www/
用 wget 命令下載最新版本的 ghost:
wget --no-check-certificate https://ghost.org/zip/ghost-latest.zip
把它解壓到 “ghost” 目錄:
unzip -d ghost ghost-latest.zip
下一步,更改屬主為 “ghost“,我們會以這個使用者安裝和執行它。
chown -R ghost:ghost ghost/
都做完了的話,通過輸入以下命令切換到 “ghost” 使用者:
su - ghost
然後進入到安裝目錄”/var/www/ghost/”:
cd /var/www/ghost/
在安裝 ghost 之前,我們需要為 node.js 安裝 sqlite3 模組,用 npm 命令安裝:
setenv CXX c++ ; npm install sqlite3 --sqlite=/usr/local
注意: 以 “ghost” 使用者執行,而不是 root 使用者。
現在,我們準備好安裝 ghost 了,用 npm 命令安裝:
npm install --production
下一步,複製配置檔案 “config.example.js” 為 “config.js“,用 nano 編輯器編輯:
cp config.example.js config.js nano -c config.js
更改 server 模組的第 25 行:
host: '0.0.0.0',
儲存並退出。
現在用下面的命令執行 ghost:
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 模組:
npm install forever -g
現在進入到 rc.d 目錄並建立名為 ghost 的新檔案:
cd /usr/local/etc/rc.d/ nano -c ghost
貼上下面的服務指令碼:
#!/bin/sh # PROVIDE: ghost # KEYWORD: shutdown PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" . /etc/rc.subr name="ghost" rcvar="ghost_enable" extra_commands="status" load_rc_config ghost : ${ghost_enable:="NO"} status_cmd="ghost_status" start_cmd="ghost_start" stop_cmd="ghost_stop" restart_cmd="ghost_restart" ghost="/var/www/ghost" log="/var/log/ghost/ghost.log" ghost_start() { sudo -u ghost sh -c "cd $ghost && NODE_ENV=production forever start -al $log index.js" } ghost_stop() { sudo -u ghost sh -c "cd $ghost && NODE_ENV=production forever stop index.js" } ghost_status() { sudo -u ghost sh -c "NODE_ENV=production forever list" } ghost_restart() { ghost_stop; ghost_start; } run_rc_command "$1"
儲存並退出。
下一步,給 ghost 服務指令碼新增可執行許可權:
chmod +x ghost
為 ghost 日誌建立新的目錄和檔案,並把屬主修改為 ghost 使用者:
mkdir -p /var/www/ghost/ touch /var/www/ghost/ghost.log chown -R /var/www/ghost/
最後,如果你想執行 ghost 服務,你需要用 sysrc 命令新增 ghost 服務到開機啟動應用程式:
sysrc ghost_enable=yes
用以下命令啟動 ghost:
service ghost start
其它命令:
service ghost stop service ghost status service ghost restart
第五步 – 為 Ghost 安裝和配置 Nginx
預設情況下,ghost 會以獨立模式執行,你可以不用 Nginx、apache 或 IIS web 伺服器直接執行它。但在這篇指南中我們會安裝和配置 nginx 和 ghost 一起使用。
用 pkg 命令從 freebsd 庫中安裝 nginx:
pkg install nginx
下一步,進入 nginx 配置目錄併為 virtualhost 配置建立新的目錄。
cd /usr/local/etc/nginx/ mkdir virtualhost/
進入 virtualhost 目錄,用 nano 編輯器建立名為 ghost.conf 的新檔案:
cd virtualhost/ nano -c ghost.conf
貼上下面的 virtualhost 配置:
server { listen 80; #Your Domain server_name ghost.me; location ~* /.(?:ico|css|js|gif|jpe?g|png|ttf|woff)$ { access_log off; expires 30d; add_header Pragma public; add_header Cache-Control "public, mustrevalidate, proxy-revalidate"; proxy_pass http://127.0.0.1:2368; } location / { add_header X-XSS-Protection "1; mode=block"; add_header Cache-Control "public, max-age=0"; add_header Content-Security-Policy "script-src 'self' ; font-src 'self' ; connect-src 'self' ; block-all-mixed-content; reflected-xss block; referrer no-referrer"; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options DENY; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:2368; } location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; } location ~ //.ht { deny all; } }
儲存並退出。
要啟用 virtualhost 配置,你需要把那個檔案新增到 nginx.conf。進入 nginx 配置目錄並編輯 nginx.conf 檔案:
cd /usr/local/etc/nginx/ nano -c nginx.conf
在最後一行的前面,包含 virtualhost 配置目錄:
[......] include virtualhost/*.conf; }
儲存並退出。
用命令 “nginx -t” 測試 nginx 配置,如果沒有錯誤,用 sysrc 新增 nginx 到開機啟動:
sysrc nginx_enable=yes
並啟動 nginx:
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 能快速部署並且易於使用和配置。
相關文章
- 如何在FreeBSD中安裝Nginx,MySQL,PHP(FEMP)NginxMySqlPHP
- 如何在 CentOS 7 上安裝 NginxCentOSNginx
- 如何在Ubuntu Server 14.04 LTS(Trusty) 上安裝GhostUbuntuServerRust
- 如何在樹莓派 2B 上安裝 FreeBSD樹莓派
- FreeBSD安裝配置Nginx+PHP+APC+MySQLNginxPHPMySql
- Freebsd P怎麼安裝?Freebsd PF 安裝使用詳解
- centos上nginx的安裝CentOSNginx
- FreeBSD系統上如何安裝Bugzilla?FreeBSD系統安裝Bugzilla的方法教程
- CentOS 上安裝 NginxCentOSNginx
- Mac上安裝NginxMacNginx
- 如何在FreeBSD 13中安裝MySQL資料庫MySql資料庫
- 使用FreeBSD的ports安裝hadoop薦Hadoop
- 在FreeBSD上安裝Linuxigd(轉)Linux
- Nginx 安裝使用Nginx
- Nginx的安裝配置使用Nginx
- 如何在 Fedora 30 Server 上安裝 LEMP(Linux、Nginx、MariaDB、PHP)ServerLinuxNginxPHP
- 如何在 Ubuntu 上安裝和使用 R 語言Ubuntu
- 如何在 VirtualBox 上安裝並使用 FreeDOS?
- FreeBSD安裝VMTools
- 如何在 MacOS 上安裝 ElasticsearchMacElasticsearch
- 如何在 Ubuntu 上安裝 MongoDBUbuntuMongoDB
- 如何在Windows上安裝DockerWindowsDocker
- 如何在 Ubuntu 上安裝 OctoberCMSUbuntu
- 如何在 Virtuozzo 上安裝 Plesk
- Nginx安裝與使用Nginx
- 使用docker安裝nginxDockerNginx
- nginx 安裝和使用Nginx
- 在 Mac OSX 上安裝 nginxMacNginx
- HP-UX (11.11)上安裝Oracle10.2的RACUXOracle
- ghost win10安裝defender的詳細步驟_ghost win10安裝defender操作教程Win10
- 教你如何在 CentOS 上安裝RedisCentOSRedis
- 如何在 Linux 上安裝 JavaLinuxJava
- 如何在LibreELEC上安裝Entware?
- 如何在 MacOS 上安裝 KibanaMac
- 如何在 Ubuntu 上安裝 VirtualBoxUbuntu
- 如何在IIS上安裝證書
- 如何在debain上安裝mysql 5.7AIMySql
- 如何在 CentOS 7 上安裝 DockerCentOSDocker