LoginSignup
1
2

More than 5 years have passed since last update.

Ubuntu on VagrantでRuby on Rails環境構築(1)

Last updated at Posted at 2017-03-17

2017.06.15追記
aptでruby-railtiesパッケージを入れる方法はgemの追加が難しいことが分かってきました。aptではruby本体のインストールにとどめ、残りはgemで入れる方法を採用しています。

apt -y install ruby-dev libmysqlclient-dev libmagick++-dev libcurl4-openssl-dev libssl-dev
gem install bundler mysql2 rails rmagick therubyracer passenger --no-ri --no-rdoc

最新のUbuntu16(Xenial)でRailsの「Welcome aboard」を出すまでの手順です。CentOSよりだいぶ手軽かも…。

注意事項

  • どこを見渡してもrbenv一色で、このやり方はかなりマイナー?な可能性があります。ひょっとしたらとんでもないディスアドバンテージが潜んでるかも…。
  • あくまで、Vagrant環境での構築手順です。セキュリティは一切考慮しません。

準備(vagrant + ubuntu)

まずは、vagrantに仮想環境を作ります。任意のディレクトリでボックスを初期化して。

mkdir ubuntu && cd ubuntu
vagrant init ubuntu/xenial64

生成されたVagrantfileの以下の行のコメントを外します。

config.vm.network "forwarded_port", guest: 80, host: 8080

仮想マシンを立ち上げてログイン。

vagrant up
vagrant ssh

ここから先はUbuntuのrootユーザで作業します。 sudo -i などのコマンドで予めrootに昇格してください。

apt -y update
apt -y upgrade

apt -y install mysql-server apache2 apache2-dev libapache2-mod-passenger rails
apt -y install ruby-railties ruby-bundler ruby-mysql2 ruby-devise ruby-rmagick

途中でMySQLのパスワードを設定しなさい、と何度かダイアログが出ますが、全て無視(そのままエンター)。さらに、mysqlにログインして以下のようにユーザと権限を追加します。これで一般ユーザ(ubuntu)からもmysqlクライアントを使ってデータベースを操作することが出来るようになります。

mysql -e "create user 'ubuntu'@'localhost'"
mysql -e "grant all privileges on *.* to 'ubuntu'@'localhost'"

Rails

ここはubuntuユーザで作業します。まずはRailsのプロジェクト作成。

cd /vagrant
rails new railsapp --database=mysql

データベースの接続ユーザを先ほど追加した名前に変更します(rootのままでは接続できません)。

config/database.yml
default: &default
  :
  username: ubuntu

空のデータベースを生成します。

rake db:create

UbuntuでRubyを入れると比較的新しい(執筆時点で2.3.1)バージョンが入るのですが、gemやbundlerがほとんど動作しない状況になってしまうようです(ここは不便なところですね)。その代わり、apt search ruby-(gemの名前) で検索すると、メジャーなものが多く用意されているようです。 bundle でエラーがでる場合は、aptからパッケージの追加を試みてください。

Apache2 + passenger

Webrickを立ち上げても勿論良いんですが、passengerを使って常に起動した状態にしてみます。
再びroot権限で作業します。

passengerが正しくインストールされているかどうかは、以下のコマンドで確認することができます。

passenger-config validate-install 

以下のファイルを編集します。

/etc/apache2/apache2.conf
<Directory /vagrant/>
        AllowOverride All
        Require all granted
</Directory>
/etc/apache2/sites-available/000-default.conf
DocumentRoot /vagrant/railsapp/public
PassengerAppEnv development

完了したら、Webサーバ(apache2)を再起動します。

service apache2 restart

以下のアドレスにアクセスして、おなじみの「Welcome aboard」が表示されたら成功です。

Screen Shot 2017-03-17 at 9.14.50.png

次はbootstrapの導入とscaffoldをやってみます。環境構築(2)

1
2
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
2