ただ、FreeBSD も Linux と同じ UNIX 系の OS(FreeBSD は本物の UNIX。Linux は UNIX ライクな OS・・・なのだが、まあ、その辺の話は割愛)なので、このマニュアルで十分使える。
以下、非情に個人的なそのインストールメモ。
まず、必要なソフトウェアをインストール。
(もちろん、環境によってはこれ以外にも細々したものが必要になるかもしれない)
・Ruby 1.9.2以上推奨
Ruby 1.9.3p194 (2012-04-20 revision 35410) をソースからインストール
・Ruby on Rails 3.2
Rails 3.2.3 を gem install
・Java SE 6
java version "1.6.0_07"
Diablo Java SE Runtime Environment (build 1.6.0_07-b02) を ports インストール
(SUN が、FreeBSD 向けのバイナリを提供してないんでね)
・PostgreSQL 8.4以上推奨
元々、9.0.1 がインストールされている。
が、Enju のインストールで古いと言われたので、9.1.3 をソースからインストール
(本当は gem の問題で、9.0.1のままでも大丈夫だったのが後ほど発覚(^^;)
・memcached
memcached 1.4.13 を ports インストール
・ImageMagick
ImageMagick 6.7.5.10 を ports インストール
・node.js
node v0.6.9 をソースからインストール
・Apache Solr 3.5.0以上
Solr 3.6.0 を ports インストール
・Git
「必要なソフトの一覧」に載ってないが、Git(分散型バージョン管理システム)も必要なのでインストールする。
Git 1.7.10.1 を ports インストール。
この後、Enju Leaf のインストール。
うちの FreeBSD には sudo は入れてないので、root 権限が必要な作業は root になって行なう。(一般ユーザは、一応、enjuuser というのを作っている)
まず enju ファイルの取得と展開。
(ちなみに、以下の作業は、sh または bash 等の B シェル系で行なうこと)
# gem install bundler
# su enjuuser
% cd /vol1/usr/local/enju
% git clone git://github.com/nabeta/enju_leaf.git
% cd enju_leaf
% git checkout 1.0
PostgreSQL の初期データ作成。専用の PostgreSQL ユーザを作ってね。
(DB を新規に作れる権限を与えるのを忘れちゃ駄目だぞ!)
% su - postgres
% createuser enju
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE
% psql
Welcome to psql 8.2.17 (server 9.1.3), the PostgreSQL interactive terminal.
ALTER で enju ユーザのパスワードを設定。
postgres=# ALTER USER enju PASSWORD 'enjupassword';
ALTER ROLE
postgres=# \q
% exit
DB アクセスファイルを新しいユーザ用に編集。
% cp config/database.yml config/database_20120512.yml
% vi config/database.yml
% diff config/database.yml config/database_20120512.yml
17c17
< password: enjupassword
---
> password:
43c43
< password: enjupassword
---
> password:
51c51
< password: enjupassword
---
> password:
Enju Leaf本体のインストールを続ける。ここから root でね。
(別のエントリで詳細は書こうと思うが、俺のサーバの環境では取りあえず pg パッケージの最新バージョンが入らないので、バージョン '0.12.0' を使うよう Gemfile を予め修正しておく)
# cp Gemfile Gemfile_20120515
# vi Gemfile
# diff Gemfile Gemfile_20120515
31c31
< gem 'pg', '0.12.0'
---
> gem 'pg'
# bundle
DB の作成を。
# rake db:create:all
# rake db:migrate RAILS_ENV=production
これで、
enju_development
enju_production
enju_test
という3つの DB が作成される。
続けて DB アクセス時の暗号化に使う設定ファイルを作成。
secret_token.rb の EnjuLeaf::Application.config.secret_token を修正するが、セットするトークンは 30文字以上で。
# rake secret
# vi config/initializers/secret_token.rb
諸々のサーバを起動しておく。
(memcached は、/usr/local/etc/rc.d の下に実行ファイルが出来ている。/etc/rc.conf の編集も必要なので注意)
# rake sunspot:solr:start RAILS_ENV=production
# vi /etc/rc.conf
memcached_enable="YES"
を追加。
# /usr/local/etc/rc.d/memcached start
初期データの追加(管理ユーザのアカウント情報とかね)
それと、アセットパイプライン(JavaScript や CSS を結合することで、ブラウザからのリクエスト回数を減らす仕組み)のためのプリコンパイル済みのアセットを作成。
# rake db:seed RAILS_ENV=production
# rake assets:precompile RAILS_ENV=production
バッチ処理を cron に登録。
# vi config/schedule.rb
set :path, '/usr/local/enju/enju_leaf'
に変更
# whenever --update-crontab
そして、やっとこさサーバの起動。
(その前に PID ファイルを作成する tmp ディレクトリを作っておくのを忘れるな!)
# mkdir /usr/local/enju/enju_leaf/tmp
# chmod 777 /usr/local/enju/enju_leaf/tmp
# cd /usr/local/enju/enju_leaf
# RAILS_ENV=production script/delayed_job start
# rails server -e production
ようこそ!Enju Leaf の世界へ。
別のパソコンから http://192.168.XXX.XXX:3000/ にアクセスすれば、Enju Leaf のトップ画面が。
つーか、実際のところはこんなにすんなりとは行きませんでした(^^;
個々の苦労話は別のエントリーにて(^^;