偉大的 PM hc 叫我要寫, 所以我就寫了.
Apache 2 + mod_perl 2 + RT 實在是太難設, 問題太多了, 所以請完全拋棄它吧. 我們有更好的選擇, 也就是 FastCGI.
在 FreeBSD 上, 請安裝以下的 port. 記得要開啟 WITH_APACHE2 的設定:
fcgi-devkit mod_fastcgi p5-FastCGI
然後在 Apache 2 的 httpd.conf 裡使用這樣的設定:
<VirtualHost *> ServerName rt.plasma.idv.tw DocumentRoot /opt/rt3/share/html AddDefaultCharset UTF-8 AddHandler fastcgi-script fcgiFastCgiServer /opt/rt3/bin/mason_handler.fcgi
ScriptAlias / /opt/rt3/bin/mason_handler.fcgi/ScriptAliasMatch (.*/)$ /opt/rt3/bin/mason_handler.fcgi$1
ScriptAliasMatch (.*\.html)$ /opt/rt3/bin/mason_handler.fcgi$1
</VirtualHost>
我這裡的設定是使用 named virtual host. 你可視需要修改.
PerlOptions +GlobalRequest根本一點用都沒有!!! 你需要的是在 bin/webmux.pl 裡加上這個 patch:
--- /home/plasma/mywork/elixus/depot/RT/rt/bin/webmux.pl.in Thu Jun 12 10:07:14 2003 +++ webmux.pl Tue Jul 1 14:25:34 2003 @@ -33,7 +33,17 @@ $ENV{'IFS'} = '' if defined $ENV{'IFS'}; } +require Apache::RequestUtil; +no warnings 'redefine'; +my $sub = *Apache::request{CODE}; +*Apache::request = sub { + my $r; + eval { $r = $sub->('Apache'); }; + # warn $@ if $@; + return $r; +}; + use RT; package RT::Mason;