DECO 導入手順書

1. データベースのインストール・設定

MariaDB(MySQL)をインストールします。

# yum install -y mariadb mariadb-server mariadb-devel

/etc/my.cnfに以下行を追加します。

# vi /etc/my.cnf
--------------------------------------------------------------------------------
[mysqld]
+character-set-server=utf8

+[client]
+default-character-set = utf8
--------------------------------------------------------------------------------

MariaDBの起動と自動起動を設定します。
# systemctl start mariadb
# systemctl enable mariadb

MariaDBにDECOで使用するユーザの登録およびデータベースを作成します。
# mysql -u root

> GRANT ALL PRIVILEGES ON deco_production.* TO deco@'127.0.0.0/255.255.255.0' IDENTIFIED BY '********';
> GRANT ALL PRIVILEGES ON deco_production.* TO deco@'localhost' IDENTIFIED BY '********';
> create database deco_production;

2. DECOに必要なパッケージのインストール・設定

必要なパッケージをインストールします。
# yum -y install zlib-devel openssl-devel curl-devel make gcc-c++ wget

epelリポジトリをインストールします。
# yum install epel-release

clamav 本体とデーモン、アップデートツール等をインストールします。
# yum install clamav clamav-scanner-systemd clamav-update clamav-devel

設定ファイルを編集します。
vi /etc/clamd.d/scan.conf

--------------------------------------------------------------------------------
Exampleをコメントにします。
-Example
+#Example

# 該当部分のコメントを外して有効化にします。(ログの有効化)
-#LogFile /var/log/clamd.scan
+LogFile /var/log/clamd.scan

-#LogFileMaxSize 2M
+LogFileMaxSize 2M

-#LogTime yes
+LogTime yes

-#LogRotate yes
+LogRotate yes

# ローカルソケット設定のコメントを外して有効化します。
-#LocalSocket /var/run/clamd.scan/clamd.sock
+LocalSocket /var/run/clamd.scan/clamd.sock

-#FixStaleSocket yes
+FixStaleSocket yes

# ユーザーをコメントアウトして root で動作させるよう設定します。
-User clamscan
+#User clamscan
--------------------------------------------------------------------------------

シンボリックリンクの設定追加します。
# ln -s /etc/clamd.d/scan.conf /etc/clamd.conf

データベース更新用の設定ファイルを編集します。(/etc/freshclam.conf・/etc/sysconfig/freshclam)

# vi /etc/freshclam.conf
--------------------------------------------------------------------------------
#Exampleをコメントにします。
-Example
+#Example

# 該当部分のコメントを外して有効化にします。(ログの有効化)
-#UpdateLogFile /var/log/freshclam.log
+UpdateLogFile /var/log/freshclam.log

-#LogFileMaxSize 2M
+LogFileMaxSize 2M

-#LogTime yes
+LogTime yes

-#LogRotate yes
+LogRotate yes
--------------------------------------------------------------------------------

# vi /etc/sysconfig/freshclam
--------------------------------------------------------------------------------
(「FRESHCLAM_DELAY=disabled-warn # REMOVE ME」がない場合はそのままにしてください。)
-FRESHCLAM_DELAY=disabled-warn # REMOVE ME
+# FRESHCLAM_DELAY=disabled-warn # REMOVE ME
--------------------------------------------------------------------------------

clamav起動を設定します。(起動に失敗する場合、ウィルス定義ファイルを更新してから再度実行します。)

# systemctl start clamd@scan #clamd起動
# systemctl status clamd@scan #clamd稼働状況
# systemctl enable clamd@scan #clamd自動起動設定

ウィルス定義ファイルを更新します。
# freshclam

yamlをインストールします。

# cd /usr/local/src
# wget http://pyyaml.org/download/libyaml/yaml-0.1.7.tar.gz
# tar zxvf yaml-0.1.7.tar.gz
# cd yaml-0.1.7
# ./configure
# make
# make install

Rubyをインストールにします。

# cd /usr/local/src
# wget ftp://ftp.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.gz
# tar zxvf ruby-2.4.2.tar.gz
# cd ruby-2.4.2
# ./configure
# make
# make install

RubyGemをインストールします。

# cd /usr/local/src
# wget https://rubygems.org/rubygems/rubygems-2.7.3.tgz
# tar zxvf rubygems-2.7.3.tgz
# cd rubygems-2.7.3
# ruby setup.rb

DECOに必要なモジュールをインストールします。
(/usr/local)にDECOの圧縮ファイルを置きます。
# cd /usr/local
# tar xzvf (DECOプログラムファイル)
# cd deco
# gem install bundler
# bundle install

環境変数にsecret_key_baseおよびデータベースのパスワードを設定します。

# rake secret
(keyが生成表示されます。)

環境変数に必要なパラメータを設定します。
# export SECRET_KEY_BASE=(生成したkeyをセットします。)
# export DECO_DATABASE_PASSWORD=(データベースに登録したDECOユーザのパスワードをセットします。)

再起動後も環境変数に反映する場合は、以下のファイルに追記してください。
# vi /etc/bashrc
--------------------------------------------------------------------------------
・・・
SECRET_KEY_BASE=(生成したkeyをセットします。)

export SECRET_KEY_BASE

DECO_DATABASE_PASSWORD=(データベースに登録したDECOユーザのパスワードをセットします。)

export DECO_DATABASE_PASSWORD
--------------------------------------------------------------------------------

ApacheとPassengerをインストールします。

# yum -y install httpd httpd-devel
# gem install passenger
# passenger-install-apache2-module

「/etc/httpd/conf.d/passenger.conf」を作成し以下を記述します。
下記内容は「passenger-install-apache2-module」実行時に表示されるメッセージ内容
ですので、下記と異なる場合はは表示されたメッセージの内容を優先してください。
# vi /etc/httpd/conf.d/passenger.conf
--------------------------------------------------------------------------------
LoadModule passenger_module /usr/local/lib/ruby/gems/2.4.0/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/lib/ruby/gems/2.4.0/gems/passenger-5.1.12
  PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>
--------------------------------------------------------------------------------

「/etc/httpd/conf.d/deco.conf」に以下を追加します。
# vi /etc/httpd/conf.d/deco.conf
--------------------------------------------------------------------------------
<VirtualHost *:80>
  ServerName deco
  DocumentRoot /usr/local/deco/public
  RailsEnv production
  SetEnv SECRET_KEY_BASE (生成したkeyをセットします。)
  SetEnv DECO_DATABASE_PASSWORD (データベースに登録したDECOユーザのパスワードをセットします。)
  <Directory /usr/local/deco/public>
    Require all granted
    Options -MultiViews
  </Directory>
</VirtualHost>
--------------------------------------------------------------------------------

xsendfileをインストールします。
# cd /usr/local/src
# wget --no-check-certificate https://tn123.org/mod_xsendfile/mod_xsendfile.c
# apxs -cia mod_xsendfile.c

「/etc/httpd/conf.d/xsendfile.conf」を作成し以下を追加します。
# vi /etc/httpd/conf.d/xsendfile.conf
--------------------------------------------------------------------------------
<IfModule mod_xsendfile.c>
    XsendFile on
    XsendFilePath /var/deco/files
</IfModule>
--------------------------------------------------------------------------------
DECOをインストールします。

# cd /usr/local/deco

DECOにデータベースの登録した内容を設定します。
# cp config/database.yml.sample config/database.yml
# vi config/database.yml
--------------------------------------------------------------------------------
※production 項目の設定を実環境に合わせます。(問題無い場合はそのままです。)
・・・
production:
  <<: *default
  database: deco_production
  username: deco
  password: <%= ENV['DECO_DATABASE_PASSWORD'] %>
--------------------------------------------------------------------------------

テーブルの作成と初期データの挿入を実行します。
# rake db:migrate RAILS_ENV=production
# rake db:seed RAILS_ENV=production

「config/environments/production.rb」に送信用メールサーバー情報の記述を追加します。
# cp config/environments/production.rb.sample config/environments/production.rb
# vi config/environments/production.rb
--------------------------------------------------------------------------------
  ActionMailer::Base.smtp_settings[:address] = "localhost"
  ActionMailer::Base.smtp_settings[:domain] = "example.com"
--------------------------------------------------------------------------------

JS, CSS, 画像ファイルのコンパイルを実行します。
# bundle exec rake assets:precompile RAILS_ENV=production

ディレクトリの作成/設定します。
# chown -R apache:apache /usr/local/deco
# mkdir -p /var/deco/files
# chown -R apache:apache /var/deco/files


Webサーバの起動と自動起動を設定します。
# systemctl start httpd
# systemctl enable httpd

以下のURLにアクセスすると管理画面が表示されますので必要な設定を行います。

(DECOサーバのURL)/sys_top

設定が完了したら以下のURLにアクセスするとDECOの利用ができます。

(DECOサーバのURL)/
