如何在Fedora 29上安裝基於NodeJS的Wiki.js

如何在Fedora 29上安裝基於NodeJS的Wiki.js

Wiki.js是基於Node.js,Git和Markdown的開源,現代且功能強大的Wiki應用程序.Wiki.js在運行速度非常快的Node.js引擎上運行,並經過優化以節省CPU資源。值得一提的功能有:

  • Markdown編輯,由Git支持
  • 輕巧但功能強大
  • 專為現代網絡設計
  • 集成訪問控制
  • 直觀資產管理
  • 內置搜索引擎

在本教程中,我們將通過使用NGINX作為反向代理服務器,使用MongoDB作為數據庫服務器,使用PM2作為進程管理器,逐步引導您完成Fedora 29操作系統上Wiki.js版本1的安裝過程,並且可以選擇保護傳輸層通過使用 acme.sh 客戶端和讓我們加密證書頒發機構以添加SSL支持。

要求條件

運行Wiki.js的要求如下:

  • Node.js 6.11.1至10.x
  • MongoDB 3.2或更高版本。
  • Git 2.7.4或更高版本。
  • Web服務器軟件,例如NGINX,Apache,Caddy,H2O …
  • 空的Git存儲庫(可選)。
  • 至少512MB RAM。建議1GB RAM。
  • 大約300MB的磁盤空間。
  • 用A / AAAA DNS記錄設置域名。

先決條件

  • Fedora 29操作系統。
  • 具有以下權限的非root用戶 sudo 特權。

初始步驟

檢查您的Fedora版本:

cat /etc/fedora-release# Fedora release 29 (Twenty Nine)

設置時區:

timedatectl list-timezonessudo timedatectl set-timezone 'Region/City'

更新您的操作系統軟件包(軟件)。這是重要的第一步,因為它可以確保您擁有操作系統默認軟件包的最新更新和安全修復程序:

sudo dnf check-upgrade || sudo dnf upgrade -y

安裝一些基本軟件包,這些軟件包對於Fedora操作系統的基本管理是必需的:

sudo dnf install -y curl wget vim git unzip socat bash-completion

第1步-安裝Node.js和npm

Wiki.js建立在Node.js之上。我們將為Wiki.js安裝推薦的最新版本,即撰寫本文時的第10版。在Linux上,您可以使用一些Node.js安裝選項:Linux Binaries( x86 / x64),源代碼或通過程序包管理器。我們將使用“程序包管理”選項,使安裝和更新Node.js變得輕而易舉。

從Fedora存儲庫下載並安裝Node.js的最新長期支持(LTS)版本:

sudo dnf -y install nodejs

要從npm編譯並安裝本機加載項,您可能還需要安裝構建工具:

sudo dnf install -y gcc-c++ make# or# sudo dnf groupinstall -y 'Development Tools'

注意:Npm與Node.js一起分發-這意味着當您下載Node.js時,您會自動在系統上安裝npm。

檢查Node.js和npm版本:

node -v && npm -v# v10.15.0# 6.4.1

Npm是一個獨立於Node.js的項目,並且更新頻率更高。因此,即使您剛剛下載了Node.js(因此也下載了npm),您也可能需要更新npm。知道如何自我更新!要更新您的npm,請在終端中輸入以下內容:

sudo npm install -g [email protected]

此命令會將npm更新為最新的穩定版本。

使用以下命令重新檢查npm版本:

npm -v# 6.7.0

並且它應該返回最新的版本號。

第2步-安裝MongoDB數據庫

Wiki.js需要一個數據庫來存儲其數據,而Wiki.js的當前穩定版本僅支持MongoDB數據庫引擎,因此,我們將需要安裝MongoDB數據庫。

下載並安裝MongoDB數據庫:

sudo dnf install -y mongodb mongodb-server

檢查MongoDB版本:

mongo --version | head -n 1 && mongod --version | head -n 1# MongoDB shell version v4.0.1# db version v4.0.1

啟動並啟用(將其設置為在重新啟動時啟動)MongoDB服務(如果尚未啟動和啟用):

sudo systemctl start mongodb.servicesudo systemctl enable mongodb.service

步驟3:安裝 acme.sh 客戶端並獲取“讓我們加密”證書(可選)

不必使用HTTPS保護您的網站,但這是保護您的網站流量的一種很好的做法。為了從Let’s Encrypt獲得SSL證書,我們將使用 acme.sh 客戶 Acme.sh 是純UNIX shell軟件,用於從零依賴關係的Let’s Encrypt獲取SSL證書。

下載並安裝 acme.sh

sudo su - rootgit clone https://github.com/Neilpang/acme.sh.gitcd acme.sh ./acme.sh --install --accountemail [email protected]source ~/.bashrccd ~

檢查一下 acme.sh 版本號:

acme.sh --version# v2.8.1

獲得 RSAECC / ECDSA 您的域/主機名的證書:

# RSA 2048acme.sh --issue --standalone -d example.com --keylength 2048# ECDSAacme.sh --issue --standalone -d example.com --keylength ec-256

如果您想使用假證書進行測試,可以添加 --staging 標記上述命令。

要列出您頒發的證書,可以運行:

acme.sh --list

創建文件夾來存儲您的證書。我們將使用 /etc/letsencrypt 但這可以是您喜歡存儲SSL證書的任何內容。

mkdir -p /etc/letsencrypt/example.commkdir -p /etc/letsencrypt/example.com_ecc

將證書安裝/複製到/ etc / letsencrypt目錄。

# RSAacme.sh --install-cert -d example.com          --cert-file /etc/letsencrypt/example.com/cert.pem         --key-file /etc/letsencrypt/example.com/private.key         --fullchain-file /etc/letsencrypt/example.com/fullchain.pem         --reloadcmd "sudo systemctl reload nginx.service"# ECC/ECDSAacme.sh --install-cert -d example.com --ecc         --cert-file /etc/letsencrypt/example.com_ecc/cert.pem         --key-file /etc/letsencrypt/example.com_ecc/private.key         --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem         --reloadcmd "sudo systemctl reload nginx.service"

運行上述命令後,您的證書和密鑰將位於:

  • 對於 RSA:/等/ letencrypt/example.com 目錄。
  • 對於 ECC / ECDSA:/等/ letencrypt/example.com_ecc 目錄。

所有證書將每60天自動更新一次。

獲得證書後,從root用戶退出並返回到正常的sudo用戶:

exit

第4步-安裝和配置NGINX

Wiki.js(或任何HTTP Node.js應用程序)可以在沒有任何實際Web服務器(例如NGINX或Apache)的情況下運行,但是強烈建議在Wiki.js前面放置一個標準Web服務器。使用SSL,多個網站,緩存等功能。在本教程中,我們將使用NGINX,但是任何其他服務器都可以使用,您只需要正確配置它即可。

通過發出以下命令來安裝Nginx軟件包:

sudo dnf install -y nginx

安裝後,可以通過運行以下命令來驗證Nginx版本:

nginx -v# 1.14.1

啟動並啟用(將其設置為在重新啟動時啟動)Nginx服務:

sudo systemctl start nginx.servicesudo systemctl enable nginx.service

sudo vim /etc/nginx/conf.d/wiki.js.conf

sudo vim /etc/nginx/conf.d/wiki.js.conf

並將NGINX配置為HTTPS反向代理。

server {
        listen [::]:443 ssl http2;    listen 443 ssl http2;
    listen [::]:80;
    listen 80;
    
    server_name example.com;

    charset utf-8;
    client_max_body_size 50M;    ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;    ssl_certificate_key /etc/letsencrypt/example.com/private.key;    ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;    ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
    
    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_next_upstream error timeout http_502 http_503 http_504;
    }
    
}

您在上述配置中唯一需要更改的是 server_name 指令,ssl文件路徑中的域名,並可能 proxy_pass 如果您決定配置其他指令,則該指令 3000 Port.Wiki.js使用端口 3000 默認情況下。

檢查NGINX配置:

sudo nginx -t

最後,為了使更改生效,我們需要重新加載NGINX:

sudo systemctl reload nginx.service

第5步-安裝和設置Wiki.js

創建一個文檔根目錄,Wiki.js應該位於其中:

sudo mkdir -p /var/www/wiki.js

導航到文檔根目錄:

cd /var/www/wiki.js

為Wikijs創建用戶

sudo useradd -d /var/www/wiki.js wikijs

更改所有權 /var/www/wiki.js Wikijs用戶的目錄:

sudo chown -R wikijs:wikijs /var/www/wiki.js

來自 /var/www/wiki.js 目錄,運行以下命令以獲取並安裝最新的Wiki.js應用程序:

cd /var/www/wiki.jssudo su wikijs
curl -sSo- https://wiki.js.org/install.sh | bash

安裝完成後,可以運行以下命令以查看Wiki.js的當前安裝版本:

node wiki --version# 1.0.117

安裝完成後,將提示您啟動配置嚮導。

因此,通過運行以下命令啟動配置嚮導:

node wiki configure

使用網絡瀏覽器,導航到 http://example.com 並按照屏幕上的說明進行操作。在配置嚮導中輸入的所有設置均保存在 config.yml 文件。配置嚮導將自動為您啟動Wiki.js。

首先,您會看到一條歡迎消息。點擊“開始“按鈕:

將出現下一個“系統檢查”頁面。如果滿足所有要求,請單擊“繼續“按鈕。

系統檢查

輸入有關您的Wiki的常規信息,然後單擊“繼續“按鈕:

一般資訊

閱讀“重要注意事項”通知,然後單擊“繼續“下一步:

重要考慮

接下來,連接到數據庫並繼續:

數據庫連接

您應該會看到一條消息,說明Wiki.js已成功連接到數據庫。單擊“繼續“按鈕:

數據庫連接成功

設置路徑並繼續:

設定路徑

如果需要或跳過此步驟,請設置遠程Git存儲庫。此步驟是可選步驟,但強烈建議:

設置遠程GIT存儲庫

接下來,單擊“繼續”按鈕:

繼續安裝

創建一個管理員帳戶,然後點擊“繼續“按鈕:

創建一個管理員帳戶

最後,啟動Wiki.js:

啟動Wiki.js

等待大約30秒鐘,您應該重定向到Wiki.js主頁:

Wiki.js主頁

安裝完成。您應該在Wiki歡迎頁面上:

歡迎使用Wiki.js

第6步-設置PM2流程管理器

默認情況下,Wiki.js在系統重啟後不會自動啟動。為了使其在啟動時啟動,我們需要設置PM2進程管理器.PM2與Wiki.js捆綁在一起作為本地npm模塊,因此我們不需要全局安裝PM2。

告訴PM2通過運行以下命令將其自身配置為啟動服務:

/var/www/wiki.js/node_modules/pm2/bin/pm2 startup

最後,通過運行以下命令保存當前的PM2配置:

/var/www/wiki.js/node_modules/pm2/bin/pm2 save

您的Wiki.js現在作為後台進程運行,使用PM2作為其進程管理器。

Sidebar