(1)gitをインストールします。
# yum -y install git(2)rbenvを取得します。
# git clone https://github.com/sstephenson/rbenv.git ~/.rbenv(3)rbenvのパスを通して有効化します。
# echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
# ~/.rbenv/bin/rbenv init
# echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
# source ~/.bash_profile(4)rbenvがインストールされたことを確認します。
# rbenv -v
rbenv 1.1.1-39-g59785f6補足 rootではなく、usrとかにインストールしないと後で権限がないエラー
その場合の対応(無理やり権限を付けてしまう)
chmod 751 /root
chmod 755 /root/.rbenv
(1)ruby-buildを取得します。
# git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build(2)ruby-buildをインストールします。
# ~/.rbenv/plugins/ruby-build/install.sh(3)ruby-buildがインストールできるとrbenvのpluginであるrbenv installコマンドが使用できるようになります。
# rbenv install -lとするとインストール可能なRubyのバージョンが一覧で表示されます。
(1)Rubyをインストールするのに必要なパッケージを先にインストールします。
# yum install -y openssl-devel readline-devel zlib-devel(2)Rubyのインストールをします。
# rbenv install 2.6.1(3)rbenvで2.6.1を使用するように設定します。
# rbenv global 2.6.1(4)Rubyのバージョンが表示されればインストールは成功しています。
# ruby -v
ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-linux](1)Ruby On Railsのインストール
# gem install rails -v=5.2.2 -N(2)Railsのバージョンが表示されればインストールは成功しています。
# rails -v
Rails 5.2.2(1)PostgreSQL の公式リポジトリを追加します。
# yum -y localinstall https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm(2)インストールします。
# yum -y install postgresql96-server
# yum -y install postgresql-devel
# gem install pg -v '0.21.0' -- --with-pg-config=/usr/pgsql-9.6/bin/pg_config
# bundle config build.pg --with-pg-config=/usr/pgsql-9.6/bin/pg_config
(3)バージョンが表示されればインストールは成功しています。
# /usr/pgsql-9.6/bin/postgres --version
postgres (PostgreSQL) 9.6.11
(4)インストールが完了したら、データベースを初期化します。
service postgresql-9.6 initdb(5)設定ファイルを編集します(/var/lib/pgsql/9.6/data/pg_hba.conf)
修正前
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
修正後
# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
(6)サービスを自動起動の登録をします
# chkconfig postgresql-9.6 on(7)サービスの起動をします
# service postgresql-9.6 start(8)接続確認をします
# su - postgres
-bash-4.1#
-bash-4.1# psql
psql (9.6.11)
Type "help" for help.
(9)postgresユーザーのパスワード設定(OSユーザー)をします
# passwd postgres
Changing password for user postgres.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
(10)postgresユーザーのパスワード設定(PostgreSQLユーザー)をします
# su - postgres
-bash-4.1# psql
psql (9.6.11)
Type "help" for help.
postgres=#
postgres=# alter role postgres with password '<パスワード>';
(11)Ctrl+Dで終了し、exitでpostgreユーザからrootユーザに戻ります
(12)サービスを再起動します
# service postgresql-9.6 restart(1)インストールします
# yum -y install httpd(2)バージョンが表示されればインストールは成功しています。
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Jun 19 2018 15:45:13
(3)サービスを自動起動の登録をします
# chkconfig httpd on(4)サービスの起動をします
# service httpd start(5)SELINUXを無効にします(/etc/sysconfig/selinux)
修正前
SELINUX=enforcing修正後
SELINUX=disabled(6)iptablesを無効にします
# service iptables stop
# chkconfig iptables off(7)ブラウザでサーバーのURLを入力し、apacheのテストページが表示されることを確認します
 
        (8)Apacheの関連モジュールをインストールします
# yum -y install libcurl-devel httpd-devel apr-devel apr-util-devel(1)Passengerのインストールします
# gem install passenger
# passenger-install-apache2-module(1)/etc/httpd/conf.dにpassenger.confを以下の内容で作成します
RailsEnv production
LoadModule passenger_module /root/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /root/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/passenger-6.0.2
  PassengerDefaultRuby /root/.rbenv/versions/2.6.1/bin/ruby
</IfModule>
PassengerRestartDir /var/opt/shared/tmp
PassengerUserSwitching on
<VirtualHost *:80>
  DocumentRoot /var/opt/www
  RailsBaseURI /test_app
  <Location /test_app>
    PassengerUser apache
    PassengerRuby /root/.rbenv/versions/2.6.1/bin/ruby
  </Location>
</VirtualHost>
(2)Rails資産を/var/opt/appにアップロードします
(3)シンボリックリンクを作成します
# cd /var/opt/www
# ln -s /var/opt/app/test_app/public test_app
※以下(4)~(8)はRailsのプロジェクト毎に行います
(4)GEMをインストールします
# bundle install(5)production 環境の secret_key_base を設定します
ランダム値の secret_key_base を生成
# rails secretエディタを立ち上げ、上記で生成した値を設定
# EDITOR=vim rails credentials:edit(6)database.ymlを修正します
config/database.yml
default: &default
  adapter: postgresql
  encoding: unicode
  username: postgres
  password: <パスワード>
  host: localhost
  port: 5432
  template: template0
 database: xxx_production
  username: postgres
  password: <パスワード>(7)データベース・テーブルを作成し、初期データを登録します
# rails db:create:all
# rails db:migrate RAILS_ENV=production
# rails db:fixtures:load RAILS_ENV=production(8)javascript/cssのプリコンパイルします
# rails assets:precompile RAILS_ENV=production(9)所有者・グループを変更します
# chown -R apache:apache /var/opt/app/exam_java(1)Redmineをダウンロードします
# cd /var/opt/app
# curl -O http://www.redmine.org/releases/redmine-4.0.1.tar.gz(2)Redmineを解凍します
# tar xvf redmine-4.0.1.tar.gz(3)database.ymlを以下の内容で作成します
production:
  adapter: postgresql
  database: redmine_production
  adapter: postgresql
  encoding: unicode
  username: postgres
  password: <パスワード>
  host: localhost
  port: 5432
  template: template0(4)Gemfileを以下の通り修正します
【修正前】
gem "pg", "~> 1.1.4", :platforms => [:mri, :mingw, :x64_mingw]【修正後】
gem "pg", "0.21", :platforms => [:mri, :mingw, :x64_mingw](5)ImageMagickのインストールします
# yum -y install ImageMagick ImageMagick-devel(6)Gemfileを修正します
【修正前】
gem "rmagick", ">= 2.14.0"【修正後】
gem "rmagick", "2.16.0"(6)GEMのインストールします
# cd /var/opt/app/redmine-4.0.1
# bundle(7)production 環境の secret_key_base を設定します
# rails generate_secret_token(8)データベース・テーブルを作成し、初期データを登録します/p>
# rails db:create RAILS_ENV=production
# rails db:migrate RAILS_ENV=production
# rails redmine:load_default_data  RAILS_ENV=production REDMINE_LANG=ja (9)javascript/cssのプリコンパイルします
# rails assets:precompile RAILS_ENV=production(10)シンボリックリンクを作成します
# cd /var/opt/www
# ln -s /var/opt/app/redmine-4.0.1/public redmine
(11)所有者・グループを変更します
# chown -R apache:apache /var/opt/app/redmine-4.0.1(12)/etc/httpd/conf.dにpassenger.confを以下の内容を追加します
  RailsBaseURI /redmine
  <Location /redmine>
    PassengerUser apache
    PassengerRuby /root/.rbenv/versions/2.6.1/bin/ruby
  </Location>
(13)apacheを再起動します
# service httpd restart(14)管理者としてログインし、パスワードを変更します
ユーザ:admin パスワード:<パスワード>(15)データ移行
旧サーバからDBの出力
# pg_dump -a redmine_production -U postgres > redmine_production.dmp新サーバでのDBの取り込む
# psql redmine_production -U postgres < redmine_production.dmp(16)チケットの移行
1)旧redmineのチケットで一覧の下にある「他の形式にエキスポート csv」をクリックし、csvを出力 2)出力されたcsvの日付をyyyy/mm/dd形式をyyyy-mm-ddに変換 3)新redmineで上記のcsvを右のメニューからインポート(このとき項目単位にcsvの項目を選択する)
(1)subversionをインストールします
# yum install -y subversion(2)webdavでの公開用モジュールのをインストールします
# yum install -y mod_dav_svn(3)リポジトリを作成します
# mkdir -p /home/svn/repos/src
# svnadmin create /home/svn/repos/src(4)リポジトリをapacheの所有者に変更します
# chown -R apache:apache /home/svn(5)サブバージョン設定ファイルにリポジトリを定義します
/etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<Location /svn/src>
DAV svn
SVNPath /home/svn/repos/src
</Location>
(7)apacheを再起動します
# service httpd restart(8)ブラウザで動作確認します(urlの最後の/に注意(ないとエラー))
http://サーバのIP/svn/src/ 
		(9)サブバージョンのユーザを追加します
# cd /etc/subversion
# mkdir conf
# htpasswd -c /etc/subversion/conf/authuser.conf (ユーザーID)※パスワードの入力を求めてくるのでパスワードを入力
2件目以降の追加では、-cのオプションを付けない
# htpasswd /etc/subversion/conf/authuser.conf (ユーザーID)(10)ユーザ認証を追加します
/etc/httpd/conf.d/subversion.confを修正
【修正前】
<Location /svn/intra>
DAV svn
SVNPath /home/svn/repos/intra
</Location>
【修正後】
<Location /svn/src>
DAV svn
SVNPath /home/svn/repos/src
AuthType Basic
AuthzSVNAccessFile /etc/subversion/conf/authzsvn.conf
AuthName "SVN Repo"
AuthUserFile /etc/subversion/conf/authuser.conf
Require valid-user
</Location>
/etc/subversion/conf/authzsvn.confを作成
#グループの設定
[groups]
#developer=harry,sarry
#observer=john,greg
# 全てのプロジェクトに対する共通設定
[/]
admin = rw
* = rw
guest = r
# サンプルプロジェクトに対する設定
[SampleProject:/]
guest = rw
#@developer = rw
#@observer= r
# 特定のパスの設定
#[SampleProject:/tags]
#* = r
#admin = rw
(11)apache再起動
# service httpd restart(12)ブラウザで動作確認し、ログイン要求されることを確認します
http://サーバのIP/svn/src/ 
    (1)さくらインターネットよりドメイン名の取得を行います
※すでに取得済の場合は不要
(2)ゾーン設定を行います
さくらインターネット会員ページにログインし、契約情報ページ>契約ドメイン一覧のドメインメニューボタンをクリックします
 
		ゾーン編集ボタンをクリックします
 
		簡単設定にサーバのIPアドレスを入力し、送信します
 
    (1)https通信に必要なモジュールをインストールします
# yum install -y mod_ssl
# yum install -y openssl
(2)秘密鍵の作成
・秘密鍵用のディレクトリを作成します
# cd /etc/httpd/conf
# mkdir ssl.key
・上記で作成したディレクトリに秘密鍵を作成します。パスワードを聞いてくるので2回入力します。
# cd ssl.key
# openssl genrsa -des3 -out server.key 2048
Generating RSA private key, 2048 bit long modulus
....................................+++
....................................................................................+++
e is 65537 (0x10001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:
(3)CSRの作成
・CSR用のディレクトリを作成します
# cd /etc/httpd/conf
# mkdir ssl.csr
・上記で作成したディレクトリにCSRを作成します。
#  openssl req -new -key ssl.key/server.key -out ssl.csr/server.csr
Enter pass phrase for ssl.key/server.key: #{秘密鍵で設定したパスワード入力}
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP #{日本在住ならJP}
State or Province Name (full name) []:Tokyo #{都道府県}
Locality Name (eg, city) [Default City]:Shinagawa-ku #{市町村区}
Organization Name (eg, company) [Default Company Ltd]:Carat #{組織名}
Organizational Unit Name (eg, section) []: #{部署名(特になければ空白でOK)}
Common Name (eg, your name or your server hostname) []:www.caratinc.jp ##{【重要】取得しているドメイン名}
Email Address []:yourmail@example.com #{メールアドレス}
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: #{必要に応じて入力(特になければ空白でOK)}
An optional company name []: #{必要に応じて入力(特になければ空白でOK)}
(4)SSL証明書の購入
さくらインターネットよりSSL証明書を購入します
https://ssl.sakura.ad.jp/rapidssl/
 
         
		上記で作成したCSRを貼り付けます
 
		登録後確認画面が出るので申込を行います。
(5)認証ファイルのダウンロード
さくらインターネット会員ページにログインし、契約情報ページの契約サービスの確認をクリックし表示します
 
		サーバ証明書をクリックします
 
		認証ファイルDLをクリックし、認証ファイルをダウンロードします
(6)認証ファイルをサーバーに配備
上記でダウンロードした認証ファイルを/var/opt/www/.well-known/pki-validation/にアップロードします
 
		サクラインターネットが自動的に認証ファイルの確認をします。確認が完了すれば(通常数分で完了) 状態が利用中になりますので、サーバー証明書ボタンをクリックしてサーバー証明書をダウンロードします(server.crt)
(7)サーバー証明書の配備
・サーバー証明書用のディレクトリ作成
# cd /etc/httpd/conf
# mkdir ssl.crt
・上記(6)で作成したserver.crtを上記ディレクトリにアップロードします
(8)中間証明書の配備
サーバー証明書以外にも中間証明書というものが必要で、認証局からメールがくるので中間証明書を取得し、 ssl.crtディレクトリにファイル(internal.crt)をアップロードします。
(9)/etc/httpd/conf.d/ssl.confを以下の内容に修正します
LoadModule ssl_module modules/mod_ssl.so
Listen 443
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
<VirtualHost _default_:443>
  SSLEngine on
  SSLProtocol all -SSLv2
  SSLCertificateKeyFile   /etc/httpd/conf/ssl.key/server.key
  SSLCertificateChainFile /etc/httpd/conf/ssl.crt/internal.crt
  SSLCertificateFile      /etc/httpd/conf/ssl.crt/server.crt
  DocumentRoot "/var/opt/www"
  ServerName www.********:443
  CustomLog logs/ssl_request_log \
            "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
  ErrorLog logs/ssl_error_log
  TransferLog logs/ssl_access_log
  LogLevel warn
  <Files ~ "\.(cgi|shtml|phtml|php3?)$">
      SSLOptions +StdEnvVars
  </Files>
  <Directory "/var/www/cgi-bin">
      SSLOptions +StdEnvVars
  </Directory>
  
  SetEnvIf User-Agent ".*MSIE.*" \
           nokeepalive ssl-unclean-shutdown \
           downgrade-1.0 force-response-1.0
</VirtualHost>                                  
(10)/etc/httpd/conf.d/passenger.confを以下の内容に修正します(修正部分のみ記述)
【修正前】
<VirtualHost *:80>
  DocumentRoot /var/opt/www【修正後】
# http経由をhttps経由にリダイレクト
<VirtualHost *:80>
  ServerName www.********.info:80
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^www.********\.info
  RewriteRule ^/(.*)$ https://www.********.info/$1 [R=301,L]
  RewriteCond %{HTTP_HOST} ^********\.info
  RewriteRule ^/(.*)$ https://www.********.info/$1 [R=301,L]
</VirtualHost>
<VirtualHost *:443>
   ServerName www.********.info:443
   DocumentRoot /var/opt/www
   RailsBaseURI /redmine
   SSLEngine on
   SSLProtocol all -SSLv2
   SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
   SSLCertificateKeyFile   /etc/httpd/conf/ssl.key/server.key
   SSLCertificateChainFile /etc/httpd/conf/ssl.crt/internal.crt
   SSLCertificateFile      /etc/httpd/conf/ssl.crt/server.crt
(11)apache再起動
# service httpd restart(補足1)サクラインターネットからのメール1
さくらインターネット株式会社
           SSLサーバ証明書 認証ファイルのアップロードについて
この度は、さくらインターネットのサービスをお申込みいただき誠にありがとう
ございます。
お申込みいただきましたSSLサーバ証明書の申請が完了いたしましたので、お知
らせいたします。
  ================================================================
  《 SSLサーバ証明書の情報 》
     サーバ証明書種別:SSL ラピッドSSL(1年)
     サービスコード  :********
     コモンネーム    :********
  ================================================================
引き続き、認証局より申請いただいたドメインの使用権の確認がございますので、
以下の手順をご確認の上、認証ファイルのアップロードをお願いいたします。
認証ファイルは、30日以内にアップロードください。
<注意事項>
    コモンネーム対象先にアクセス制限(ベーシック認証、IPアドレス制限等)を
    かけている場合は、SSLサーバ証明書が発行されるまで、解除してください。
    すでにSSL対応しているサイトに認証用ファイルを配置する場合、そのウェブ
    サイトは、TLS1.1 または TLS1.2 をサポートしている必要があります。
    TLS1.0 では認証が行えません。
    証明書取得後、認証ファイルは削除されません。削除される際はお客様自身で
    お願いいたします。
■認証ファイルのアップロード手順
  ▽STEP1
    会員メニューにログインし、「契約情報」の一覧から該当サービスの「サー
    バ証明書」ボタンをクリックしていただき、詳細画面より認証ファイルをダ
    ウンロードしてください。
    ・会員メニュー - 契約情報
      https://secure.sakura.ad.jp/menu/service/index.php
  ▽STEP2
    ダウンロードした認証ファイルを、申請時に指定したFQDN(コモンネーム)
    配下にアップロードしてください。
    ※認証ファイルは以下のいずれかのURLに配置
      認証ファイル名は、fileauth.txtです
    例)
      http://********/.well-known/pki-validation/fileauth.txt
      https://********/.well-known/pki-validation/fileauth.txt
    ※「/.well-known/pki-validation/」のフォルダはお客さまで作成ください
    ※FQDN(コモンネーム)を www+ルートドメイン(例:www.example.com)で
      申請した場合、上記URLとあわせて
      http://ルートドメイン/.well-known/pki-validation/fileauth.txt
      https://ルートドメイン/.well-known/pki-validation/fileauth.txt
      にも認証ファイルを設置する必要があります。
      詳しくはサポートサイトをご確認ください。
      https://help.sakura.ad.jp/hc/ja/articles/206208881
  ▽STEP3
    認証用ファイルが配置されたことを認証局が確認し、証明書を発行します。
(補足2)サクラインターネットからのメール2
 さくらインターネット株式会社
                      SSLサーバ証明書発行のお知らせ
この度は、さくらインターネットのサービスをお申込みいただき誠にありがとう
ございます。
お申込みいただきましたSSLサーバ証明書の発行が完了いたしましたので、以下
の通りお知らせいたします。
  ================================================================
  《 SSLサーバ証明書の情報 》
     サーバ証明書種別:SSL ラピッドSSL(1年)
     サービスコード  :*************
     コモンネーム    :*************
     証明書有効期限  :2020年02月14日
  ================================================================
つきましては、以下に手順を記載いたしますので、お客様にてご利用サーバへ
の導入作業を行っていただきますよう、お願いいたします。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■SSLサーバ証明書 ご利用開始までの手順
  ▽STEP1
    会員メニューにログインし、「契約情報」の一覧から該当サービスの「サー
    バ証明書」ボタンをクリックしていただき、詳細画面よりSSLサーバ証明書
    をダウンロードしてください。
    ・会員メニュー - 契約情報
      https://secure.sakura.ad.jp/menu/service/index.php
  ▽STEP2
    ジオトラスト SSLサーバ証明書をご利用の際、お使いの機器へ中間CA証明書
    のインストールが必要となります。 
    下記URLより該当サービスの中間CA証明書を選択し、認証局のウェブサイト
    にて中間証明書をコピーし、テキストエディタに貼り付けていただき、中間
    CA証明書ファイルとして任意のファイル名で保存してください。
    ・ジオトラスト ラピッドSSL
      https://www.geotrust.co.jp/resources/rapidssl/repository/intermediate_sha2.html#mca
    ・ジオトラスト クイックSSL プレミアム
      https://www.geotrust.co.jp/resources/repository/intermediate_dc.html#dvov
    ※携帯電話(フィーチャフォン)や一部のレガシー端末・機器などとの通信を行う場合は
      クロスルート証明書もあわせてインストールください。
      クロスルート証明書は、各中間CA証明書の下にございます。
  ▽STEP3
    以下のマニュアルをご参考の上、ダウンロードした「SSLサーバ証明書」と
    「中間CA証明書」をサーバにインストールしてください。
    ▼さくらのレンタルサーバでご利用の場合
      ・新規お申込みの場合
        https://help.sakura.ad.jp/hc/ja/articles/206054802#033
      ・更新お申込みの場合
        https://help.sakura.ad.jp/hc/ja/articles/206054842#033
    ▼さくらのレンタルサーバ以外のサーバでご利用の場合
      ・ジオトラスト SSLサーバ証明書のインストール(新規・更新共通)
        https://help.sakura.ad.jp/hc/ja/articles/206208661
■サイトシールについて
  認証局によって認証されたWebサイトであることを証明するシールを設定する
  ことで、Webサイトを訪れるお客様に対し、安全で信頼できるサイトであるこ
  とをアピールすることができます。
  ・シールの設定
    https://help.sakura.ad.jp/hc/ja/articles/206056942
■証明書の更新について
  次回の申請が可能となる時期に、証明書更新のご案内をご登録メールアドレス
  宛てにお送りいたします。
  今後も引き続き更新にてご利用される場合は、円滑に更新が行えるよう、お早
  目にお申し込みをいただきますようお願いいたします。
  なお、証明書更新時には新規取得時と同額の申請料が必要となりますので、あ
  らかじめご了承ください。
(1)ActionController::RoutingError (No route matches [GET] "/assets..になる場合
ActionController::RoutingError (No route matches [GET] "/assets..
対策 config/environments/production.rbに以下の設定を追加する
config.public_file_server.enabled = true
(2)モーダルを使用している場合
config/environments/production.rbに以下の設定を変更する
【変更前】
config.assets.js_compressor = :uglifier【変更後】
config.assets.css_compressor = :sass(3)Apacheのエラー情報を表示しないように修正する
/etc/httpd.conf
変更1 エラー画面のフッター情報を表示しない
【変更前】
ServerSignature On
【変更後】
ServerSignature Off変更2 エラー画面のApacheのバージョン情報を表示しない
【変更前】
ServerTokens OS
【変更後】
ServerTokens Prod※なお変更後は、apacheを再起動すること
(補足3)ドメインの設定