XREAにRuby on Railsをインストールした話

  • 2018.03.14
  • Web

おさかなです。ホワイトデーですね。
最近は説明会出席やES執筆に追われてしまい就活一色です。
ただ気分転換も兼ねてちょっとだけWeb系の話を書いておこうと思います。

私が現在使っているXREAには、レンタルサーバーには珍しくPHPだけではなくPerl、Ruby、Pythonが入っており自由度が比較的高いです。
更にPHPとRubyではバージョン管理ツールも入っていて切替可能だったりfastCGI対応だったりと結構色々いじれます。
PostgreSQL(EC-cubeなどで主流)もサポートしていたりと多様な環境に対応していますね。
勿論管理者権限はもらえませんし過剰なリソース占有には注意しなければいけませんが、それなりのことはできそうです。

これを使ってRuby on Railsを導入してみました。
XREAにRuby on Railsを導入する方法についてはいくつかのブログに書いてあるのですが、どれも情報が古く困ったものでした。
せっかくなのでここにまとめておきます。
ちなみに、多分CORESERVERでも同様にできると思います。

SSH接続と公開鍵認証の導入

Railsをインストールする前に、SSH接続について見ていきます。
これはそこまで情報も変わらないので、数あるブログの情報を参考にして進めていきます。
ちなみに私はWindows10環境でSSHクライアントとしてGit Bash、FTPクライアントとしてfilezillaをインストールしています。
Macならターミナルから直接SSH接続できますね。

1. ホスト情報の登録

コントロールパネルの
サイト設定 > ツール/セキュリティ > SSH接続IP許可
からSSH接続IP許可のボタンを押して現在接続中のIPを登録します。
これには5分程時間が掛かります。
SSH接続許可の画面です。

2. SSH接続

SSHクライアントを開いて、以下のコマンドを打ち込みます。
勿論ユーザー名やサーバー名は各人によって異なるので、届いたメールを参照して適宜入力してください。

$ ssh (ユーザー名)@(サーバー名).xrea.com

入れるとパスワードを求められるのでこれも打ち込みます。
$マークの前が [(ユーザー名)@(サーバー名)]に変われば成功です。

3. 鍵作成

このままでは毎回パスワードを求められるのが面倒なので公開鍵認証に切り替えたいと思います。 Bashで以下のコマンドを実行します。

$ ssh-keygen

保存先を聞かれるので、Enterを押して指定します。
パスフレーズも聞かれますが、入力すると公開鍵認証の際に毎回聞かれるのでかなりの手間です。
入力しないほうが楽でしょう。

これが終わると指定した保存先にid_rsaとid_rsa.pubという2つのファイルが作成されているはずです。
前者が秘密鍵、後者が公開鍵なので前者をむやみに他人に渡さないようにしましょう。
詳細は割愛しますがアクセス権限を変更しておけばよいかと思います。

参考: Git BashでSSH鍵(キー)を作成し、Bitbucketとつなぐ

4. サーバーに公開鍵を設置

公開鍵認証を利用するためには、サーバーの/.ssh というディレクトリに公開鍵をauthorized_keysというファイル名で置く必要があります。 scpコマンドを利用する方法もありますが、今回はFTPクライアントを利用してもう少し分かりやすく進めることにします。 では、以下のコマンドを実行して/.ssh ディレクトリを作成しましょう。

$ mkdir .ssh

filezillaでアクセスできるよう、このディレクトリのアクセス権限を 700 に変更します。

$ chmod 700 .ssh

filezillaからこの /.ssh ディレクトリに先程作成した公開鍵ファイル (id_rsa.pub) をアップロードします。
終わったら再びBashで以下のコマンドを実行します。
流れとしては、authorized_keys という名前の空のファイルを作成してから、id_rsa.pub ファイルの中身を authorized_keys ファイルにコピーして不要になった id_rsa.pub ファイルを削除するというものです。
authorized_keys ファイルの権限を 600 に戻すのも忘れずに行いましょう。

$ cd .ssh
$ touch authorized_keys
$ cat id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys
$ rm id_rsa.pub

ここまで終わったら、exitでログアウトしてから再び2. と同様にsshコマンドでログインしてみましょう。
パスワードを求められなくなったら成功です。

参考: xreaにSSHでシェルログイン

Ruby on Railsインストール

いよいよ本題に入ります。

一般的に、Railsの導入にはRubyとバージョン管理ツールであるRubygemsをインストールする必要があります。
実はXREAにはRubyもRubygemsも既に入っているため、gem install rails を実行すればすぐに導入できます。
gem -vで確かめてみると私の場合は2.6.10と出てきました。
ただ、実際に実行してみるとエラーになり、以下の文が出てきます。

ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/local/rvm/gems/ruby-2.3.0 directory.

これは、/usr/local/rvm/ディレクトリという管理者権限が必要な領域に書き込もうとするからのようです。
そこで、環境変数を変更して書き込む領域を変更してしまいましょう。

1. 環境変数の変更

ルート直下にある.bashrcを開きます。
これはBashからviで開いても良いですし、filezillaから直接いじっても良いです。
これの後ろに以下の記述を追加します。

PREFIX=$HOME
export PATH=$PREFIX/bin:$PREFIX/lib/ruby/gems/2.3/bin:$PATH
export GEM_HOME=$PREFIX/lib/ruby/gems/2.3
export RUBYLIB=$PREFIX/lib/ruby:$PREFIX/lib/site_ruby/2.3:$PREFIX/lib

2. 環境変数を読み込ませる

次のコマンドを実行して環境変数を読み込ませます。

$ source ~/.bashrc

3. Railsをインストールする

次のコマンドを実行してインストールするだけです。 ただ、時間の掛かる命令はkillするようになっているので、途中で切られるはずです。 完了するまで何度かやり直しましょう。

$ gem install rails

終わったらインストールされているかを以下のコマンドで確認しましょう。

$ rails -v

これでバージョン名が出てきたら終了です。
私の場合はRails 5.1.5がインストールされていました。
お疲れ様でした。

参考: XREAで、RAILSをfastcgiで動かす。2.3.5


いかがでしたか。VPSとは違ってかなり楽々ですね。
レンタルサーバーにしては自由度が高すぎてびっくりです。通常ならPHPしかサポートしていないでしょうからね。
古い情報とは異なり、Rubygemsをインストールし直す必要もありません。

WordPressと共存するためには.htaccessをいじったりしないとなといったところですが、それはまた後日にします。
それではなにかのお役に立てれば幸いです。