IT pass HikiWiki - [Memo2008]kareiへのgfdnavi導入 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

= 始めに.
{{toc}}

以下では karei で Gfdnavi を動かすためのソフトウェアの導入と
環境設定についてまとめる.
ここでは

* httpd として apache2
  * FastCGI ライブラリとして mod-fcgi
* RDBMS として mysql
* Gfdnavi(CVS snapshot)

を導入する事にする.

== GPhys, RubyGems, Rails の導入.

ほぼ「((<"Gfdnavi を Debian GNU/Linux 4.0(etch)で動かす."|URL:http://www.gfd-dennou.org/arch/davis/gfdnavi/doc/install/gfdnavi-on-debian-etch.htm">))」の通りである.

=== GPhys の導入.

先ず, 以下の apt-line を /etc/apt/sources.list に追記する.

  deb ftp://www.gfd-dennou.org/library/cc-env/Linux/debian-dennou etch/
  deb-src ftp://www.gfd-dennou.org/library/cc-env/Linux/debian-dennou etch/

次に公開パッケージの gpg 署名を登録する.

  # gpg --keyserver subkeys.pgp.net --recv-keys AEE995F4
  # gpg --armor --export AEE995F4 | apt-key add -

最後に gphys パッケージを導入する.
その他のパッケージは rubygems を動作させるために必要となるライブラリ群である.

  # aptitude update
  # aptitude install ruby ruby1.8-dev irb rdoc libopenssl-ruby \
                     libyaml-ruby libzlib-ruby gphys

=== RubyGems の導入.

管理の簡便さから, testing(lenny) のパッケージを拝借してくることにする.
先ず, 以下の apt-line を /etc/apt/sources.list に追記する.

  deb http://cdn.debian.or.jp/debian/ lenny main non-free contrib
  deb-src http://cdn.debian.or.jp/debian/ lenny main non-free contrib
  deb http://security.debian.org/ lenny/updates main contrib non-free
  deb-src http://security.debian.org/ lenny/updates main contrib non-free

apt-line では testing ではなく, 明示的に debian のコードネームを指定する.

次に apt の pin 止め(apt-pinning) の設定を行なう.
/etc/apt/preferences を作成し, 以下を記述する.

  Package: *
  Pin: release a=lenny
  Pin-Priority: 90

また, このままでは apt の cache サイズが足りず update の際に

  E: Dynamic MMap ran out of room

と言われるだろう. /etc/apt/apt.conf.d/99CacheLimit を作成し,

  APT::Cache-Limit "100000000";

と記述しておく.
最後に rubygems, libgems-ruby1.8 を明示的に指定して導入する.

  # apt-get update
  # apt-get install rubygems -t lenny

環境変数 PATH として /var/lib/gems/1.8/bin を追加しておく.
PATH の追加については ((<[EPA]パスの設定>)) を参照のこと.

=== Rails の導入

PATH が設定されているならば, gem コマンドが有効となっているハズである.

# gem --version
1.0.1

と version が出てくれば良い.
なお, Rails 2.x 系からは rubygems の version 0.9.5 以上が必要である.

以下の作業で rails が導入される.

# gem install rails --include-dependencies

無事に install されたかは

# rails -v
Rails 2.0.2

と version が出てくることで確認できる.

== MySQL の導入と設定.

以下のコマンドで mysql パッケージを導入する.

# aptitude install mysql-server

次に以下のコマンドで mysql の初期設定を行なう.

# mysql_secure_installation

以下に選択肢をまとめる.

  Set root password? [Y/n] (Enter)
  New password:  (適宜)          
  Re-enter password: (適切)
  Remove anonymous users? [Y/n] (Enter)
  Disallow root login remotely? [Y/n] (Enter)
  Remove test database and access to it? [Y/n] (Enter)
  Reload privilege tables now? [Y/n] (Enter)

これで初期設定は完了である.

最後に mysql の Ruby アダプタを導入しておく.

  # aptitide install libmysql-ruby1.8

== Gfdnavi の導入.

cvs snapshot を導入する.
導入自体は
「((<"GFDNAVI インストーラ使用法"|URL:http://www.gfd-dennou.org/arch/davis/gfdnavi/doc/install/installer.htm>))」に従う.
以下では,

  cvs checkout 先: /usr/src/gfdnavi
  install 先: /var/www/rails/gfdnavi
  
とする.

先ず mysql に gfdnavi 用のデータベースを作成する.
作成手順は以下の通りである.
データベースへのアクセスを許可するユーザ名とパスワードは適宜設定すること.
ここでは

  ユーザ: davis
  パスワード: hogehero

と表記する(必要があれば佐々木に聞いて下さい).

  % mysql -u root -p  [mysql の root パスワードを入力]
  % mysql>  create database gfdnavi_development
  % mysql>  create database gfdnavi_test
  % mysql>  create database gfdnavi_production
  % mysql>  grant all on gfdnavi_development.* to 'davis'@'localhost' \
                    identified by 'hogehero'
  % mysql>  grant all on gfdnavi_test.* to 'davis'@'localhost' \
                    identified by 'hogehero'
  % mysql>  grant all on gfdnavi_production.* to 'davis'@'localhost' \
                    identified by 'hogehero'
  % exit;

続いて install.rb を実行する.
root のパスワードおよび encrypt 用の salt はここには記さない
(必要があれば佐々木に聞いて下さい).

== apache2 の導入と設定.

apache2-mpm-prefork を使う.

他にも apache2-mpm-worker や apache2-mpm-perchild などのパッケージがあ
るけれども, thread まわりは良くわからないので旧来(1.x 系)の実装である
apache2- mpm-prefork を選んだ.

  $ sudo -s
  # aptitude install apache2 apache2-mpm-prefork

ちなみにメタパッケージである apache2 を install しただけでも,
apache2-mpm-prefork が install される模様.