前提条件
- CentOS 8.2 minimal インストール
- selinux無効
- ファイアウォールで80/TCPのアクセスが有効
MySQLのインストール
# dnf install -y mysql-server mysql-devel
設定ファイルの編集
# echo 'character-set-server=utf8mb4' >> /etc/my.cnf.d/mysql-server.cnf # sed -ie 's/\[client\]/\[client\]\ndefault-character-set = utf8mb4/' /etc/my.cnf.d/client.cnf
起動と自動起動の設定
# systemctl enable --now mysqld.service
ユーザ/データベースの作成
# mysql -u root > CREATE USER deco@'localhost' IDENTIFIED BY '*****'; > GRANT ALL PRIVILEGES ON deco_production.* TO deco@'localhost'; > create database deco_production;
必要なパッケージのインストール
# dnf install -y zlib-devel openssl-devel curl-devel make gcc-c++ wget libyaml
必要なリポジトリの追加
# dnf install -y epel-release
ClamAVのインストール
# dnf install -y clamav clamav-scanner-systemd clamav-update clamav-devel
設定ファイルの編集
# sed -ie 's/\#LogFile \/var\/log\/clamd.scan/LogFile \/var\/log\/clamd.scan/' /etc/clamd.d/scan.conf # sed -ie 's/^\#LogFileMaxSize 2M/LogFileMaxSize 2M/' /etc/clamd.d/scan.conf # sed -ie 's/^\#LogTime yes/LogTime yes/' /etc/clamd.d/scan.conf # sed -ie 's/^\#LogRotate yes/LogRotate yes/' /etc/clamd.d/scan.conf # sed -ie 's/^\#LocalSocket \/run\/clamd.scan\/clamd.sock/LocalSocket \/run\/clamd.scan\/clamd.sock/' /etc/clamd.d/scan.conf # sed -ie 's/^\#FixStaleSocket yes/FixStaleSocket yes/' /etc/clamd.d/scan.conf # sed -ie 's/^User clamscan/\#User clamscan/' /etc/clamd.d/scan.conf # sed -ie 's/^\#UpdateLogFile/UpdateLogFile/' /etc/freshclam.conf # sed -ie 's/^\#LogFileMaxSize/LogFileMaxSize/' /etc/freshclam.conf # sed -ie 's/^\#LogRotate/LogRotate/' /etc/freshclam.conf
起動と自動起動の設定
# sed -ie 's/scanner (%i) daemon/scanner daemon/g' /usr/lib/systemd/system/clamd@.service # sed -ie 's/\/etc\/clamd.d\/%i.conf/\/etc\/clamd.d\/scan.conf/g' /usr/lib/systemd/system/clamd@.service # touch /var/log/freshclam.log # chown clamupdate:clamupdate /var/log/freshclam.log # freshclam # systemctl enable --now clamd@scan.service
Rubyのインストール
# cd /usr/local/src # wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.6.tar.gz # tar xzvf ruby-2.6.6.tar.gz # cd ruby-2.6.6/ # ./configure # make # make install
DECOに必要なRubyライブラリのインストールと事前設定
decoのソースファイルを配置して作業
# cd /usr/local # tar xzvf deco-2.0.X.tar.gz # cd deco/ # gem install bundler # bundle
secret_key_baseおよびデータベースのパスワードを設定
# bundle exec rake secret # cat - << EOF >> /etc/bashrc SECRET_KEY_BASE=(生成したsecret key) export SECRET_KEY_BASE DECO_DATABASE_PASSWORD=(データベースに登録したDECOユーザのパスワード) export DECO_DATABASE_PASSWORD EOF # source /etc/bashrc
ApacheとPassengerのインストール
# dnf install -y httpd httpd-devel redhat-rpm-config # gem install passenger # passenger-install-apache2-module
設定ファイルの編集
# cat - << EOF > /etc/httpd/conf.d/passenger.conf LoadModule passenger_module /usr/local/lib/ruby/gems/2.6.0/gems/passenger-6.0.6/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/local/lib/ruby/gems/2.6.0/gems/passenger-6.0.6 PassengerDefaultRuby /usr/local/bin/ruby </IfModule> EOF cat - << EOF > /etc/httpd/conf.d/deco.conf <VirtualHost *:80> ServerName deco DocumentRoot /usr/local/deco/public RailsEnv production SetEnv SECRET_KEY_BASE (生成したsecret key) SetEnv DECO_DATABASE_PASSWORD (データベースに登録したDECOユーザのパスワード) <Directory /usr/local/deco/public> Require all granted Options -MultiViews </Directory> </VirtualHost> EOF
xsendfileのインストール
# cd /usr/local/src # wget --no-check-certificate https://tn123.org/mod_xsendfile/mod_xsendfile.c # apxs -cia mod_xsendfile.c # cat - << EOF > /etc/httpd/conf.d/xsendfile.conf <IfModule mod_xsendfile.c> XsendFile on XsendFilePath /var/deco/files </IfModule> EOF
apacheユーザをclamAVのグループに追加
# usermod -G virusgroup apache
DECOのインストール
# cd /usr/local/deco # cp config/database.yml.sample config/database.yml # bundle exec rake db:migrate RAILS_ENV=production # bundle exec rake db:seed RAILS_ENV=production # cp config/environments/production.rb.sample config/environments/production.rb # sed -ie 's/^end/ ActionMailer::Base.smtp_settings\[:enable_starttls_auto\] = false\nend/' config/environments/production.rb # 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 enable --now httpd.service
DECO管理画面へのアクセスと設定
(DECOサーバのURL)/sys_top
DECOの表示
(DECOサーバのURL)/
MTAが稼働していない場合のPostfixのインストール
# dnf install -y postfix
起動と自動起動設定
# systemctl enable --now postfix.service