如何在Ubuntu 18.04/CentOS 7上安装Wiki.js

时间:2020-02-23 14:30:55  来源:igfitidea点击:

本指南将引导我们完成在Ubuntu 18.04和CentOS 7上安装Wiki.js NodeJS Wiki应用程序的步骤。
Wiki.js是基于Node.js,Git和Markdown构建的开源,现代且功能强大的Wiki应用程序。
Wiki.js在Linux,macOS和Windows操作系统上运行。

在Wiki.js中,我们可以使用内置的可视化编辑器以广泛使用的简单Markdown格式编写所有内容。
内容直接保存到Markdown(.md)文件中,并自动与远程Git存储库同步。
所有内容都可以直接从Git存储库中读取。

Wiki.js的功能

为简单的Markdown格式的现代webEdit内容设计精美,具有集成访问控制–本地数据库或者外部身份验证提供程序,例如Microsoft帐户,Google ID,Facebook,GitHub,Slack或者LDAP(活动目录)。
内置的搜索引擎免费使用且开源

服务器要求

Node.js 6.9.0或者更高版本MongoDB 3.2或者更高版本Git 2.7.4或者更高版本兼容Git的存储库(公共或者私有)(可选)

注意版本 gitCentOS 7储存库中可用的版本有点旧,请使用指南如何在CentOS 7上安装最新版本的Git(Git 2.x)安装最新版本的git。

我们将使用Nginx代理Wiki.js访问和 pm2在启动时启动应用程序。

步骤1:安装Node.js 10.x和Nginx

在CentOS 7上

curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash 
sudo yum install -y nodejs nginx gcc-c++ make
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum -y install yarn

对于Ubuntu 18.04/Ubuntu 16.04

curl -sL https://deb.nodesource.com/setup_10.x | sudo bash 
sudo apt -y install nodejs

步骤2:安装MongoDB

Wiki.js将管理数据(例如用户,权限和资产元数据)存储在MongoDB数据库中。
文章内容和上传内容均未存储在数据库中。
相反,它们存储在磁盘上并与我们选择的远程git存储库自动同步使用我们的指南来安装MongoDB如何在CentOS 7上安装MongoDB 4如何在Ubuntu 18.04/Ubuntu 16.04上安装最新的MongoDB

步骤3:下载并安装Wiki.js

创建一个项目目录

mkdir /srv/wikijs

切换到项目目录

cd /srv/wikijs

安装Wikijs

VERSION=$(curl -L -s -S https://beta.requarks.io/api/version/stable)
curl -L -s -S https://github.com/Requarks/wiki/releases/download/v$VERSION/wiki-js.tar.gz | tar xz -C .
curl -L -s -S https://github.com/Requarks/wiki/releases/download/v$VERSION/node_modules.tar.gz | tar xz -C .

创建Wiki配置文件

cp -n config.sample.yml config.yml

要查看已安装的版本,请使用

# node wiki --version
1.0.102

步骤4:配置Wiki.js

通过运行以下命令来启动配置向导:

node wiki configure

要使用自定义端口,请使用以下命令:

node wiki configure 1234

其中1234是自定义端口。
举例来说,我将Wiki.js配置为使用端口 8080在我的服务器上

node wiki configure 8080

将此终端保持活动状态,然后打开一个新的终端会话以配置nginx

sudo vim /etc/nginx/conf.d/wikijs.conf

为了 http没有ssl的连接,添加:

# Wikijs Nginx configuration file
server {
    listen      80;
    server_name wiki.example.com;
    location/{
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:8080;
        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;
    }
}

以下配置代码段用于http和https,但具有从http到https的重定向。

# Redirect http to https
server {
    listen      80;
    server_name wiki.example.com;
    return      301 https://$server_name$request_uri;
}
# Serve https traffic
server {
    listen 443 ssl http2;
    server_name  wiki.example.com;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/wiki.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/wiki.example.com/privkey.pem;
    ssl_session_timeout 5m;
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    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;
    }
}

重新开始 nginx服务并确保将其设置为在启动时启动

sudo systemctl restart nginx
sudo systemctl enable nginx

现在打开链接 http://wiki.example.com/并按照安装向导进行操作:

确保依赖性检查返回成功

设置标题

设置MongoDB数据库连接如果MongoDB与Wiki.js安装在同一主机上,请使用:连接字符串: mongodb://localhost:27017/wiki

成功安装后,我们应该已准备好开始使用该页面。

登录到Wiki.js仪表板以开始添加内容

要停止Wiki.js,请运行以下命令:

node wiki stop

重新启动Wiki.js要重新启动Wiki.js,请运行以下命令:

node wiki restart

在配置向导中输入的所有设置都保存在文件中 config.yml

步骤5:将Wiki.js配置为在启动时启动

默认情况下,Wiki.js在系统重启后不会自动启动。
为了使其在启动时启动,我们需要进行设置 pm2作为全局npm模块并将其设置为启动服务:PM2是具有内置负载均衡器的Node.js应用程序的生产过程管理器。

npm install -g pm2

现在,我们需要告诉pm2将其自身配置为启动服务。

pm2 startup

最后,通过运行以下命令保存当前的pm2配置:

pm2 save

要通过以下方式删除初始化脚本:

pm2 unstartup systemd