Symfoware

Symfowareについての考察blog

Qiitaのクローン「Lodge」をDebian 8で動作させる

情報共有に便利な「Qiita」
外部に公開したくない情報今日にも使いたい。

調べてみると、「Lodge」というRuby製のクローンがあるようです。
https://github.com/lodge/lodge

Debian 8にインストールしてみました。

・・・が、起動まで行えたのですが、記事投稿でエラーになります。
後日の再チャレンジ用に手順をメモしておきます。


必要なライブラリ



インストール時に必要なライブラリを事前にインストールしておきます。


# apt-get install g++ make git curl





MariaDB



データベースにはMariaDBを使用することにしました。

こちらでインストール用のコマンドが簡単に確認できます。
https://downloads.mariadb.org/mariadb/repositories/

652_01.png


表示された手順通りに10.1をインストール。


# apt-get install software-properties-common
# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
# add-apt-repository 'deb [arch=amd64,i386] http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.1/debian jessie main'



リポジトリに追加できたら、apt-get updateした後install実行。


# apt-get update
# apt-get install mariadb-server




途中、rootのパスワード入力画面が表示されます。
適当なパスワードを設定します。

652_02.png

652_03.png


インストールが終わったら接続確認。


# mysql -uroot -pP@ssw0rd

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.8-MariaDB-1~jessie-log mariadb.org binary distribution
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>



ちゃんとインストールできたようです。





Ruby(RVM)



続いて、Rubyのインストールを行います。
RVMを使用しました。

https://rvm.io/

手順に従い、RVMをインストール。


# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
# \curl -sSL https://get.rvm.io | bash -s stable



ログアウト&ログインを行うか、sourceコマンドでrvmを有効化。


# source /etc/profile.d/rvm.sh



これでrvmコマンドが使用できるようになります。

インストール可能なRubyのバージョンを「rvm list known」で確認。


# rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p643]
[ruby-]2.1.4
[ruby-]2.1[.5]
[ruby-]2.2[.1]
[ruby-]2.2-head
ruby-head
...




2.2系の最新をインストールすることにしました。
※Ruby 2.0以上であればOK。


# rvm install 2.2-head




2.2.4がインストールされました。


# ruby --version
ruby 2.2.4p186 (2015-11-08 revision 52497) [x86_64-linux]






Lodgeのインストール



ドキュメントを参考にインストールします。
https://github.com/lodge/lodge

/optに配置することにします。


# cd /opt
# git clone https://github.com/m-yamashita/lodge.git
# cd lodge
# gem install bundler




config/database.example.yml を config/database.yml としてコピーし、編集。
データベースの接続設定を行います。


# cp config/database.example.yml config/database.yml
# vi config/database.yml




設定内容はこんな感じになりました。


# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
#
default: &default
# === sqlite3 ===
# adapter: sqlite3
# encoding: utf8
# pool: 5

# === mysql ===
adapter: mysql2
host: localhost
username: root
password: P@ssw0rd
encoding: utf8
pool: 5





依存ライブラリのインストール・・・の前にいくつかインストールが必要になります。


エラー1


An error occurred while installing charlock_holmes (0.7.3), and Bundler cannot
continue.
Make sure that `gem install charlock_holmes -v '0.7.3'` succeeds before
bundling.



charlock_holmesのビルドにlibicuが必要になります。


# apt-get install libicu-dev





エラー2


An error occurred while installing rugged (0.24.0b8), and Bundler cannot
continue.
Make sure that `gem install rugged -v '0.24.0b8'` succeeds before bundling.



ruggedのビルドにgmakeかcmakeが必要になります。


# apt-get install cmake





エラー3


An error occurred while installing mysql2 (0.4.1), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.4.1'` succeeds before bundling.



mysql2のビルドにmariadbのヘッダーが必要です。
http://kkkw.hatenablog.jp/entry/mariadb/bundle-install-mysql2-error


# apt-get install libmariadbclient-dev





準備ができたら、依存ライブラリをインストール。


# bundle install --path vendor/bundle



.env.example を .env としてコピーし、必要な環境変数を設定します。


# cp .env.example .env
# vi .env




内容はこんな感じ。


### アプリケーションのドメイン
LODGE_DOMAIN     = 192.168.1.102

### キーの設定

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

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

# Google OAuth2キーの設定
GOOGLE_CLIENT_ID     =
GOOGLE_CLIENT_SECRET =

### メールの設定

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

# ローカルの MTA (Postfixなど) を利用する場合
DELIVERY_METHOD = sendmail





bundle exec rake db:create RAILS_ENV=productionを実行し、データベースを作成。

ここでもエラーになります。


ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime




nodejsをインストール。
http://qiita.com/k-yamada@github/items/951da959081655dc0ad9


# apt-get install nodejs




nodejsをインストールしても、まだエラーになります。


Gem::LoadError: Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).



http://stackoverflow.com/questions/22932282/gemloaderror-for-mysql2-gem-but-its-already-in-gemfile

Gemfileの末尾を書き換えて、強引に動かします。


# vi Gemfile



データベースの判定ロジックをがっつり削って記載しました。


gem 'mysql2', '~> 0.3.18'




これでデータベースの作成と、テーブルの作成が行えるようになります。


# bundle exec rake db:create RAILS_ENV=production
# bundle exec rake db:migrate RAILS_ENV=production




WEBrickで起動。


# bundle exec rails server -e production




http://[サーバーIP]:3000で画面が表示できました。

652_04.png




ユーザーの作成



適当なメールアドレスを入力してユーザーを作成します。

652_05.png

「sendmailコマンドが無い」というエラーで落ちるのですが、ユーザー情報レコードは作成されます。
confirmed_atに適当な日付が入っていれば良さそうだったので、直接投入。


update users set confirmed_at = '2015-11-15 04:31:48';





ログインできるところまでできたのですが、記事の投稿でエラーになります。

652_06.png

652_07.png


ここで詰みました。
機会があれば、また試してみたいと思います。



関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2015/11/15(日) 14:02:54|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Redmine 3.1系プラグインの作り方 | ホーム | Python データベースコネクションをプーリング(SQLAlchemy使用)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1817-f565b202
この記事にトラックバックする(FC2ブログユーザー)