3.1.1.想定するセットアップ環境
本手順ではCentOS 6系OS環境下にTSVツールをセットアップする前提とする。
また、OSは既にインストール済み、sudoが利用可能なユーザ(operatorとする)が登録済みであるものとする。
また、予め以下のようにsudo実行時に環境変数PATHが引き継がれるよう設定しておくこと。
$ {
echo ‘Defaults !secure_path’
echo ‘Defaults env_keep += “PATH”’
echo ‘operator ALL=(ALL) ALL’
} | sudo tee -a /etc/sudoers .d /operator
|
3.1.1.1.SELinuxの無効化、iptablesの設定
SELinuxの無効化を行う。
$ sudo cp /etc/sysconfig/selinux {,.orig}
$ sudo vim /etc/sysconfig/selinux
$ sudo diff -u /etc/sysconfig/selinux {.orig,}
--- /etc/sysconfig/selinux .orig 2016-01-18 18:19:31.057356294 +0900
+++ /etc/sysconfig/selinux 2016-01-18 18:19:44.116354782 +0900
@@ -4,7 +4,7 @@
-SELINUX=enforcing
+SELINUX=disabled
|
iptablesの設定を行う。 以下ではTSVツールを80番ポートで実行するものとして記述する。
$ sudo cp /etc/sysconfig/iptables {,.orig}
$ sudo vim /etc/sysconfig/iptables
$ sudo diff -u /etc/sysconfig/iptables {.orig,}
--- /etc/sysconfig/iptables .orig 2016-01-18 18:20:37.038356384 +0900
+++ /etc/sysconfig/iptables 2016-01-18 18:20:48.782353332 +0900
@@ -8,6 +8,7 @@
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
+-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
|
3.1.1.2.パッケージのインストール
3.1.1.2.1.EPELリポジトリの追加
外部リポジトリで提供されるパッケージを利用可能にする。
環境によって利用するrpmファイルが変わるため、以下のコマンドのうち "http://..." 以降は適宜読み替えること。
$ sudo rpm -ivh http: //dl .fedoraproject.org /pub/epel/6/x86_64/epel-release-6-8 .noarch.rpm
|
3.1.1.2.2.開発ツールのインストール
コンパイラやRubyやPassengerのビルドに必要なライブラリ等をインストールする。
$ sudo yum -y groupinstall "Development Tools"
$ sudo yum -y install openssl-devel readline-devel zlib-devel curl-devel libcurl-devel libyaml-devel
|
3.1.1.3.SQLiteのインストール
一時データの保存に利用するSQLiteをインストールする。
$ sudo yum -y install sqlite sqlite-devel
|
3.1.1.4.Rubyのインストール
Rubyをインストールする場合、rpmを取得してインストールする、rvmやrbenvといったバージョン管理システムを使ってインストールする、
ソースコードからコンパイルしてインストールする、などの方法があり、どれを選択しても構わない。
本資料ではソースコードからコンパイルする方法を記述する。
$ sudo mkdir /opt/src
$ sudo chown operator:operator /oopt/srcc
$ cd /opt/src
$ curl -O https: //cache .ruby-lang.org /pub/ruby/2 .2 /ruby-2 .2.3. tar .gz
$ tar zxvf ruby-2.2.3. tar .gz
$ cd /opt/src/ruby-2 .2.3
$ . /configure --prefx= /opt/ruby-2 .2.3
$ make
$ sudo make install
$ sudo ln –s /opt/ruby-2 .2.3 /opt/ruby
$ echo ‘ export PATH= /opt/ruby/bin :$PATH’ >> /home/operator/ .bash_profile
$ echo ‘ export PATH= /opt/ruby/bin :$PATH’ | sudo tee –a /etc/profile .d /ruby .sh
|
一度ログアウトし再ログインする。sudoでrubyコマンドとgemコマンドが利用可能であることを確認する。
$ sudo ruby - v
ruby 2.2.3.p173 (2015-08-18 revision 51636) [x86_64-linux]
$ sudo gem - v
2.4.5.1
|
3.1.1.4.1.Bundlerのインストール
gemと呼ばれるRubyのライブラリ群を管理するためのツールであるBundlerをインストールする。
$ sudo gem install bundler --no-rdoc --no-ri
|
3.1.1.5.Apacheのインストール
WebサーバであるApacheをインストールする。
3.1.1.6.Phusion Passengerのインストール
アプリケーションサーバであるPassengerをインストールする。
$ sudo gem install passenger --no-rdoc --no-ri
$ sudo yum –y install httpd-devel apr-devel apr-util-devel
$ sudo passenger- install -apache2-module
|
インストールの途中で次のようなApacheの設定ファイル用のメッセージが表示されるため、記録しておくこと。
Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /opt/ruby- 2.2 . 3 /lib/ruby/gems/ 2.2 . 0 /gems/passenger- 5.0 . 23 /buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /opt/ruby- 2.2 . 3 /lib/ruby/gems/ 2.2 . 0 /gems/passenger- 5.0 . 23
PassengerDefaultRuby /opt/ruby- 2.2 . 3 /bin/ruby
</IfModule>
After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!
|
3.1.1.7.Apacheの設定ファイルの追加
TSVツールを動かすためのApache用設定ファイルを作成する。
ここでは/etc/httpd/conf.d/以下の*.confファイルが自動で読み込まれるものとして記述する。
また、TSVツールのソースコードの配置場所を/var/lib以下とするものとして記述する。
/etc/httpd/conf.d/passenger.confに、Passengerのインストール時に表示された設定内容を記述する。
以下に例を示す。(環境によって異なるため、これをそのまま利用しないこと。)
LoadModule passenger_module /opt/ruby- 2.2 . 3 /lib/ruby/gems/ 2.2 . 0 /gems/passenger- 5.0 . 23 /buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /opt/ruby- 2.2 . 3 /lib/ruby/gems/ 2.2 . 0 /gems/passenger- 5.0 . 23
PassengerDefaultRuby /opt/ruby- 2.2 . 3 /bin/ruby
</IfModule>
|
ここではバーチャルホストでTSVツールを実行する例を示す。
/etc/httpd/conf.d/passenger.confに以下を記述する。 ポート番号やログファイルのパスなどは適宜変更すること。
Apacheのバージョンが2.2系の場合の例を以下に示す。
Listen 80
NameVirtualHost *: 80
<VirtualHost *: 80 >
ServerName localhost
DocumentRoot /var/lib/tsv-tool/ public
<Directory /var/lib/tsv-tool/ public >
Options FollowSymLinks
AllowOverride None
</Directory>
LogLevel info
ErrorLog /var/log/httpd/tsvtool-error.log
CustomLog /var/log/httpd/tsvtool-access.log combined
</VirtualHost>
|
Apacheのバージョンが2.4系の場合の例を以下に示す。
Listen 80
<VirtualHost *: 80 >
ServerName localhost
DocumentRoot /var/lib/tsv-tool/ public
<Directory /var/lib/tsv-tool/ public >
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
LogLevel info
ErrorLog /var/log/httpd/tsvtool-error.log
CustomLog /var/log/httpd/tsvtool-access.log combined
</VirtualHost>
|
また、以下にドキュメントルート以外でTSVツールを動作させるための設定例をApacheのバージョンが2.2系の場合を例にして以下に示す。
Listen 80
NameVirtualHost *: 80
<VirtualHost *: 80 >
ServerName localhost
DocumentRoot /var/lib/my_php_app/ # 既存のアプリケーション
PassengerEnabled off # サブディレクトリでのみPassengerを有効にするためoff
PassengerAppRoot /var/lib/tsv-tool # TSVツールのルートディレクトリを設定
Alias /tsv-tool/ /var/lib/tsv-tool/ public / # http:
RackBaseURI /tsv-tool # TSVツールのベースURIを設定
<Directory /var/lib/my_php_app/>
DirectoryIndex index.html index.php
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/lib/tsv-tool/ >
PassengerEnabled on # TSVツールのディレクトリに限りPassengerを有効にする
Options FollowSymLinks
AllowOverride None
</Directory>
</VirtualHost>
|
以下のコマンドで設定内容に問題がないかを確認する。
$ sudo /etc/init .d /httpd configtest
|
3.1.1.8.ソースコードの配置、ライブラリのインストール、設定ファイルの作成
Apacheに設定した通り、/var/lib配下にソースコードを配置し、TSVツール用のライブラリをインストールする。
$ cd /var/lib/tsv-tool
$ bundle install
|
TSVツール用の設定ファイルを作成する。
$ cp config /config .yml{.example,}
|
必要があれば設定を変更する。
Apacheを実行するユーザグループで読み書きできるようオーナーを変更する。
$ sudo chown -R apache:apache /var/lib/tsv-tool
|
ソースコード配置後、Apacheを再起動する。
$ sudo /etc/init .d /httpd graceful
|