レンタルサーバーで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モードで表示が遅い。処理が重いのでサーバー側でキルされる可能性がある。 |
※ネットで調査した所、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'はインストールできません。
これは解決できません。管理者権限が必要な「ライブラリ」(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]
関連記事
- Railsアプリを最小メモリで起動する
- Rails6のプロジェクト作成時の「RAILS_ENV=development environment is not defined in config/webpacker.yml, falling back to production environment」のエラー対策
- Active StorageのダウンロードURLを変更する[/rails/active_storage/blobs]
- Nginx + Pumaで複数のRailsプロジェクトを実行する [CentOS]
- RailsでVue.jsの開発を行う [単一ファイルコンポーネント/Hello Wolrd]
この記事を書いた人
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
プチモンテ代表、アーティスト名:プチモンテ | |
🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は叙情詩、叙情的な楽曲が多い。楽曲制作は2023年12月中旬 ~ |
オリジナル曲を始めました✨
YouTubeで各楽曲を公開しています🌈
https://www.youtube.com/@petitmonte