kurodakazumichi / issues

0 stars 0 forks source link

【Ruby on Rails】導入 #14

Open kurodakazumichi opened 6 years ago

kurodakazumichi commented 6 years ago

概要

RubyをベースとしたWEBアプリケーションを簡単に作るためのフレームワーク

公式サイト

http://rubyonrails.org

kurodakazumichi commented 6 years ago

環境構築

Setup Vagrant

mkdir ~/rails && cd $_ # 作業ディレクトリ作成 & 移動
vagrant init centos/6 # centos/6 boxはあらかじめ登録済
vi Vagrantfile # private_networkを有効に、synced_folder type:"virtualbox"、forward_agent=true
ssh-add ~/.ssh/id_rsa # 秘密鍵を登録
vagrant plugin install vagrant-vbguest # 共有フォルダのためのプラグインをインストール
vagrant up # 仮想マシン起動
vagrant ssh

### root
vi /etc/selinux/config # SELINUX=disabled
reboot

# filewall停止
service iptables stop
chkconfig iptables off

# gitとvimをinstall
yum install git
yum install vim

Install Ruby

### root
yum install -y openssl-devel readline-devel zlib-devel # ruby installでないと怒られたので入れる。

### vagrant
git clone git://github.com/sstephenson/rbenv.git .rbenv
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile 
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
. .bash_profile 

rbenv install 2.4.0
rbenv global 2.4.0

Install Sqlite

yum -y install sqlite-devel # これがないとrailsのアプリケーション作成時にエラーがでる。
# sqlite 3.6.20は最初から入ってたので特になし。

Install Rails

### vagrant
gem install rails --no-document

Create Rails Application

cd ~
rails new myapp
kurodakazumichi commented 6 years ago

トラブルシューティング

とりあえずビルトインサーバーを立ち上げてみようというところでエラー発生。

Bundler::GemRequireError: There was an error while trying to load the gem 'uglifier'.

gem 'uglifier'をロードしようとしたらエラーになったらしい。

解決方法

Gemfiletherubyracer'のところをコメントアウトしてbundle install`すればなおるとのこと

やってみたら今度は

An error occurred while installing therubyracer (0.12.3), and Bundler cannot continue. Make sure that gem install therubyracer -v '0.12.3' succeeds before bundling.

therubyraceのインストールでエラーが起きたとか

make: g++: Command not found

g++ コマンドがないだとか、どうにもコンパイルに失敗しているというかコンパイラがないくさい。

コンパイラを入れて再チャレンジ

### root
yum -y install gcc-c++

### vagrant
cd ~/myapp
bundle install

サーバーを立ち上げてみたらうまくいった

rails s -b 192.168.xx.xx -d

-b バインディングオプション、仮想環境のIPを指定。ブラウザからアクセスする際のIPになる。 -d デーモンで起動する

デーモン起動したサーバーを落とす方法

  1. プロセスIDを調べる
  2. 該当プロセスをkill
cat ~/myapp/tmp/pids/server.pid # 5394
kill -9 5394
kurodakazumichi commented 6 years ago

トラブルシューティング

Windowsで同様の環境を構築しようとしたらうまくいかなかったこと

railsのバージョンが5.2.0になってしまう

gem install rails --no-document

とするだけではどのバージョンのrailsが入るかは環境によるみたいだ。

現状の環境で扱えるrailsのバージョンを確認

gem list rails

*** LOCAL GEMS ***

coffee-rails (4.2.2)
rails (5.2.0)
rails-dom-testing (2.0.3)
rails-html-sanitizer (1.0.4)
sass-rails (5.0.7)
sprockets-rails (3.2.1)

この環境では5.2.0しか扱えなかったらしい

rails 5.1.3をインストールする

gem i -v 5.1.3 rails

rails 5.1.3を指定してアプリケーションを作る

rails _5.1.3_ new myapp

これで指定したバージョンのrailsを使える。