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

アクセスできれば完了です。

初期化後の設定

ログインパスワードなどの初期設定を変更してからご利用ください。

  • アカウント管理
    • adminのログインIDをパスワードの変更
  • セッティング
    • URLの変更
    • メディアURLの変更
    • アップロードファイルの最大サイズの設定
    • セッション制限時間の設定

以上となります。

Posted on 2020-11-23 15:16:51

はじめまして

お茶の国静岡で、焼酎のお茶割なんか罰当たりで飲んだことはありません、常に一番搾りを嗜む静岡極東のBBQerです、最近まわりのエンジニアの方々がお料理を上手にやっている姿を恨めしそうに横目に見ながら、軟骨ピリ辛チクワを食べています、みなさんよろしく。

Posted

Amazon

tags

日本酒池 広井酒店 やがら やっぱた 刺身 丸干し 東京マラソン fpm php82 servant thread spawn Rust Oracle Linux 8 microcode firmware linux openzfs zfs gitea 麒麟 真野鶴 金鶴 日本酒 docker oracle pod podman cli virtualbox VirtualBox epub mobi calibre mask lens ワンライナー php redmine Linux Oracle Map OMap omap map BBQ カテゴリ管理 カテゴリ timestamp date oracle database string 麦焼酎 ダービー process 磨き蒸留 広井酒店、日本酒 芋焼酎 焼酎 ゆるキャン 広井酒店、日本酒池 spring framework java persistent spring session session spring hdbc-odbc persistent-odbc odbc day utctime スィート レマンの森 elm初期化 elm バイク xlr80 esqueleto database xl2tpd strongswan vpn l2tp ipsec 正月 ゲーム grub nginx systemctl portage 豚骨 圧力鍋 yesod-auth-hashdb yesod-auth yesod