現象
SVNサーバとは別のサーバにApache入れてWebSVNを立ち上げたが、正常に動作しない。
Apacheのerror_logには以下のような出力が出てた。
svn: E000013: Unable to connect to a repository at URL 'svn://218.219.151.16/home/svn/repos/claris'
svn: E000013: Can't connect to host '218.219.151.16': Permission denied
原因
どうやらSELinuxが有効化されているとhttpdのCGI経由でのネットワークアクセスが制限され、結果としてWebSVNのようなスクリプトが正常に動作しないらしい。
対処
そもそもCGIで他ホストに繋いで情報のやりとりを許すことにいろいろ問題あることは置いといて(イントラネット内のサービスなので目をつぶる)。
対応としてはSELinuxの設定で、httpd_can_network_connect
をonにする。
例
現在の設定を確認
$ sudo getsebool httpd_can_network_connect
httpd_can_network_connect --> off
ONにする
$ sudo setsebool httpd_can_network_connect 1
設定を再度確認
$ sudo getsebool httpd_can_network_connect
httpd_can_network_connect --> on
これでWebSVNが動作するようになった。