Rails on MacOSX with Nginx + Unicorn + MariaDB

これまでにMacOSX上に開発環境をNginx + Unicorn + MariaDBで整えてきました。

今回は実際にRailsプロジェクトを作って動くかどうか確認です。

→結果うまく行きました。

Railsプロジェクトを作成(例としてHelloRails)

rails new HelloRails -d mysql

ほんとは、

$ mkdir HelloRails
$ cd HelloRails
$ bundle init
$ vi Gemfile
  gem 'rails', '~> 5.1.6'
$ bundle install --path vendor/bundle
$ bundle exec rails new . -d mysql --skip-bundle

とかした方がいいのかな?

Gemfile編集

$ cd HelloRails
$ vi Gemfile

  gem 'unicorn', '~> 5.4.0'
  #gem 'puma', '~> 3.7'

bundle install

$ bundle install --path vendor/bundle

database.ymlを編集

$ vi config/database.yml

default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  socket: /tmp/mysql.sock
  timeout: 5000
  host: localhost
  username: <%= ENV['DB_USERNAME'] %>
  password: <%= ENV['DB_PASSWORD'] %>

(以下略)

defaultに入れていますが、developmentとproductionの環境に合わせて調整してしてもOKです。DB_USERNAMEとDB_PASSWADを環境変数に設定しておいて読み込ませるようにすれば、Git等で公開したときも安心ですね。

unicorn.rb作成

$ vi config/unicorn.rb

rails_root = File.expand_path('../../', __FILE__)

worker_processes 2
working_directory rails_root

listen "#{rails_root}/tmp/unicorn.sock"
pid "#{rails_root}/tmp/unicorn.pid"

stderr_path "#{rails_root}/log/unicorn_error.log"
stdout_path "#{rails_root}/log/unicorn.log"

Nginx, Unicorn, MariaDB起動

$ sudo nginx
$ bundle exec unicorn_rails -c config/unicorn.rb -E development -D
$ mysql.server start

Nginxの設定は以前の記事参照

とりあえずScaffoldで必要なファイル作成

$ bundle exec rails generate scaffold book title:text price:integer
$ bundle exec rails db:create
$ bundle exec rails db:migrate

アクセスしてみる

Nginxの設定で8081を指定してるので、localhost:8081/booksにアクセスしてみる。

無事表示されました。よかったよかった。

次は本番環境へのアップですね。

3 COMMENTS

[Rails App] Hello World! – sus4 Blog

[…]  sus4 BlogRails on MacOSX with Nginx + Unicorn + MariaDBhttps://www.b13.app/?p=637これまでにMacOSX上に開発環境をNginx + Unicorn + MariaDBで整えてきました。 今回は実際にRailsプロジェクトを作って動 […]

[Rails App] Hello World! | sus4 Blog

[…]  sus4 BlogRails on MacOSX with Nginx + Unicorn + MariaDBhttps://www.b13.app/?p=637これまでにMacOSX上に開発環境をNginx + Unicorn + MariaDBで整えてきました。 今回は実際にRailsプロジェクトを作って動 […]

現在コメントは受け付けておりません。