ル微王徴

インストール(apt編)

最終更新:

rubyocho

- view
メンバー限定 登録/ログイン

動作環境

  • debian系がすんなり行くようです。推奨:Debian gnu/linux etch
  • Ubuntu7.10 on VMware Playerで。

パッケージ apt-get

  • apt-get install ruby irb ruby1.8-dev libpgsql-ruby1.8 libfcgi-ruby1.8 librmagick-ruby1.8 libopenssl-ruby1.8 rdoc zlib1g-dev apache2 postgresql postfix chasen chasen-dictutils libchasen-dev ipadic kakasi libkakasi-ruby1.8 lighttpd zip unzip rsync libgd2-xpm libgd-ruby1.8 libxslt1-dev xsltproc gcc make
  • apache2で動作させるため、lighttpdはインストールしない。 lighttpdは管理用Webのため必要。別portで起動させる。

ruby-gemパッケージのインストール

wget http://rubyforge.org/frs/download.php/29548/rubygems-1.0.1.tgz
tar xzovf rubygems-1.0.1.tgz
cd rubygems-1.0.1
ruby setup.rb
apt-get install rubygems

Gem::GemRunner(NameError)のエラー対策

gemパッケージをインストール

gem install rake scrapi tidy --include-dependencies

その他、必要なプログラム

  • 音声合成やルビ振りのページの作成のために,rubyからchsenを使用するためのライブラリ
wget http://raa.ruby-lang.org/cache/ruby-chasen/chasen1.6.tar.gz
tar zxvf chasen1.6.tar.gz
cd chasen1.6
ruby extconf.rb
make
sudo make install
  • 音声合成プログラムであるlameをダウンロードし、インストール
wget http://downloads.sourceforge.net/lame/lame-3.97.tar.gz
tar zxvf lame-3.97.tar.gz
cd lame-3.97
./configure
make
make install

本プログラムのインストール

  • ディレクトリ配置
    • プログラム本体: /var/share/cms/ (所有者www-dataユーザ)
    • 公開ページのdoc root: /var/www/cms/ (所有者www-dataユーザ)
  • 本プログラムを/var/share/cms/にcopy
mkdir -p /var/share/cms
chown -R www-data:www-data /var/share/cms
tar zxvf pref-shimane-cms-1.0.2.tar.gz
mkdir /var/www/cms
cp -r pref-shimane-cms-1.0.2/* /var/share/cms/
chown -r www-data:www-data /var/share/cms

chasen辞書の設定

  • ページの読み上げ機能のためにユーザが単語の読みを登録
  • 辞書の作成と、辞書をchasenが利用できるように
cd /var/share/cms/dict/
sudo -u www-data make
  • chasenの辞書directoryにユーザ辞書へのsymlinkを作成
ln -s /var/share/cms/dict/user.* /usr/share/chasen/dic/ipadic/

データベースの設定

  • データベースユーザの作成
createuser www-data
  Shall the new user be allowed to create databases? (y/n) y
  Shall the new user be allowed to create more new users? (y/n) n
  • データベースの作成:テスト用、開発用、本番用のデータベースを作成
createdb -U www-data cms_test -E UNICODE
createdb -U www-data cms_development -E UNICODE
createdb -U www-data cms_production -E UNICODE

Webサーバの設定:

  • apache2の設定:apache2は静的ページの公開サーバらしい?
    • 実験なので、今回は、lighttpdのポートを変更した。
  • lighttpdの設定
    • lighttpdはapplicationサーバ。設定ファイルのテンプレート(doc/lighttpd.conf.example)をコピー
cp /var/share/cms/doc/lighttpd.conf.example /etc/lighttpd/lighttpd.conf
    • ポートを8087に編集。
$ vi /etc/lighttpd/lighttpd.conf
107 # Options that are good to be but not neccesary to be changed
108 ## bind to port (default: 80)
109 server.port                = 8087

メインとなる環境の設定

  • config/cms.ymlの編集
cd /var/share/cms
cp config/cms.yml.example config/cms.yml
vi config/cms.yml
    • 各種URI,domain,メールアドレスなど
  • 公開サーバへsyncするためのDIR作成
    • public.ディレクトリを作成。その中にpublicディレクトリのファイルへのリンクを作成
    • (public.の中には公開サーバへsyncするためのファイルが置かれます。)
mkdir /var/share/cms/public.
ln -s /var/share/cms/public/stylesheets /var/share/cms/public/javascripts \
      /var/share/cms/public/config.html* /var/share/cms/public/images \
      /var/share/cms/public./
  • データベースへの接続の設定
    • config/database.yml.exampleをconfig/database.ymlへコピー
    • usernameの箇所を使用するデータベースのユーザ名に変更します。
cp config/database.yml.example config/database.yml
vi config/database.yml
     username: www-data
    • データベースに初期データを投入
rake migrate
    • データベースにsessionテーブルを作成
rake create_sessions_table

音声合成プログラムの設定

  • 音声合成プログラムgtalk, chaoneをコンパイル
cd /var/share/cms/tool/gtalk/gtalk
./configure;  make
cd /var/share/cms/tool/gtalk/morph/chaone-1.2.0
./configure;  make

exportの設定

  • CMSで作成したcontentsを公開サーバにuploadするスクリプトの設定およびrsyncの設定
    • /var/share/cms/tool/exportの以下の箇所を変更。(line:57 あたり)
cd /var/share/cms
vi tool/export
   SERVER = ['localhost']       <== 公開サーバのドメイン
   USER = 'www-data'            <== 公開サーバにrsyncするユーザ
  • 公開サーバにryncするユーザのSSH鍵を公開サーバの同名のユーザの ~/.ssh/authorized_keysに登録
  • rsyncユーザのSSH鍵を作成。鍵を作成するときパスフレーズは空にします。
ssh-keygen -t rsa
  • rsyncユーザの鍵を、公開サーバのユーザのホームdirectoryの.ssh/authorized_keysへ登録
sh -c 'cat ~www-data/.ssh/id_rsa.pub >> ~www-data/.ssh/authorized_keys'

www-dataユーザのcron設定

  • なぜに、CRON?
    • cronで行われるjob中では、cmsで作成されたページの内容を静的なhtmlファイルとして書き出し、それらを公開サーバのdoc rootにsyncすることを行っている。
  • doc/crontab.exampleの内容を確認しcrontabに反映させる。
crontab doc/crontab.example
    • do_exportファイルが作成することによって静的なhtmlファイルが作成される。cronでのトリガファイル:その1
touch /var/share/cms/do_export
    • do_syncファイルが作成することによってファイルが公開サーバのdocument rootにrsyncされる。cronでのトリガファイル:その2
touch /var/share/cms/do_sync
  • この2つファイルを削除すると静的ページの作成や、公開サーバへのsyncは、行なわれない。

アンケート機能

  • <省略>

プログラムの動作テスト

  • アプリケーションのrootディレクトリでテストを実行
cd /var/share/cms
rake
  • テストが開始され、ラーが発生せずにテストが終了するれば問題なし。
  • いくつか出たが、とりあえず、飛ばし。
    • 1) Failure:
 test_upload_import_zip(AdminControllerTest) 
 [./test/functional/admin_controller_test.rb:1716]:
 Expected response to be a <:redirect>, but was <200>
    • 2) Error:
test_html(VisitorControllerTest):
SocketError: getaddrinfo: Name or service not known
   /usr/lib/ruby/1.8/net/http.rb:560:in `initialize'
   /usr/lib/ruby/1.8/net/http.rb:560:in `open'
   /usr/lib/ruby/1.8/net/http.rb:560:in `connect'
   /usr/lib/ruby/1.8/timeout.rb:48:in `timeout'
   /usr/lib/ruby/1.8/timeout.rb:76:in `timeout'
   /usr/lib/ruby/1.8/net/http.rb:560:in `connect'
   /usr/lib/ruby/1.8/net/http.rb:553:in `do_start'
   /usr/lib/ruby/1.8/net/http.rb:542:in `start'
   /usr/lib/ruby/1.8/net/http.rb:440:in `start'
   ./test/functional/../test_helper.rb:34:in `assert_valid_markup'
   ./test/functional/visitor_controller_test.rb:31:in `test_html'
141 tests, 970 assertions, 1 failures, 1 errors
rake aborted! Test failures

プログラムの起動

  • lighttpdを起動するとプログラムが起動
/etc/init.d/lighttpd stop
/etc/init.d/lighttpd start

ブラウザから管理画面を表示

http://localhost/_admin にアクセス




目安箱バナー