- Ubuntu 14.04
- Ruby 2.2.4 (最新版)
以下のコマンドをうち,Rubyをインストールするために必要な物をまとめてインストールする.
$ sudo apt-get update
$ sudo apt-get install git-core curl nodejs zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
Rubyの最新版を入れる.書いた当時は2.2.4だった.
cd
git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL
git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash
rbenv install 2.2.2
rbenv global 2.2.2
ruby -v
ちなみにUbuntu 14.04ではデフォルトのRubyが1.9系で古い(ゴミ)
次にbundler
を使えるようにする.
echo "gem: --no-ri --no-rdoc" > ~/.gemrc
gem install bundler
Railsの新しいアプリを作成してみる.ここでVagrantを利用しているユーザーは/vagrant/
以下に新しいディレクトリを作成しそこにRailsのアプリを作成する.
こうすることでホストマシン側からも簡単にアクセスでき非常に使いやすい.
例えば適当にtutorial
というディレクトリを作成しそこにアプリを生成する.
$ rails new tutorial -d mysql # MySQLを後々利用するため
次に起動させる.起動させるには
$ bundle exec rails s -b 0.0.0.0 -p 3000
で起動する.これでブラウザの3000番ポートにアクセスすれば起動するはずである.
今回はデータベースとしてMySQLを選択する.とりあえずMySQLをインストールしrootユーザーのパスワードを設定する.
$ sudo apt-get install mysql-server libmysqlclient-dev
次にRailsで使うためのユーザーを作成しそのユーザーに対し権限を付与する.
$ mysql -uroot -ppassword # mysqlにユーザーroot, パスワードpasswordでログイン
mysql> create user tutorial identified by 'password'; -- ユーザーtutorial, パスワードpasswordを設定
...
mysql> GRANT ALL on *.* TO 'tutorial'@'localhost' identified by 'password'; -- 全権限をユーザーtutorialに付与
...
mysql> show grants for tutorial;
+------------------------------------------------------------------------------------------------------------------+
| Grants for tutorial@localhost |
+------------------------------------------------------------------------------------------------------------------+
| GRANT CREATE ON *.* TO 'tutorial'@'localhost' IDENTIFIED BY PASSWORD '*A74AAAE111D6801C32E1042F47AC1DF0EE557559' |
+------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
以上で設定できた.あとはDB自体の設定config/database.yml
のユーザー名とパスワードを先ほど設定したものに変え,
$ bundle exec rake db:create
$ bundle exec rake db:migrate
でDBに接続できるはず
普通に
rails s
しても起動しない.なぜかVagrantで3000番ポートが貫通してくれないのでSSHでポートフォワーディングを張るとかいう荒業
ssh -L 3000:localhost:3000 vagrant@localhost -p 2222
よくわからんがホストIPを
localhost
とか127.0.0.1
にせず0.0.0.0
にすれば動く.bundle exec rails s -b 0.0.0.0 -p 3000