指定されたモジュールが見つかりません。

FastCGI で遊んでるんだけど、RMagick と MySQL まわりでエラーが。

126: 指定されたモジュールが見つかりません。   - 
C:/ruby-1.8.6/lib/ruby/site_ruby/1.8/i386-msvcrt/RMagick2.so (LoadError)

RMagick2.so とか mysql.so とかを読み込めないみたいだ。いろいろ試した結果、libmySQL.dll を Windows ディレクトリに放り込んだら mysql.so はいけるので、*.so が依存している DLL が読めてないっぽい。

Windows ディレクトリに必要な DLL を全部入れれば動くんだろうけど、そんなことはしたくないので、DLL のロードパスを指定したいところ。普通のプロセスは DLL をロードするときに環境変数 PATH から探してるはずで、おそらく(意図的に?)環境変数が渡されてないと予想してみる。調べてみると FastCGIConfig で環境変数を渡せるみたいなので、Apache が知っている PATH を渡してみた。

LoadModule fastcgi_module modules/mod_fastcgi.so
FastCgiConfig -initial-env PATH
<Location /fastcgi>
    SetHandler fastcgi-script
    Options ExecCGI
</Location>

これで無事 mysql.so も RMagick2.so も読み込めるように。本当は実際に使うDLLが入っている場所だけを渡すのがいいんだろう。