LoginSignup
18
18

More than 5 years have passed since last update.

CentOSにlodgeを導入する

Last updated at Posted at 2015-10-28

経緯

研究室での知識共有に共通のDropBoxを使っていたが,やはりwordやtxtなどではコードが見にくいという意見が多数あったため,Qiitaリスペクトのlodgeを導入した.

Qiitaチームを使いたいなと思ったけど,有料であるのがネックであったため非常に魅力を感じた.

lodgeはRailsで書かれたものだが,自分自身Railsに関して無知であるため,自分同様Railsの知識がない人のためになればいいと思う.

lodge

作者様の記事:無料でイントラネット内にナレッジ/ノウハウの共有ができる「Lodge」より引用

イントラネットで Qiita:Team を使いたい!

あらすじ

社内で各チーム間で共有できるナレッジやノウハウなんかをきちんとまとめられるようにしたいなぁと思うと、Qiita:Team という素晴らしいサービスが最適解になるんじゃないかと思います。
Qiita:Team - ドキュメントを軸としたコラボレーションサービス | Qiita
でも、残念なことにQiita:Teamはチーム内限定とはいえ、そのデータ自体はQiitaに預ける形になってしまい、社外秘な情報などを含んだナレッジの共有なんかは、セキュリティリスク的にちょっと怖くて使いたくても使えないなんて事がままある気がします。非常に惜しい!
で、そんな時思ったのです。 無いなら作ればいいじゃない! と。
こんな素晴らしいサービスを使わず何を使えというのか!と。
GitHubに対するGitLabのようなものが、Qiitaでもあって良いじゃないか!と。

Version

パッケージ バージョン
CentOS 6.0(Final)
Ruby 2.1.2p95
Gem 2.2.2
Bundler 1.10.6

Rubyのバージョンが2.2だとエラーがでるため,2.1にしておくのがポイント

インストール

lodgeのREADMEに書いてある通りにやればできる.
ただ,まずサーバにRubyすら入ってなかったので苦労したので,自分が参考にしたページをここにまとめる.

参考資料やコマンド

Ruby:memo: Ruby ソースからインストール(CentOS 6.5/Ruby 2.1.2)

Gem: sudo yum -y install rubygems

Bundler: ツールを使いたいだけの人のための bundler 入門 (例: vagrant + veewee)

lodgeインストール

1. clone

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

2. Bundlerインストール

$ cd lodge
# 自分はプロキシがあるため以下のコマンド
$ gem install bundler -p http://proxy.yourproxy.jp:<port>

3. database.ymlの作成

まずはコピーから.
cp config/database.example.yml config/database.yml
自分はmysqlを使っているため以下のようになった.

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

4. bundle install

bundle install --path vendor/bundle
ここでめっちゃエラーでた.
エラーの原因は主に依存ライブラリがないことだった気がする.
やりながらメモを残していなかったので完璧には覚えていないんだけれども一応

mysqlに関するエラー

.GemFileの中身を変えることで解決

GemFile



require 'yaml'
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
  if adapters.any?
    adapters.each do |adapter|
      case adapter
      when 'mysql2'
        #gem "mysql2", '~> 0.3'
        gem "mysql2", '~> 0.3.20'
      when /postgresql/
        gem "pg", '~> 0.17'
      when /sqlite3/
        gem "sqlite3", '~> 1.3'
      else
        warn("Unknown database adapter `#{adapter}` found in config/database.yml")
      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
その他のエラー

おそらく依存関係のライブラリだろうからエラー文をコピペしてググれば大抵解決した.

5. .envの作成

まずはコピー
cp .env.example .env

READMEにもあるが,とりあえず無知な自分のコメントも添えて掲載

.env
### アプリケーションのドメイン
LODGE_DOMAIN      = example.com

# Cookie 検証用キーの設定
# productionモードで動かす場合に設定(`bundle exec rake secret` で生成する)
SECRET_KEY_BASE   = __some_random_string__

# 認証キーの設定
# productionモードで動かす場合に設定(`bundle exec rake secret` で生成する)
DEVISE_SECRET_KEY = __some_random_string__

### メールの設定
#### メールの設定がなっていないとユーザ登録できないからここ大事

# 外部 MTA (SMTPサーバ) を利用してメール送信する場合
DELIVERY_METHOD   = smtp

# DELIVERY_METHOD = smtp の場合のみ
# 以下の設定が有効です(それ以外は無視されます)
###自分は外部メールサーバを使っている
SMTP_ADDRESS      = メールサーバのアドレス
SMTP_PORT         = メールサーバの外部からアクセス可能なポート番号
#SMTP_USERNAME     = username
#SMTP_PASSWORD     = password
SMTP_AUTH_METHOD  = plain
SMTP_ENABLE_STARTTLS_AUTO = true

# テーマを設定します。
LODGE_THEME       = lodge

とりあえず自分はこれで動いた.

6. DBまわり

DB作成:bundle exec rake db:create RAILS_ENV=production
テーブル作成:bundle exec rake db:migrate RAILS_ENV=production

起動

bundle exec rails server thin -e production

起動したあと,自分のブラウザからhttp://<サーバ名 or サーバip>:3000にアクセスしてログイン画面がでればOK

あとはガイダンスに従えばできる.

注意

最初の方でRubyのバージョンが2.2だとエラーが起きるといった.
2.2でもこの起動のところまではすんなりできると思うが,起動後,記事関係のものを閲覧するときにエラーが起きる.

ActionViewなんちゃら〜ってエラーがでたらまずはRubyのバージョンを確認して欲しい.

あと,新規登録の後,メールから認証画面に飛ぶと404エラーがでる.
そのときはurlのサーバ名の後ろに:3000を足してあげるとちゃんと動く.
そこ以外はそういうことをしなくても大丈夫なことは確認済み

感想

Railsを普段から使っている人ならきっと楽々インストールできるんだろうなーと思いながら書いた.
でも今回はRailsの知識がない人がエラーでつまづいたときの手助けになればと思って書いてみました.

よい知識共有ライフを!

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