ホーム > カテゴリ > Ruby・Ruby on Rails >

レンタルサーバーでRuby on Railsを動かす? [デプロイ]

最近、RubyとWebフレームワークであるRuby on Railsを始めました。

参考書は「現場で使える Ruby on Rails 5速習実践ガイド」「プロを目指す人のためのRuby入門」で、合計10.5日で読破しました。

さて、ローカル環境でRailsのプロジェクトは構築できるようになったのですが、双方の参考書では、Webで公開する方法が記載されていません。

デプロイするには「IaaSであるAWS、PaaSのHeroku、VPSのさくら、ConoHa、クラウドVPS(GMO)、WebARENA(VPSクラウド)、KAGOYA CLOUD」などがありますが、今回はレンタルサーバーで試して見ました。

結論

レンタルサーバーでRailsは動作しないと思った方が良い。特殊な方法で動作させてもCGIモードで表示が遅い。処理が重いのでサーバー側でキルされる可能性がある。

XREA、コアサーバーの運営元のバリュードメインに問い合わせた所、「FastCGIでRubyは動作しません。また、CGIモードでRailsが動作するかはサーポート対象外なのでお答えできません。」との事でした。

※ネットで調査した所、2010年頃はFastCGIで動作した模様。

以下、わたしの奮闘記となります。ご参考までに。

XREAのサーバー構成

Railsが初期状態でインストールされています。コアサーバーも恐らく同じ。

Apache/2.4.6 (CentOS)
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
rbenvではなくrvmでrubyを管理
RubyGems 2.6.10
Bundler version 1.14.5
Rails 5.0.1

管理者権限でこれらがインストールされているので、厄介です。

rbenvをインストールすると、他のバージョンのRuby/Railsを利用可能です。ただし、「rvm system」でRVMを無効にして「rbenv global 2.5.1」で2.5.1のRubyを有効にできますが、一定の時間が経過すると「bundle install」では管理者権限でインストールされているRVM経由のRubyのgemsの方へ書き込みに行ってしまい。書き込み権限がないというエラーになります。

※初期状態でインストール済みのRailsは使用しない方が良いです。何故ならばレンタルサーバーなのでいつ、バージョンアップされるか不明です。

CGI/FastCGI

Railsで作成されているRedmine(プロジェクト管理ソフトウェア)のソースコードが参考になります。主に「dispatch.fcgi」「.htaccess」。その他は、Railsプロジェクトの公開方法をご教授ください

ちなみに、rbenvでRuby2.5.1をインストールした時のdispatch.fcgiのShebang(先頭行の#!)は次のようになります。

#! /virtual/ユーザー名/.rbenv/versions/2.5.1/bin/ruby

dispatch.fcgiのコードで使用されているRackではCGI、FastCGI、WEBrick、LSWS、SCGI、Thinが指定可能です。

FastCGIで付け加えると、gem 'fcgi'はインストールできません。

An error occurred while installing fcgi (0.9.2.1), and Bundler cannot continue. Make sure that `gem install fcgi -v '0.9.2.1' --source 'https://rubygems.org/'` succeeds before bundling.

これは解決できません。管理者権限が必要な「ライブラリ」(fcgi開発パッケージ? fcgi-devel? libfcgi-dev?)のインストールが出来ないからです。

CGI系ファイルのパーミッションは「705 or 755」を忘れずに。

Puma

Pumaに関しては「bin/rails s」は「bin/rails: Permission denied」です。なので、cdでbinに移動してから「rails s」でPumaを起動します。但し、30秒ぐらいで見事にキルされます。

どうする?

ConoHaのVPSを学習の為に契約しようと思っています。最初はメモリ1GB(年10,800円)で様子を見て、アクセス数に応じて2GB(年21,000円)、4GB(年41,040円)にスケールアップしようと考えています。

VPSを契約しました。
Nginx/Unicorn/Ruby on Railsの本番環境構築/デプロイ [CentOS]





関連記事



公開日:2019年09月10日 最終更新日:2019年09月15日
記事NO:02765