Redmine を lighttpd で動かす(まとめ)
参考 Apache + lighttpd で Rails を動かす
redmine-0.6.4.tar.gz を落としてきて、/home/hokorobi/redmine に展開したものとする。
chown -R www-data /home/hokorobi/redmine cp -p /home/hokorobi/redmine/public/dispatch.fcgi.example /home/hokorobi/redmine/public/dispatch.fcgi chmod +x /home/hokorobi/redmine/public/dispatch.fcgi
/home/hokorobi/redmine/config/routes.rb の二行目に以下を追加。*1
ActionController::AbstractRequest.relative_url_root = "/redmine"
/etc/lighttpd/lighttpd.conf
mod_rewrite, mod_redirect, mod_alias を有効にする。
追記
$HTTP["url"] =~ "^/redmine/" { server.document-root = "/home/hokorobi/redmine/public" alias.url = ( "/redmine/" => "/home/hokorobi/redmine/public/" ) server.indexfiles = ( "index.html", "dispatch.fcgi" ) server.error-handler-404 = "/redmine/dispatch.fcgi" url.rewrite = ( "^/$" => "index.html", "^([^.]+)$" => "$1.html" ) fastcgi.server = ( ".fcgi" => ( "localhost" => ( "socket" => "/tmp/redmine.fcgi.socket", "bin-path" => "/home/hokorobi/redmine/public/dispatch.fcgi", "bin-environment" => ( "RAILS_ENV" => "production", "RAILS_ROOT" => "/home/hokorobi/redmine" ), "idol-timeout" => 10, "check-local" => "disable", "min-procs" => 1, "max_procs" => 1 ) ) ) }
再起動
sudo /etc/init.d/lighttpd restart
うごいた
http://localhost/redmine/ にアクセスしたらトップページが表示された。
メモリ使用量
いっぱいいっぱいだ。
$ free total used free shared buffers cached Mem: 126340 121284 5056 0 5808 12556 -/+ buffers/cache: 102920 23420 Swap: 1048568 657432 391136
*1:2008-05-01 誤りがあったので修正
Redmine を lighttpd で動かせないか(恥ずかしい試行錯誤)
redmine-0.6.4.tar.gz を落としてきて、/home/hokorobi/redmine に展開したものとする。
/etc/lighttpd/lighttpd.conf へ下のように追記したら、lighttpd が起動しなくなった。
$HTTP["url"] =~ "^/redmine/" { server.document-root = "/home/hokorobi/redmine/public" alias.url = ( "/redmine/" => "/home/hokorobi/redmine/public/" ) server.indexfiles = ( "index.html", "dispatch.fcgi" ) accesslog.filename = "/var/log/lighttpd/access.log" server.errorlog = "/var/log/lighttpd/server.log" server.error-handler-404 = "/redmine/dispatch.fcgi" url.rewrite = ( "^/$" => "index.html", "^([^.]+)$" => "$1.html" ) fastcgi.server = ( ".fcgi" => ( "localhost" => ( "socket" => "/tmp/redmine.fcgi.socket", "bin-path" => "/home/hokorobi/redmine/public/dispatch.fcgi", "bin-environment" => ( "RAILS_ENV" => "production", "RAILS_ROOT" => "/home/hokorobi/redmine" ), "idol-timeout" => 10, "check-local" => "disable", "min-procs" => 1, "max_procs" => 20 ) ) ) }
どこをどう直せばいいんだ?
dispatch.fcgi ないんだけど、動くのかなぁと思っていたけれど、動くわけがない。
dispatch.*.example を dispatch.* にリネームして実行権限を与えた。
おぉ、とりあえず lighttpd 自体は動いた。
redmine は Internal Error だ。
/var/lighttpd/error.log に url.rewrite なんて知らないよと出ている。
あれ、モジュールを有効にし忘れた。
/etc/lighttpd/lighttpd.conf で mod_rewrite, mod_redirect, mod_alias を有効にする。
/var/lighttpd/error.log にエラーは出なくなったけれど Internal Error は相変わらず。
どこかにログはでないのか……/home/hokorobi/redmine/log にも新しくログは書かれていないみたいだし。
/home/hokorobi/redmine/config/environment.rb の config.log_level = debug に指定してみた。
駄目だ、何も変わらない。
rails アプリケーション以前の問題ということか?
いかん、忘れていた。
/home/hokorobi/redmine/config/routes.rb の二行目に以下を追加。
ActionController::AbstractRequest.relative_url_root = "/redmine"
でも、やっぱりかわらない。
あ、mod_fastcgi は 10-fastcgi.conf の中に書いているから、lighttpd.conf に fastcgi の内容を書くなら、lighttpd.conf に mod_fastcgi を書かないと駄目か?
やっぱりかわらん。
/etc/lighttpd/lighttpd.conf の $HTTP["url"] =~ "^/redmine/" { の上に fastcgi.debug = 1 を書いてみたら下のようなログが出るようになった。
2008-04-27 20:28:25: (mod_fastcgi.c.1307) --- fastcgi spawning local proc: /home/hokorobi/redmine/public/dispatch.fcgi port: 0 socket /tmp/redmine.fcgi.socket min-procs: 4 max-procs: 4 2008-04-27 20:28:25: (mod_fastcgi.c.1332) --- fastcgi spawning port: 0 socket /tmp/redmine.fcgi.socket current: 0 / 4 2008-04-27 20:28:25: (mod_fastcgi.c.1332) --- fastcgi spawning port: 0 socket /tmp/redmine.fcgi.socket current: 1 / 4 2008-04-27 20:28:25: (mod_fastcgi.c.1332) --- fastcgi spawning port: 0 socket /tmp/redmine.fcgi.socket current: 2 / 4 2008-04-27 20:28:25: (mod_fastcgi.c.1332) --- fastcgi spawning port: 0 socket /tmp/redmine.fcgi.socket current: 3 / 4 2008-04-27 20:28:25: (mod_fastcgi.c.1307) --- fastcgi spawning local proc: /home/hokorobi/redmine/public/dispatch.fcgi port: 0 socket /tmp/redmine.fcgi.socket min-procs: 4 max-procs: 4 2008-04-27 20:28:25: (mod_fastcgi.c.1332) --- fastcgi spawning port: 0 socket /tmp/redmine.fcgi.socket current: 0 / 4 2008-04-27 20:28:25: (mod_fastcgi.c.1332) --- fastcgi spawning port: 0 socket /tmp/redmine.fcgi.socket current: 1 / 4 2008-04-27 20:28:25: (mod_fastcgi.c.1332) --- fastcgi spawning port: 0 socket /tmp/redmine.fcgi.socket current: 2 / 4 2008-04-27 20:28:25: (mod_fastcgi.c.1332) --- fastcgi spawning port: 0 socket /tmp/redmine.fcgi.socket current: 3 / 4 2008-04-27 20:29:44: (mod_fastcgi.c.2961) got proc: pid: 0 socket: unix:/tmp/redmine.fcgi.socket-3 load: 1 2008-04-27 20:29:45: (mod_fastcgi.c.1490) released proc: pid: 0 socket: unix:/tmp/redmine.fcgi.socket-3 load: 0
これだけみると lighttpd には問題なさそうなので、redmine の方をどうにかしないといけないのかな?
あ、いかん chown -R www-data /home/hokorobi/redmine
動いたっぽい。
最大の原因は……chown を忘れたからみたい orz
lighttpd.conf に fastcgi の内容を書く場合でも lighttpd.conf に mod_fastcgi は書かなくていいみたい。
10-fastcgi.conf に書いてあるからかな?