AWS cloud9でRailsを動かす

作成環境:Amazon Linux

Rails6で動かす

※先に言っておきますが、Rails6では動かせませんでした。Rails5で動かしたい方は下へどうぞ。

①rubyのバージョンを確認します。

ec2-user:~/environment $ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

2.6.3が入ってますね。

 

②railsのバージョンを確認します。

ec2-user:~/environment $ rails -v
Rails 5.0.0

 

③バージョン5が入っているので、最新にします。

ec2-user:~/environment $ gem install rails

最新になりました。(2020/04/16現在)

ec2-user:~/environment $ rails -v
Rails 6.0.2.2

 

④アプリケーションを作成します。アプリケーション名は適当にRailsAppとします。
時間が少しかかるので待ちます…。

ec2-user:~/environment $ rails new RailsApp

 

⑤作成が終わったらRailsを起動してみます。

ec2-user:~/environment $ cd RailsApp
ec2-user:~/environment/RailsApp (master) $ rails s

下記のようなエラーがでました。
Webpackerがインストールされていないとのことです。

/home/ec2-user/.rvm/gems/ruby-2.6.3/gems/webpacker-4.2.2/lib/webpacker/configuration.rb:95:in `rescue in load': Webpacker configuration file not found /home/ec2-user/environment/RailsApp/config/webpacker.yml. Please run rails webpacker:install Error: No such file or directory @ rb_sysopen - /home/ec2-user/environment/RailsApp/config/webpacker.yml (RuntimeError)

 

⑥なのでWebpackerをインストールします。
が、Yarnがないと言われました。

ec2-user:~/environment/RailsApp (master) $ rails webpacker:install
Yarn not installed. Please download and install Yarn from https://yarnpkg.com/lang/en/docs/install/

 

⑦Yarnをインストールします。

ec2-user:~/environment/RailsApp (master) $ npm install -g yarn

Yarnがインストールできました。

/home/ec2-user/.nvm/versions/node/v10.19.0/bin/yarn -> /home/ec2-user/.nvm/versions/node/v10.19.0/lib/node_modules/yarn/bin/yarn.js
/home/ec2-user/.nvm/versions/node/v10.19.0/bin/yarnpkg -> /home/ec2-user/.nvm/versions/node/v10.19.0/lib/node_modules/yarn/bin/yarn.js
+ yarn@1.22.4
added 1 package in 0.444s

 

⑧再度、Webpackerのインストールを実行します。

ec2-user:~/environment/RailsApp (master) $ rails webpacker:install

Webpackerがインストールできました。

(省略)
・
・
Webpacker successfully installed

 

⑨railsを起動してみます。

ec2-user:~/environment/RailsApp (master) $ rails s

今度は上手くいったようです。

=> Booting Puma
=> Rails 6.0.2.2 application starting in development 
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 4.3.3 (ruby 2.6.3-p62), codename: Mysterious Traveller
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://127.0.0.1:8080
* Listening on tcp://[::1]:8080
Use Ctrl-C to stop

 

⑩ブラウザで確認してみます。画面上部にある「Preview」→「Preview Running Application」をクリックします。

以下のエラーが出ました。

ブロックホストエラー

 

⑪これを解決するには以下のファイルにホストを指定してあげます。

ファイル:/RailsApp/config/application.rb

module RailsApp
  class Application < Rails::Application
    # Initialize configuration defaults for originally generated Rails version.
    config.load_defaults 6.0

    # Settings in config/environments/* take precedence over those specified here.
    # Application configuration can go into files in config/initializers
    # -- all .rb files in that directory are automatically loaded after loading
    # the framework and any gems in your application.

    config.hosts << "cfd5be313ae648ceaf0b2094042dd3f6.vfs.cloud9.ap-northeast-1.amazonaws.com" #←追加
  end
end

 

⑫一度railsを停止して再起動します。

今度は以下のエラーになりました。

SQLiteエラー

SQLiteのバージョンがRails6に対して古過ぎるということですが、どうも現在のAmazon Linuxではこの現象を回避できないようなので、Railsのバージョンは上げずにいきます。

 

Rails5で動かす

※Rails6で環境を作ってしまった方は、一度環境を削除して新しく環境を作り直したほうが早いです。

①rubyのバージョンを確認します。

ec2-user:~/environment $ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

2.6.3が入ってますね。

ec2-user:~/environment $gem install rails

 

②railsのバージョンを確認します。
バージョン5ですね。

ec2-user:~/environment $ rails -v
Rails 5.0.0

 

③アプリケーションを作成します。アプリケーション名は適当にRailsAppとします。
時間が少しかかるので待ちます…。

ec2-user:~/environment $ rails new RailsApp

作成後、railsのバージョンを確認するとなぜかちょっと変わります。

ec2-user:~/environment $ rails -v
Rails 5.0.7.2

 

④gemfileのsqlite3の部分を以下のように書き換えます。

gem 'sqlite3','~> 1.3.6'

 

⑤bundle installを実行します。

ec2-user:~/environment $ bundle install

 

⑥railsを起動します。

ec2-user:~/environment/RailsApp (master) $ rails s

ようやく実行できました。

Rails実行画面

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


ABOUTこの記事をかいた人

子どもが産まれたことをきっかけに働き方を見直し、フリーランスSEになった30代の父親。 埼玉県某市在住。 妻と娘(3歳)とペット(フェレット)で、日々悩みながらも楽しく過ごしています。