LoginSignup
1
4

More than 5 years have passed since last update.

RailsアプリケーションをHerokuでホスティングする方法(開発用にvagrant&virtualBoxを利用する)

Posted at

Vagrant & VirtualBox Heroku & Railsでアプリケーションを作るまでの道のり

目次

  • はじめに
  • システム構成
  • 開発環境構築(Vagrant & VirtualBox)

はじめに

RailsアプリをHerokuでホスティングする方法に加えて開発環境
Pushした時にエラー地獄にあったので開発環境構築からHeroku反映までの手順を忘れない用に自分にメモしておく。

基本はこの流れにそっています(RVMではなくrbnevを使うとか細かいところで違いはありますが)

実際にやってみて幾つか詰まったところがあったので追記あり

下記の記事から手順を参考にさせてもらいましたm(_ _)m

システム構成

本番はHeroku、ローカルはVagrantとVirtualBox使ってVMたてる。
あとで詳しく書く。

開発環境構築

インストールが必要なアプリケーション

1: CentOSのboxを追加して仮装マシンを作成する
vagrant box add centos65-x86_64-20140116 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
2: 追加されたboxの確認
vagrant box list
centos65-x86_64-20140116 (virtualbox, 0)
3: vagrantの初期化

初期化は初回のみ

vagrant init centos65-x86_64-20140116
4: Vagrantfile修正

railsで利用するためVagrantfileを書き換える

vim Vagrantfile

// 3000番ポートへのアクセスを許可
config.vm.network "forwarded_port", guest: 3000, host: 3000  
// 下記のIPでアクセスできる用にする
config.vm.network "private_network", ip: "192.168.33.10"
// vagrant内のデータを./data以下に展開する(エディタで作業し易いように)
config.vm.synced_folder "~/path/to/your/git/folder", "/home/vagrant/path/to/synced",
    type: "rsync",
    rsync__args: ["--verbose", "--archive", "--delete", "--copy-links", "--times", "-z"],
    rsync__exclude: [".git/"]
5: 仮想サーバー操作でよく使うコマンドたち

ここではサーバの起動とssh接続までやっておく

// サーバー起動
vagrant up

// ローカルのデータとrsyncさせる(watch状態になる)
vagrant rsync-auto

// サーバーへのssh接続
vagrant ssh

// サーバーシャットダウン(Mac側からやる場合は下記。VMにsshした状態でshutdownしてもおk)
vagrant halt
6: 仮想サーバーの基本設定

ホストのMacからしかアクセスしないため、VMにsshした状態でiptablesを止める。(作業し易いため)

sudo service iptables stop
sudo chkconfig iptables off

yum最新化

sudo yum -y update

サーバーの時間合わせる

date
//時間がズレていたら、以下を実行
sudo cp -p  /usr/share/zoneinfo/Japan /etc/localtime

必要最低限の設定追加

sudo yum -y install vim wget
sudo yum install -y curl-devel openssl-devel readline-devel zlib-devel expat-devel gettext-devel perl-ExtUtils-MakeMaker sqlite-devel

※ gitはyum経由で入れるとバージョンが古いため、リポジトリから直接持ってくる

git-core リポジトリ

wget https://www.kernel.org/pub/software/scm/git/git-2.9.4.tar.gz
sudo tar -zxf git-2.9.4.tar.gz
rm git-2.9.4.tar.gz

cd git-2.9.4
sudo make prefix=/usr/local all
sudo make prefix=/usr/local install

git --version
git version 2.9.4

// 右記のエラー出たとき: -bash: /usr/bin/git: No such file or directory
hash -r

bitbucketとかと接続するために鍵作っとく

ツール側に鍵の登録忘れずに

ssh-keygen -t rsa -f id_rsa -b 4096
7: rbenv経由でrubyを追加

gitからrbenvとruby-buildを落としてパスを通しておく

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://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
exec $SHELL -l

現在rbenv経由でインストールできるrubyのversionをチェックしておく

rbenv install --list

※ Herokuが現状2.3.1っぽいのでそれを使っておく

rbenv install -v 2.3.1

環境読み込み

rbenv rehash

インストールされているruby一覧を確認

rbenv versions
 2.3.1

globalに指定する

rbenv global 2.3.1

rubyのバージョンチェック

ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
8: rails導入

インストールとバージョン確認

gem install rails

rails -v
Rails 5.1.0

※ アプリ作成は後ほど

9 :Heroku導入

CLIインストール

sudo wget -qO- https://toolbelt.heroku.com/install.sh | sh
echo 'PATH="/usr/local/heroku/bin:$PATH"' >> ~/.profile
echo 'source .profile' >> ~/.bash_profile

// 初回のみ.profileを読み直す
source .profile

// インストール確認
heroku version
heroku-cli: Installing CLI... 23.85MB/23.85MB
heroku-toolbelt/3.99.1 (x86_64-linux) ruby/2.3.1
heroku-cli/5.9.2-2622131 (linux-amd64) go1.7.5

// ログインチェック
heroku login
Email: herokuにログインしているemail
Password: herokuにログインしているパスワード

// アプリ作成 myappの部分は好きな名前に
heroku create myapp

※ HerokuのApp名とrailsのApp名は合わせる必要がある

10: railsアプリ作成
// vm上にsqliteがないので先に追加しておく
gem install sqlite3 -v '1.3.13'

// myappの部分はherokuのapp名と合わせる
rails new myapp

Gemfileの書き換え

// devではsqlite、prodではpostgresをつかう
# Use sqlite3 as the database for Active Record

group :development do
  gem 'sqlite3'
end
group :production do
  gem 'pg'
  gem 'rails_12factor'
end

// 表示確認用に追加
gem 'therubyracer', platforms: :ruby

// Gemfile.lock作成
bundle install --without production

サーバー起動するか確認

rails s

// これでwelcomeの画面でるはず
http://localhost:3000/

herokuにPushした際にpublic以下にhtmlファイルが必要なため作っておく

vim public/index.html
// 中身はよしなに
11: HerokuにPushする

初回のみherokuのリモートにあるアプリと紐付ける

heroku git:remote --app myapp

プッシュする

git push heroku master

これでHeroku側のURLにアクセスすればpublic/index.htmlが表示されます

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4