Zend ServerとSVN連携

Zend ServerをローカルSVNリポジトリのアクセス用に使う時は、Subversionに添付されてくるmod_authz_svn.soとmod_dav_svn.soをC:\Program Files\Zend\Apache2\modulesにコピーする。実際には、コピーせずにインクルードするディレクトリを指定するだけでもいい。

C:\Program Files\Zend\Apache2\conf\httpd.confに設定

### SVN 1.5.4 ###
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

httpd-dav.confへのインクルードも設定したうえで、設定を有効にする


DAV svn
SVNParentPath D:\sites\repos
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile C:\wwwroot\svn.htpasswd
require valid-user

これで出来てもよさそうなんだけど、

Sat Mar 07 11:11:48 2009] [notice] Child 7924: Exit event signaled. Child process is ending.
httpd.exe: Syntax error on line 126 of C:/Program Files/Zend/Apache2/conf/httpd.conf: Cannot load C:/Program Files/Zend/Apache2/modules/mod_dav_svn.so into server: \x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83v\x83\x8d\x83V\x81[\x83W\x83\x83\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B
[Sat Mar 07 11:11:48 2009] [warn] (OS 995)スレッドの終了またはアプリケーションの要求によって、I/O 処理は中止されました。 : winnt_accept: Asynchronous AcceptEx failed.

というわけで、失敗。

Apache 2.2.8 + svn-win32-1.5.0.zip + svn-win32-1.5.0_py25.zip だと、次のエラーが出てApacheを起動できなかった。
Apache 2.2.9 + svn-win32-1.5.0.zip だと、OK。

http://discypus.jp/wiki/?%A5%BD%A5%D5%A5%C8%2FBug%20Tracking%2Ftrac%2F%A5%E1%A5%E2#d20080704

http://subversion.tigris.org/servlets/ProjectDocumentView?documentID=44589&showInfo=true
ここによると、2.2.9以上ということらしい。2.2.8の問題は既知ってことなんだろう。残念ながら、Zend ServerのApacheのバージョンは2.2.8。Apacheだけ換装する?てか、それでZend Serverとの依存関係がどうなってるのかわからないから。。うーん。
モジュールのロード順の問題という説もあった。しかし、davは動いている。

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so

というわけで、あんまり時間もないので、この件はペンディングしておくことにする。