LoginSignup
6
7

More than 5 years have passed since last update.

CentOS6でLodgeをセットアップした

Last updated at Posted at 2016-02-08

OS

  • CentOS 6のminimal.isoでインストール
  • ユーザはrootのみ

Network

  • デフォルトではeth0のONBOOTがnoになっているので変更する

Network設定変更手順

vi /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart

ifcfg-eth0の内容

DEVICE=eth0
HWADDR=ないしょ(変更しない)
TYPE=Ethernet
UUID=ないしょ(変更しない)
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=固定IPふります
PREFIX=24
GATEWAY=ゲートウェイのアドレスうちます
DNS1=DNSのアドレスうちます

iptables停止

service network stop
chkconfig --level 35 iptables off

SELinux停止

setenforce 0
vi /etc/selinux/config    # SELINUX=disableにする
init 6           # OS再起動

前提パッケージのインストール

Ruby 2.1のインストール

公式ではRuby2.0以上になっているが2.2以上だとエラーがでる (今はでないかも)

Ruby 2.1インストール手順

yum -y groupinstall "Development Tools"
yum -y install openssl-devel readline-devel zlib-devel libcurl-devel libicu-devel cmake
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
source ~/.bash_profile
rbenv install 2.1.8
rbenv global 2.1.8

MySQLインストール

MySQLインストール手順

yum -y install mysql-server mysql-devel

MySQLの設定

chkconfig --level 35 mysqld on
service mysqld start

Bundlerのインストール

gem install bundler
rbenv rehash

nginxのインストール

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum -y install nginx

nginxの設定

service nginx start
vi /etc/nginx/nginx.conf     # 「nginx.confの内容」

nginx.confの内容

http内に下記を追記

upstream unicorn {
        server 0.0.0.0:3000;
    }

    server {
        listen 80;
        server_name _;
        location / {
            proxy_pass http://0.0.0.0:3000;
        }
    }

Lodgeのインストール

Lodgeのインストール手順

cd /var
git clone https://github.com/m-yamashita/lodge.git
cd lodge

Lodgeの初期設定

cp config/database.example.yml config/database.yml
vi config/database.yml        # 内容は「database.ymlの内容」に別記
vi Gemfile               # gem 'therubyracer', platforms: :rubyをコメントアウト
vi Gemfile               # database周りの設定を変更「Gemfileのdatabase設定変更」に別記
bundle install --path vendor/bundle
bundle exec rake secret       # ここで出力したものを.envのSECRET_KEY_BASEとDEVISE_SECRET_KEYにコピペする
cp .env.example .env
vi .env               # 内容は「.envの変更箇所」に別記

bundle exec rake db:create RAILS_ENV=production
>                 # mysqlのrootのパスワードを入力してEnterキーを押す
bundle exec rake db:migrate RAILS_ENV=production

bundle exec rake emoji
mkdir /var/lodge/tmp

database.ymlの内容

default: &default

  # === mysql ===
  adapter: mysql2
  host: localhost
  username: 任意のMySQLユーザ名
  password: 任意のMySQLユーザ名のパスワード
  encoding: utf8
  pool: 5

development:
  <<: *default
  database: lodge_development

test:
  <<: *default
  database: lodge_test

production:
  <<: *default
  database: lodge_production

Gemfileのdatabase設定変更

Gemfileの内容を一部抜粋

変更ポイント

  • if adapters.any?ブロックをコメントアウト
  • if adapters.any?行の前に gem "mysql2", '~> 0.3'を追記
database_file = File.join(File.dirname(__FILE__), "config/database.yml")
if File.exist?(database_file)
  database_config = YAML::load(ERB.new(IO.read(database_file)).result)
  adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
  gem "mysql2", '~> 0.3'
  #if adapters.any?
  #  adapters.each do |adapter|
  #    case adapter
  #    when 'mysql2'
  #      gem "mysql2", '~> 0.3'
  #     when /postgresql/
  #      gem "pg", '~> 0.17'
  #    when /sqlite3/
  #      gem "sqlite3", '~> 1.3'
  #    else
  #      warn("Unknown database adapter `#{adapter}` found in config/database.ym
l")
  #    end
  #  end
  #else
  #  warn("No adapter found in config/database.yml, please configure it first")
  #end
else
  warn("Please configure your config/database.yml first")
end

.envの変更箇所

LODGE_DOMAIN      = http://自身のIPアドレスうちました

SECRET_KEY_BASE   = ここは bundle exec rake secret で出力したものをコピペ
DEVISE_SECRET_KEY = ここは bundle exec rake secret で出力したものをコピペ

MAIL_SENDER       = 任意のメールアドレス

SMTP_ADDRESS              = Google以外の自分が使っているSMTPのアドレスでOK
SMTP_PORT                 = 587
SMTP_USERNAME             = SMTPに登録しているユーザ名
SMTP_PASSWORD             = SMTPに登録しているユーザ名のパスワード

Lodgeの起動

bundle exec unicorn -c config/unicorn.rb -E production

補足

unicornでタイムアウトが出るときはconfig/unicorn.rb内のtimeoutを15から30(またはそれ以上)に変更してみる。

それでもダメな時はOSを再起動してから「Lodgeの起動」を行い、ローカル環境でアクセスしてみると不思議とつながる(キャッシュの何かが問題?)

6
7
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
6
7