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の起動」を行い、ローカル環境でアクセスしてみると不思議とつながる(キャッシュの何かが問題?)