用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のインストール
广告
将在 10 秒后关闭
bannerAds