CentOS8へHoubouをインストールする方法
CentOS8にインストールする
インストール方法を見直しました、初期のバージョンのインストール方法が面倒で手順が面倒だったので簡単に行えるように修正しました。
インストール事前準備
インストール時に問題を起こすことがあるので、SELINUXは無効化してください。
- /etc/selinux/conf
SELINUX=disabled
sudo getenforce
$ Disabled
パッケージのインストール
必要なパッケージをインストールします。
PostgreSQL
データベースをインストールします。
sudo yum install postgresql-server postgresql $
Redis
セッションストレージで利用するためのKVSのインストールします。
sudo yum install redis $
データベース初期化
データベースを起動するための初期化を行います、postgresユーザーで実行してください。
sudo su - postgres
$ /usr/bin/initdb -E UTF8 -D /var/lib/pgsql/data/
...
exit $
サービスの起動
必要なデーモンを起動します。
- PostgreSQL起動
sudo systemctl start postgresql
$ sudo systemctl enable postgresql
$ Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.
- Redis起動
sudo systemctl start redis
$ sudo systemctl enable redis
$ Created symlink /etc/systemd/system/multi-user.target.wants/redis.service → /usr/lib/systemd/system/redis.service.
Firewalldの設定
必要なフィルタリングの設定を行います、firewalld以外のツールや機能を利用する場合は、この作業は必須ではありません。
sudo firewall-cmd --permanent --zone=public --add-service=http
$ success
sudo firewall-cmd --permanent --zone=public --add-service=https
$ success
sudo firewall-cmd --reload
$ success
ポート80とポート443は通信が可能になるように設定します、再起動後も有効にするために、permanentで設定します。
sudo firewall-cmd --list-all
$ public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: cockpit dhcpv6-client http https ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Houbouの初期化
DB接続ユーザーの作成
Houbouがデータベースに接続するユーザーを作成します。
createuser -U postgres -i -l -S -d [DBユーザー] -P
$
新しいロールのためのパスワード: もう一度入力してください:
houbouデータベースの作成
データベースを作成するユーザーは、DB接続ユーザーの作成で作成したユーザーを利用してください。
createdb -U [DBユーザー] -E UTF-8 -O [DBユーザー] houbou $
Houbouパッケージのインストール
Houbouのプログラムをインストールします、以下のURLから取得してください
sudo rpm -Uvh Houbou-0.9.14-1.el8.x86_64.rpm
$ Verifying... ################################# [100%]
... ################################# [100%]
準備しています/ インストール中...
更新中 1:Houbou-0.9.14-1.el8 ################################# [100%]
Houbouの接続設定を確認します、接続ユーザー、パスワード、データベース名の確認をしてください。
- /etc/sysconfig/houbou
YESOD_PGUSER=[DBユーザー]
YESOD_PGPASS=[DBパスワード]
YESOD_PGHOST=localhost
YESOD_PGPORT=5432
YESOD_PGDATABASE=houbou
YESOD_PGPOOLSIZE=32
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DATABASE=0
REDIS_MAX_CONNECTIONS=32
REDIS_MAX_IDLE_TIME=60
アップロードメディアの保存先ディレクトリを作成します、このディレクトリは外部に公開するよう後でnginxに設定します。
mkdir -p /pub/images
$ chown houbou:houbou /pub/images $
初期データベースのインポート
データベースのスキーマをインポートし初期化します。
cd /usr/share/Houbou-0.9.14/data/ $
「Houbou-0.9.14」の部分はインストールしたバージョンで置き換えてください。
バージョンアップ時にマイグレーションするための、マイグレーション管理情報を初期化します。
migrate init postgres://[DBユーザー]:[DBパスワード]@localhost:5432/houbou
$ Initializing schema
データベースをマイグレーションします。
dep@localhost data]$ ./migration.sh
[Execute: 01_schema.sql
Execute: 02_initial_insert.sql
Execute: 20201010155853_alter_tbl_post.migration
Execute: 20201011160813_alter_tbl_free.migration
Execute: 20201017055635_alter_tbl_post.migration
Execute: 20201017055638_alter_tbl_free.migration
Execute: 20201105044325_alter_tbl_blog_setting.migration
Execute: 20201106191251_alter_tbl_post.migration
Execute: 20201109070324_alter_tbl_free.migration
TLS・SSLの設定
Houbouはプロダクション環境では、SSL通信配下で動作するよう調整されているため、SSLの設定を行ってください、SSLの設定について こちら を参考に行ってください。
非SSL環境ではクッキーやCSRFなどの機能が正常に動作しません。
nginxの設定
Houbouをnginxのリバースプロキシ経由で動作させるための設定です。
upstream hbapps {
server localhost:3000;
}
server {
listen [IPアドレス]:443 ssl;
server_name [取得ドメイン];
ssl_ciphers 'HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA';
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/nokey_pri.pem;
gzip on;
gzip_types text/css application/javascript application/json application/xml;
gzip_min_length 500;
gzip_buffers 4096 4k;
etag off;
#charset koi8-r;
client_max_body_size 600m;
root /pub/;
access_log /var/log/nginx/houbou.access_log main;
error_log /var/log/nginx/houbou.error_log info;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https; # For Yesod approot
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_pass http://hbapps/;
proxy_redirect https://$host/ /;
proxy_cookie_path / /;
}
location /images/ {
expires 1d;
}
}
nginxを起動する
sudo systemctl start nginx
$ sudo systemctl enable nginx
$ Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
設定はサンプルですので必要に応じて修正してください。
Houbouを起動する
sudo systemctl start houbou
$ sudo systemctl enable houbou
$ Created symlink /etc/systemd/system/multi-user.target.wants/houbou.service → /usr/lib/systemd/system/houbou.service.
アクセスする
- https://[ドメイン or IP]/
- 管理画面ログイン
- https://[ドメイン or IP]/hb-admin
- ID: webmaster@example.com
- PASSWD: webmaster
- https://[ドメイン or IP]/hb-admin
アクセスできれば完了です。
初期化後の設定
ログインパスワードなどの初期設定を変更してからご利用ください。
- アカウント管理
- adminのログインIDをパスワードの変更
- セッティング
- URLの変更
- メディアURLの変更
- アップロードファイルの最大サイズの設定
- セッション制限時間の設定
以上となります。
Posted on 2020-11-23 15:16:51