windowsXP + apache2 + fastcgi + hiki その2
Ruby 1.8.5
Apache 2.0.59
でようやく成功。その時のインストールメモ。
1. Apache2 インストール
http://www.meisei-u.ac.jp/mirror/apache/httpd/binaries/win32/ apache_2.0.59-win32-x86-no_ssl.msi
適当な場所にインストール
(「C:\Program Files」 とか間にスペースが無い場所の方がお勧め)
2. RubyForApache インストール
http://rubyforge.org/projects/rubyforapache
Apache Directory を聞かれるところでは
apache2 インストールフォルダ直下にある
module の下に so ファイルがインストールされるように
「RubyForApache」を削除したパス(*)にした方がお勧め
(後でコピーが必要になってしまうから)
インストール中に上書き確認がでるけど無視。
(*) フォルダ選択後に勝手に RubyForApache 付けられるから注意
Apache2 インストールフォルダ直下の modules フォルダに
mod_ruby.so
mod_fastcgi.so
が展開されている事を確認。
4. httpd.conf の編集
以下二つのコメントを外す
LoadModule rewrite_module modules/mod_rewrite.so NameVirtualHost *:80
追記。path は各自の環境に合わせて修正。
ServerName localhost DocumentRoot "D:\Apache2\htdocs" ErrorLog "D:\Apache2\logs\localhost-error_log" CustomLog "D:\Apache2\logs\\localhost-access_log" common LoadModule fastcgi_module modules/mod_fastcgi.soOptions ExecCGI FollowSymLinks AllowOverride all Order deny,allow Deny from all Allow from 127.0.0.1 AddHandler cgi-script .cgi EnableSendfile Off EnableMMAP Off Win32DisableAcceptEx FastCgiConfig -maxClassProcesses 1 -maxProcesses 1 -minProcesses 1 -processSlack 1 \ -initial-env RAILS_ENV=production
参考(というかコピペ。Railsでもfcgiできました。)
http://www.geocities.jp/master_rails/apache.html
5. hiki 設定
hikiconf.rb を編集
# 環境に合わせてパスを設定 @data_path = 'データの保存先を指定' # fcgi を指定する @cgi_name = 'hiki.fcgi'
「dot.htaccess」を「.htaccess」にリネームして追記
Options +ExecCGI AddHandler cgi-script .cgi # ↓追記 AddHandler fastcgi-script .fcgi DirectoryIndex hiki.cgideny from all
6. hiki.cgi の修正
1行目を編集。
#!ruby
# 以下を参考に hiki.cgi を編集し、hiki.fcgi にリネームする
http://kazuhiko.tdiary.net/20040403.html
7. 動作しているかを確認
http://yamk.net/20040506.html
ツッコミにかずひこさんとのやりとりが有るので
この中にある check.rb を plugin として hiki に追加する。
hiki/misc/plugin/check.rb を作成し、管理からプラグインを有効にする。
http://localhost/hiki/hiki.fcgi (URLは各環境に合わせて変更) にアクセスし
フッタに「with fcgi」と出ればOK。
動作確認中に httpd.conf の設定をミスして Apache が起動しなかったりするので
Monitor からではなく、Apache2 インストールフォルダ直下の bin/Apache.exe を
DOS画面から直接実行してログ確認した方が分かりやすかったりするかも。
後は Apache が吐くログを確認して頑張る。
頑張るのが大変なんだけどね orz