個人用メモ
QiitaライクなOSSの知識共有サービスLodgeの導入方法
事前準備
2016/02時点
公式のGithubではRubyのバージョンは2.0.0となっているが2.4では動作せず、2.0ではインストールでエラーが発生。安定版のRuby 2.1.8 では動作を確認
2016/06時点
公式のインストール手順が更新されているのを確認
Ruby 2.1以上で動作するらしい(現時点では未確認)
必要なもの | バージョン |
---|---|
Ruby | 2.1.8 |
Gem | 2.2以上 |
Bundler | |
MySQL | |
sqlite3 |
MySQLとsqlite3はどちらか片方でよい
CentOS6.5では以下のパッケージが必要になった
- libicu
- gcc-c++
- cmake
インストール手順
-
Lodgeのプロジェクトをcloneする
自分のインストール時は、下記コマンドにより /usr/local/src/lodge にcloneしたgit clone https://github.com/m-yamashita/lodge.git /usr/local/src/lodge
-
プロジェクトのディレクトリに移動してdatabase.ymlを作成する
database.example.ymlをコピーして利用するDBのコメントアウトを外す(必要なら値を修正する)cd /usr/local/src/lodge cp config/database.example.yml config/database.yml vi config/database.yml
sqlite3を利用するため、database.ymlの内容は以下のようになる
default: &default # === sqlite3 === adapter: sqlite3 encoding: utf8 pool: 5 # # === mysql === # adapter: mysql2 # host: localhost # username: your_mysql_user_name # password: your_mysql_password # encoding: utf8 # pool: 5
-
依存ライブラリをインストールする
以下のコマンドを実行して依存ライブラリをインストールするbundle install --path vendor/bundle
-
.envファイルを作成する
.env.example をコピーしてコメントを見ながら環境に合わせてパラメータを修正する
検証キーと認証キーはbundle exec rake secretで生成した
実行したコメントは以下cp .env.example .env # コメントを見てパラメータを修正 vi .env # キーを生成して.envファイルに挿入 sed -i -e "s/__some_random_string__/`bundle exec rake secret`/" .env
-
データベースの作成
以下のコマンドを実行し、データベースを作成するbundle exec rake db:create RAILS_ENV=production
-
テーブルの作成
以下のコマンドを実行し、テーブルを作成するbundle exec rake db:migrate RAILS_ENV=production
-
絵文字データをダウンロードする
https://github.com/github/gemoji にある絵文字を、以下のコマンドでダウンロードするbundle exec rake emoji
コマンドのみ
git clone https://github.com/m-yamashita/lodge.git /usr/local/src/lodge
cd /usr/local/src/lodge
cp config/database.example.yml config/database.yml
vi config/database.yml
bundle install --path vendor/bundle
cp .env.example .env
vi .env
sed -i -e "s/__some_random_string__/`bundle exec rake secret`/" .env
bundle exec rake db:create RAILS_ENV=production
bundle exec rake db:migrate RAILS_ENV=production
bundle exec rake emoji
起動
Lodgeをクローンしたディレクトリに移動して起動コマンドを実行する
cd /usr/local/src/lodge
bundle exec rails server -e production
なお、LodgeはUnicorn, Thin, WEBrickのどれかで起動できる
起動コマンドはそれぞれ以下になる
# Unicorn
bundle exec unicorn -c config/unicorn.rb -E production
# Thin
buncle exec rails server thin -e production
# WEBrick
bundle exec rails server -e production
http://[サーバドメイン]:3000/ にアクセスし、Lodgeのログイン画面が表示されれば起動完了
URLプレフィックスをつける
http://[サーバドメイン]:3000/lodge のように、URLプレフィックスを付けて利用するために以下のことを行う
- config.ru の runをラッピングしてrelative urlを適用させる
- RAILS_RELATIVE_URL_ROOTを指定して起動する
config.ruを以下のように修正する
# This file is used by Rack-based servers to start the application.
require ::File.expand_path('../config/environment', __FILE__)
map ActionController::Base.config.relative_url_root || "/" do
run Rails.application
end
WEBrickで動作
http://[サーバドメイン]:3000/lodge でアクセス
デーモンで起動
の場合の起動コマンドは以下
RAILS_RELATIVE_URL_ROOT='/lodge' bundle exec rails server -e production --daemon
UnicornやThinでも起動可能と思われるが起動・動作は未確認
参考サイト
- Lodge公式 https://github.com/lodge/lodge
- Rails With Relative URL Root http://quickhack.net/nom/blog/2012-09-19-rails-with-relative-url-root.html
- sqlite3-rubyのインストール http://d.hatena.ne.jp/aTaGo/20100708/1278608962