用Raspberry Pi3来运行Growi
简要概述
这是关于在Raspberry Pi 3上安装Fedora 28的续篇。我使用的是Raspberry Pi 3B+。
在安装了Fedora28的Raspberry Pi3上,我安装了一个基于Markdown格式的WiKi平台——Growi,并记录了相应的操作步骤。这些步骤与在Ubuntu18.04上安装Growi的步骤几乎完全相同。
安装
Java8: Java八
首先,需要确认是否安装了Java 8。
$ java --version
Command 'java' not found, but can be installed with:
如果被告知尚未安装,请进行安装。
$ sudo dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
$ java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b15)
OpenJDK 64-Bit Server VM (build 25.181-b15, mixed mode)
确认安装位置,并设置JAVA_HOME。
$ dirname $(readlink $(readlink $(which java)))
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.aarch64/jre/bin
$ sudo vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.aarch64
export PATH=$PATH:$JAVA_HOME/bin
$ source /etc/profile
$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181.b15-0.fc28.aarch64
弹性搜索
在遵循官方文档中的步骤后,可以通过dnf进行安装。
$ sudo rpm --import https://packages.elasticsearch.org/GPG-KEY-elasticsearch
$ sudo vi /etc/yum.repos.d/elasticsearch.repo (新規作成)
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
$ sudo dnf -y install elasticsearch
添加一个日语插件。
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
更改内存使用量。
默认情况下,它是2GB,但是树莓派只有1GB内存,因此无法启动并出现错误。
在Growi的官方文档中,如果是个人使用,建议使用256MB就足够了。
$ sudo vi /etc/elasticsearch/jvm.options
-Xms256m
-Xmx256m
如果继续启动,将会出现[X-Pack is not supported and Machine Learning is not available for [linux-aarch64]]错误,所以(虽然不确定会有什么影响)需要禁用X-Pack。
在配置文件末尾添加以下1行。
$ sudo vi /etc/elasticsearch/elasticsearch.yml
xpack.ml.enabled: false
运行
$ sudo systemctl start elasticsearch
等待几分钟后再确认状态。
$ sudo systemctl status elasticsearch
$ curl localhost:9200
{
"name" : "WYyHqAI",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Lwf4xUVtSBOPepknI8yqKQ",
"version" : {
"number" : "6.4.0",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "595516e",
"build_date" : "2018-08-17T23:18:47.308994Z",
"build_snapshot" : false,
"lucene_version" : "7.4.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
如果没有问题,设定自动启动。
$ sudo systemctl enable elasticsearch
Redis 可以进行重述为:红蓝宝石
从安装到自动执行。
$ sudo dnf -y install redis
$ sudo systemctl start redis
$ sudo systemctl status redis
$ sudo systemctl enable redis
成长
我会按照公式的步骤进行。
$ cd /opt
$ sudo git clone https://github.com/weseek/growi
$ cd growi
$ sudo git tag -l
$ sudo git checkout -b v3.2.1 refs/tags/v3.2.1
$ sudo yarn
大约需要一个小时。
按照以下步骤进行启动确认。
$ sudo \
NODE_ENV=production \
MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
REDIS_URI=redis://localhost:6379 \
PASSWORD_SEED=xxxx (MAX64文字のランダム文字列) \
FILE_UPLOAD=local \
npm start
先等大约20分钟吧…
当显示[production] Express服务器正在端口3000上监听时,表示启动成功。
在浏览器中输入http://服务器IP:3000/,确认能够看到初始页面。
当网页无法显示初期页面时
如果保持默认设置,SELinux将保持启用状态,需要将其禁用。
$ sudo getenforce
Enforcing (有効)
$ sudo vi /etc/sysconfig/selinux
SELINUX=disables # disabled に変更
如果检查到防火墙有效,则禁用它。
$ sudo systemctl status firewalld
$ systemctl stop firewalld
$ systemctl disable firewalld rolekit
※Rolekit是一个服务器管理工具,它会启动防火墙,所以一起关闭它。
重新启动并进行确认。
$ sudo getenforce
Permissive
$ sudo systemctl status firewalld
自动启动设置
$ sudo vi /etc/systemd/system/growi.service
[Unit]
Description = growi
After=network-online.target mongod.service
ConditionPathExists=/opt/growi
[Service]
ExecStart=/opt/growi/growi-start.sh
Restart=no
Type=simple
[Install]
WantedBy=multi-user.target
说明:可以写任何内容。
之后:指定启动顺序。设置在network和mongod启动后启动。
ConditionPathExists:安装目录。
ExecStart:启动脚本。
其他方面没有必要特别处理。
修改已创建文件的权限。
$ sudo chown root:root /etc/systemd/system/growi.service
$ sudo chmod 644 /etc/systemd/system/growi.service
创建启动脚本。
在growi.service的ExecStart设置的路径上创建。
由于服务在root权限下运行,因此不需要使用sudo。
$ sudo vi /opt/growi/growi-start.sh
#!/bin/sh
cd /opt/growi
NODE_ENV=production \
MONGO_URI=mongodb://localhost:27017/growi \
ELASTICSEARCH_URI=http://localhost:9200/growi \
REDIS_URI=redis://localhost:6379 \
PASSWORD_SEED=xxxx (MAX64文字のランダム文字列) \
FILE_UPLOAD=local \
npm start
授予执行权限。
$ sudo chmod +x /opt/growi/growi-start.sh
重新启动守护进程并启动并确认Growi服务。
$ sudo systemctl daemon-reload
$ sudo systemctl start growi.service
$ sudo systemctl status growi.service
如果在status中无法看到全部日志,则可以使用sudo journalctl -u growi -b来查看。
安装已经完成,所以我认为它会在大约5分钟内启动。
如果没有问题,就设置自动启动。
$ sudo systemctl enable growi.service
备忘录
虽然反应有些迟钝,但是还是能正常运行。
文件上传可能会花费一些时间,但没有问题。
全文搜索可能不行,我就不再去调查了^^。
请参考
-
- Ubuntu18.04にGrowiをインストール
-
- CentOS 6&7/Fedora 20にOpenJDK 8環境を構築
- CentOS7にJava OpenJDK8のインストール