如何在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