如何在 Rocky Linux 上安装 Wikijs
在此页
- 先决条件
- 在 Rocky Linux 上安装 Nodejs
- 安装 PostgreSQL 数据库
- 创建新数据库和用户
- 下载和配置 Wiki.js
- 将 Wiki.js 设置为系统服务
- 安装和配置 Nginx 作为 Wiki.js 的反向代理
- 使用 SSL Letsencrypt 保护 Wikijs
- 配置 Wiki.js 管理和默认主页
- 结论
Wiki.js 是一个用 JavaScript 编写并在 Node.js 运行时上运行的开源 wiki 软件,它在 APGL-v3 许可下发布。 Wiki.js 是一款轻量级、功能强大的 wiki 软件,具有美观直观的用户界面,专为现代网络设计。 Wiki.js 是一个非常可扩展的 wiki 软件,适用于不同类型的文档和部署,它可以用于技术和非技术人员。
Wiki.js 由各种类型的模块支持以扩展其功能并使其成为功能强大且可扩展的 wiki 软件。一些值得注意的默认 Wiki.js 功能如下所示:
- 支持多种数据库(PostgreSQL、MySQL、SQLite 和 MSSQL Server)。
- 多个编辑器,包括面向开发人员的 Markdown、面向非技术人员的 WYSIWYG、代码和表格(类似 Excel)
- 内置基于数据库的搜索引擎,还支持其他搜索引擎,如 Apache Solr、Elasticsearch 等。
- 支持多种数据存储备份,例如 Git、sFTP、AWS S3、Google Drive、Dropbox 等。
在本指南中,您将学习如何在 Rocky Linux 服务器上安装 Wiki.js。您将使用最新的 LTS 版本的 Node.js 安装 Wiki.js,使用 PostgreSQL 作为其主数据库,并使用 Nginx Web 服务器作为反向代理。
先决条件
- 一个 Rocky Linux 系统。确保所有包和存储库更新到最新版本
- 根用户或具有根权限的用户。您将使用此用户安装新软件包和编辑系统配置。
在 Rocky Linux 上安装 Node.js
首先,您将在 Rocky Linux 上安装 Node.js。默认情况下,AppStream 存储库提供多个 Node.js LTS 版本。
1. 通过运行以下命令检查 nodejs 的存储库模块。
sudo dnf module list nodejs
您将看到多个版本的 Node.js 模块。

2. 使用以下命令启用 nodejs:14 存储库模块。
sudo dnf module enable nodejs:14
键入 y 以启用 nodejs:14 存储库模块。

3. 接下来,执行以下命令安装 Node.js 和 npm 包。
sudo dnf install nodejs npm
键入 y 并按 Enter 确认安装。

4、安装完成后,执行以下命令查看Node.js和npm版本。
node --version
npm --version
您将看到如下类似的输出。
# Node.js version
v14.17.3
# NPM version
6.14.13
安装 PostgreSQL 数据库
在此阶段,您将从官方 PostgreSQL 存储库安装 PostgreSQL。对于生产环境,建议使用 PostgreSQL 作为 Wiki.js 的主数据库。
1、现在执行以下命令将PostgreSQL仓库添加到Rocky Linux系统中。
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2. 使用以下命令禁用默认的 Rocky Linux PostgreSQL 存储库。
sudo dnf module -qy disable postgresql
3. 接下来,运行以下命令将 PostgreSQL 13 安装到 Rocky Linux 服务器。
sudo dnf install postgresql13-server
键入 y 并按 Enter 以继续安装。

4、如果PostgreSQL安装完成,执行以下命令初始化PostgreSQL数据库,启动并启用PostgreSQL服务。
使用以下命令初始化 PostgreSQL 数据库。
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
使用以下命令使 PostgreSQL 在系统启动时自动启动。
sudo systemctl enable postgresql-13
现在启动 PostgreSQL 服务并使用以下命令检查其状态。
sudo systemctl start postgresql-13
sudo systemctl status postgresql-13
如果您的 PostgreSQL 服务正在运行,您将看到消息输出为活动(正在运行),如下面的屏幕截图所示。

创建新数据库和用户
安装 PostgreSQL 服务器后,您将为 Wiki.js 安装创建一个新的数据库和用户。
1. 执行以下命令登录PostgreSQL shell。
sudo -u postgres psql
2. 使用以下查询创建一个新的 PostgreSQL 用户名 wiki,密码为 wikijspassworddb。
CREATE USER wiki WITH
CREATEDB
PASSWORD 'wikijspassworddb';
3. 现在创建一个新的数据库名称 wikidb 并使用下面的 PostgreSQL 查询将用户 wiki 作为数据库的所有者。
CREATE DATABASE wikidb OWNER wiki;
现在键入 \q 退出 PostgreSQL shell。

或者,您可以使用以下查询验证用户和数据库。
# Check available users
\du
# Display list of databases
\l

下载和配置 Wiki.js
对于本指南,您将 Wiki.js 作为服务运行,并且它将以非根用户身份运行。
1. 执行下面的命令为 Wiki.js 安装创建一个新的用户 wiki。
sudo adduser --system --user-group --no-create-home --shell /sbin/nologin wiki
2. 创建一个新目录/var/wiki 并将工作目录更改到其中。然后运行 wget 命令下载最新稳定版的 Wiki.js 源代码。
mkdir -p /var/wiki; cd /var/wiki/
wget https://github.com/Requarks/wiki/releases/download/2.5.201/wiki-js.tar.gz

如果下载过程完成,请使用下面的 tar 命令提取 Wiki.js 源代码。
tar -xf wiki-js.tar.gz
3. 接下来,将 Wiki.js 示例配置复制到 config.yml 并使用 nano 对其进行编辑。
cp config.sample.yml config.yml
nano config.yml
更改数据库名称、用户和密码的详细信息,如下所示。
db:
type: postgres
# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
host: localhost
port: 5432
user: wiki
pass: wikijspassworddb
db: wikidb
ssl: false
将 # 放在 SQLite 存储选项前面,如下所示。
# SQLite only:
#storage: path/to/database.sqlite
将 bindIP 选项更改为 127.0.0.1 以仅在本地 IP 上运行 Wiki.js。
# ---------------------------------------------------------------------
# IP address the server should listen to
# ---------------------------------------------------------------------
# Leave 0.0.0.0 for all interfaces
bindIP: 127.0.0.1
按 Ctrl+x 按钮保存配置并退出,键入 y,然后按 Enter。
4. 接下来,最重要的是使用以下命令将 /var/wiki 目录的所有权更改为用户和组 wiki。
sudo chown -R wiki:wiki /var/wiki

将 Wiki.js 设置为系统服务
1. 要创建一个新的 systemd 服务文件,将工作目录更改为 /etc/systemd/system 并使用 nano 创建一个新的服务文件 wikijs.service。
cd /etc/systemd/system/
sudo nano wikijs.service
复制并粘贴以下配置。
[Unit]
Description=Wiki.js
After=network.target postgresql-13.service
[Service]
Type=simple
ExecStart=/bin/node server
Restart=always
# Consider creating a dedicated user for Wiki.js here:
User=wiki
Group=wiki
Environment=NODE_ENV=production
WorkingDirectory=/var/wiki
[Install]
WantedBy=multi-user.target
按 Ctrl+x,键入 y,然后按 Enter 保存配置并退出。
2. 重新加载 systemd-manager 以应用新的服务配置。
sudo systemctl daemon-reload
3. 接下来,使用以下命令使服务 wikijs 在系统启动时运行。
sudo systemctl enable wikijs

4. 启动 wikijs 服务并使用以下命令检查其状态。
sudo systemctl start wikijs
sudo systemctl status wikijs
现在您将看到 wikijs.service 处于活动状态并在 Rocky Linux 系统上运行。

安装和配置 Nginx 作为 Wiki.js 的反向代理
在此阶段,您将安装和配置 Nginx Web 服务器作为 Wiki.js 的反向代理。如果您已经在您的服务器上安装了 Nginx Web 服务器,请转到第 2 阶段以配置 Nginx 服务器块。
1. 要安装 Nginx Web 服务器,请执行下面的 dnf 命令。
sudo dnf install nginx
输入 y 以确认并安装 Nginx Web 服务器。

2. 如果安装完成,将工作目录更改为/etc/nginx/conf.d 并使用nano 创建一个新的Nginx 服务器块配置wikijs.conf。
cd /etc/nginx/conf.d/
sudo nano wikijs.conf
复制并粘贴以下配置,并确保将 server_name 选项的值更改为您的域名。
server {
listen 80;
server_name wiki.domain-name.io;
charset utf-8;
client_max_body_size 50M;
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;
}
}
按 Ctrl+x,键入 y,然后按 Enter 保存配置并退出。
3、接下来测试Nginx的配置,确保没有错误,然后开启Nginx服务。
sudo nginx -t
sudo systemctl enable nginx

4. 现在通过运行以下命令启动并检查 Nginx 服务的状态。
sudo systemctl start nginx
sudo systemctl enable nginx
您将看到 Nginx 服务的输出处于活动状态(正在运行),如下所示。

使用 SSL Letsencrypt 保护 Wikijs
在此阶段,您将使用 SSL Letsencrypt 保护 Wiki.js 安装。
1.执行以下命令安装certbot和certbot-nginx插件。
sudo dnf install certbot python3-certbot-nginx
2.安装完成后,使用下面的certbot命令为radicale域名生成一个新的SSL Letsencrtypt。
sudo certbot --nginx --agree-tos --email -d wiki.domain-name.io
您将在下面被问到一些问题。
- 一个电子邮件地址:当 SSL 证书过期时,您会收到此电子邮件的通知。
- Letsencrypt TOS(服务条款):输入 A 表示同意。
- 与 EFF 共享电子邮件:您可以选择 N 表示否。
- 自动将 HTTP 重定向到 HTTPS:选择数字 2 以启用自动重定向。
该过程完成后,您将在 /etc/letsencrypt/live/wiki.domain-name.io 目录中看到 SSL 证书可用。并且您的 Nginx 服务器块配置已更改为来自 letsencrypt 的附加配置。
配置 Wiki.js 管理和默认主页
打开您的 Web 浏览器并在地址栏中键入您的 Wiki.js 安装的 URL 地址。
1. 您将被重定向到 HTTPS 连接,您将看到以下页面。

使用您的电子邮件地址和密码键入管理员帐户的详细信息,然后键入您的 Wiki.js 域作为站点 URL,然后单击安装按钮。
等待 Wiki.js 安装。
2. 如果安装完成,您将被重定向到 Wiki.js 登录页面,如下所示。

输入您的管理员电子邮件地址和密码,然后单击“登录”按钮。
3. 你会看到 Wiki.js 的欢迎信息。

单击按钮 + 创建主页为您的 wiki 创建一个新主页。
4. 选择您喜欢的编辑器并单击该编辑器。对于这个例子,我们将使用 Markdown 编辑器。

5. 在“页面属性”弹出窗口中,键入详细信息标题和主页的简短描述。并将路径保留为默认主页。

单击确定以确认页面属性配置。
6. 输入您主页的内容,然后单击创建按钮保存。

7. 现在您将被重定向到您的 Wiki.js 主页,如下所示。

结论
恭喜!现在你已经在 Rocky Linux 服务器上使用 Wiki.js 成功创建了你的 Wiki。 Wiki.js 现在运行最新稳定版本的 Node.js、数据库 PostgreSQL 和 Nginx 反向代理。此外,它使用 SSL Letsencrypt 进行保护。对于下一步,您可以根据需要添加一些额外的模块,例如分析、身份验证、日志记录和代码/文本编辑器。您已准备好编写有关您的项目的文档。