在树莓派4型号B(Ubuntu系统)中安装GROWI
首先
这篇文章记录了之前在 Raspberry Pi 4 Model B(以下简称RP4B)上手动构建私人Wiki平台GROWI的步骤,因为使用官方的Docker镜像安装不成功,所以尝试了手动操作。
本文假设Raspberry Pi 4B的初始设置已经预先完成,因此不会对其进行讨论。
環境 – 生活環境、周圍的情況或條件。
-
- Raspberry Pi 4 Model B 4GB (32GB MicroSD)
-
- Ubuntu Server 19.10.1 (64bit)
- GROWI 3.7.5
本文假设涉及各种网络地址如下。
-
- ローカルネットワークの IP アドレス範囲は 192.168.1.0/24 とする。
- 対象となる RP4B の IP アドレスは 192.168.1.10 とする。
参考页面
-
- GROWI 公式ドキュメント
-
- RP3 Elasticsearch 導入事例
- Elasticsearch 公式ドキュメント
Node.js (无需须多个选项)
-
- nodejs 12.16.3
-
- npm 6.14.4
- yarn 1.22.4
虽然对这方面的记忆有些模糊,但基本上按照官方文档的步骤应该就可以了。
但是从 GROWI 3.6 版本开始,需要使用 nodejs 的版本是 10.x 或 12.x,所以只需在这一点上修改。
$ cd ~
$ curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh
$ sudo bash nodesource_setup.sh
$ sudo apt install nodejs
$ sudo npm install -g yarn # グローバルインストール
成功安装 Node.js 后,将会创建以下文件并添加到存储库中。
deb https://deb.nodesource.com/node_12.x eoan main
deb-src https://deb.nodesource.com/node_12.x eoan main
弹性搜索
-
- elasticsearch 6.8.8
- openjdk 8 (1.8.0_252)
我参考了这个地方做了。
首先,引入Java.
$ sudo apt install openjdk-8-jre
如果安装了多个版本的Java,请使用以下命令进行切换(可能不必要)。
(参考网站:http://note.kurodigi.com/post-0-2/)
$ sudo update-alternatives -config java
# インストール済みバージョンが列挙される。
# 使用したいバージョンの番号を入力して Enter を押す。
下载并解压Elasticsearch的存档文件。
推荐安装最新的6.x系列版本,请在官方网站上确认。
Elasticsearch存在一个陷阱,即不能使用root用户来启动。
因此,最好将其解压到任意非root用户的主目录下。
本次将其解压到/home/{username}/.local/elasticsearch-6.8.8/目录下。
$ cd ~
$ mkdir .local
$ chmod 755 .local
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.8.tar.gz
$ tar zxvf elasticsearch-6.8.8.tar.gz -C .local
$ cd .local
$ ln -s elasticsearch-6.8.8 elasticsearch # シンボリックリンク作成
$ echo "xpack.ml.enabled: false" >> elasticsearch/config/elasticsearch.yml # X-Pack Machine Learning が ARM 環境下では動作しないので無効にする。
进行动作测试。
$ cd ~
$ cd .local/elasticsearch
$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64
$ ./bin/elasticsearch & # バックグラウンドプロセスとして起動
$ curl http://localhost:9200
服务化
先按照此处的参考内容进行服务注册。
首先,使用su权限创建elasticsearch.service文件。
[Unit]
After=syslog.target network.target
[Service]
Environment="JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64"
ExecStart=/home/{username}/.local/elasticsearch/bin/elasticsearch
WorkingDirectory=/home/{username}/.local/elasticsearch
User={username}
Group={groupname}
Nice=10
SyslogIdentifier=Elasticsearch
StandardOutput=syslog
Restart=on-failure
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
确认可否启动后,设置自动启动。
$ sudo systemctl start elasticsearch # 手動起動
$ sudo systemctl status elasticsearch # 正常に動作しているか確認
$ sudo systemctl enable elasticsearch # 自動起動設定
安装插件
-
- analysis-kuromoji
- analysis-icu
$ cd ~
$ cd .local/elasticsearch
$ bin/elasticsearch-plugin install analysis-kuromoji
$ bin/elasticsearch-plugin install analysis-icu
$ ls -la plugin # DL したプラグインを確認
$ sudo systemctl restart elasticsearch # 再起動
MongoDB: 无需关系数据库
- mongodb 3.6.8
$ sudo apt install mongodb-server
$ sudo systemctl start mongodb
$ sudo systemctl status mongodb
$ sudo systemctl enable mongodb
生镡
- growi 3.7.5
按照公式文档的步骤进行操作。
由于构建需要一定时间,请注意。
$ cd /opt
$ sudo git clone https://github.com/weseek/growi /opt/growi
$ cd /opt/growi
$ sudo git tag -l # RC が付いていない最新版を確認
$ sudo git checkout -b v3.7.5 refs/tags/v3.7.5 # tag からブランチを切ってチェックアウト
$ sudo yarn # 12分程度かかった
動作テストする。
起動後は ctrl+z でバックグラウンドプロセス化して確認。
$ sudo ufw allow from 192.168.1.0/24 to any port 3000 # ローカルネットワークにおいて 3000番ポートを開放
$ sudo \
MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
npm start
# 以下メッセージが表示されるまで待つ(そこそこ時間がかかる)
> growi@3.7.5 server:prod /opt/growi
> env-cmd -f config/env.prod.js node src/server/app.js
请尝试访问 http://192.168.1.10:3000/ ,确认是否显示首次设置界面。
サービス化
根据公式文档,适当地重新解读一下。
首先,用 su 权限创建一个 growi.service 文件。
将文件上传至 MongoDB GridFS。
[Unit]
Description=Growi
After=network.target mongodb.service elasticsearch.service
[Service]
WorkingDirectory=/opt/growi
Environment=PORT=3000 \
MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
FILE_UPLOAD=mongodb \
MATHJAX=1
ExecStart=/usr/bin/npm start
[Install]
WantedBy=multi-user.target
确认能够启动后,进行自动启动设置。
$ sudo systemctl start growi
$ sudo systemctl status growi
$ sudo systemctl enable growi
插件安装
-
- growi-plugin-lsx
- growi-plugin-pukiwiki-like-linker
查看公式文档和插件的 GitHub 并继续。这需要相当长的时间。
$ sudo npm install --save growi-plugin-lsx
$ sudo npm install --save growi-plugin-pukiwiki-like-linker
$ cd /opt/growi
$ sudo systemctl stop growi
$ sudo yarn
$ sudo systemctl start growi