はじめに
CentOS + Growiという組み合わせについては,世の中に良記事がたくさん見つかるので,それで十分ならば,そちらを読んだ方が丁寧です.私は以下の記事を参考にしました.良い記事を本当にありがとう.
- CentOS7.5にGrowiをインストール - Qiita (@yuki476 2018年11月14日に更新)
- CentOS7にGrowi(旧Crowi-Plus)をインストールする方法 - Qiita (@SkyLaptor 2018年04月19日に更新)
何が違うの?
各ソフトウェアの公式版や最新版を使いたいならば,上記記事を見たほうが良いです.本当にわかりやすかったです.
が,私はなるべくディストリビューションに近いレベルの方法でやっていきたい.ということで,SCLを使った方法を試してみた.ここでは,その差分を中心に簡単なまとめておこうと思う.
この記事で説明しないこと
- Growiって何?
- SCLって何? 参考:https://www.softwarecollections.org/en/
手順
1. CentOS/Redhat Software Collection (SCL) を入れる
$ sudo yum install centos-release-scl{,-rh}
私は yum
コマンドを使うたびに scl を常に参照するのが気になるので,yum-config-manager
で無効化している.yum-config-manager
はyum-utils
に入っている.
$ sudo yum install yum-utils
$ sudo yum-config-manager --disable centos-sclo-{sclo,rh} > /dev/null
リポジトリを無効化した場合,yum
コマンドを使うたびにyum --enablerepo=centos-sclo-rh
とする必要があるので,手間と言えば手間だが,メンテナンスを思うと,こちらの方がいいと思っている.
2. gitのインストール(オプション)
最新版(になるべく近い版)が使いたいときもある(よね?).下記コマンドのgit
のバージョン番号はその時々のSCLのリポジトリをみて書き換える必要がある.ここでは,2.18を入れている.
$ sudo yum --enablerepo=centos-sclo-rh install rh-git218
3. mongodbのインストール
バージョン番号への注意はgitをインストールするときと同じ.
$ sudo yum --enablerepo=centos-sclo-rh install rh-mongodb36
なお,systemdのサービスとしては,以下のファイルで定義される.
/usr/lib/systemd/system/rh-mongodb36-mongod.service
従って,このmongodbのmongod
をサービスとして起動するのであれば,以下のコマンドとなる.
$ sudo systemctl start rh-mongodb36-mongod
4. Node.jsとyarnのインストール
$ sudo yum --enablerepo=centos-sclo-rh install rh-nodejs10
$ sudo scl enable rh-nodejs10 'npm install -g yarn'
2行目を補足すると,scl
コマンドで環境変数を加えつつ,npm
でglobalにyarn
をインストール.(説明できていないような気もするが,雰囲気を感じ取っていただきたく...)なお,インストール後のメッセージにも出てくるが,この方法だと yarn
は /opt/rh/rh-nodejs10/root/usr/bin/yarn
に設置される.
なお,scl enable
でコマンドを打つのはメンドクサイと言う人は,このあたりで,以下のコマンドを打っておくのもよろしいかと思われ.
$ scl enable rh-git218 rh-mongodb36 rh-nodejs10 bash
最後の実行コマンド部分をbash
にすることで,各環境変数を設定したbashが立ち上がる.
5. Growi のインストール
個人的な趣味により,/opt/growi
に入れようと思う.
1行目のinstall
コマンドはmkdir
しつつ,chown
しているだけである.-ovagrant
と-gvagrant
はそれぞれの環境でのユーザとグループに置き換えてほしい.
git clone
の最後のドット(カレントディレクトリ)も忘れずに.
$ scl enable rh-git218 bash
$ sudo install -ovagrant -gvagrant -d /opt/growi
$ cd /opt/growi
$ git clone --depth=1 https://github.com/weseek/growi.git .
6. systemdのサービスとして登録する
前述の@yuki476氏のQiita記事から利用させてもらう.
-
/etc/sysconfig/growi
はそのまま作ればよい -
/etc/systemd/system/growi.service
はSCLのための手当てが必要.以下のような書き方になる.
[Unit]
Description=Growi
After=network.target rh-mongodb36-mongod.service
[Service]
WorkingDirectory=/opt/growi
EnvironmentFile=/etc/sysconfig/growi
ExecStart=/usr/bin/scl enable rh-git218 rh-mongodb36 rh-nodejs10 'npm start'
[Install]
WantedBy=Multi-user.target
ちなみに,growi.service
ファイルは,書き換えるたびに以下のコマンドでリロードする必要がある.
$ systemctl daemon-reload
7. 終了(サービス起動)
$ systemctl start rh-mongodb36-mongod growi