Apacheを起動していて、Webページのアクセスに権限の問題で失敗する場合は、SELinuxの設定に問題があるのかもしれません。
あるディレクトリへのアクセスに対して、「Permission denied」が表示される場合や、WebDAVアクセスに対して、
<D:error xmlns:D="DAV:" xmlns:m="http://apache.org/dav/xmlns" xmlns:C="svn:">
<C:error/>
<m:human-readable errcode="13">Could not open the requested SVN filesystem</m:human-readable>
</D:error>
が表示される場合などです。
CentOS、そして多くのLinuxでは、
getenforce
コマンドでSELinuxの状態を確認することができます。以下の3つの状態があります。
disable・・・SELinuxが完全に無効の状態です。
enforcing・・・SELinuxが有効で、かつ、ポリシー違反のアクセスを拒否します。(ログにも出力します。)
permissive・・・SELinuxが有効ですが、ポリシー違反のアクセスでも許可します。(ログには出力します。)
問題が、SELinuxの設定に起因するかどうか調べるためには、まず、上記の状態を調べて、「enforcing」になっている場合には、一時的にOFFにしてみましょう。
設定を変更するには、以下のように「setenforce」コマンドが利用できます。
setenforce 0
「setenforce permissive または 0」だと、permissiveに設定することができます。
「setenforce enforcing または 1」だと、enforcingに設定できます。
もし、エラーがSELinuxのせいであれば、ディレクトリに対して適切な権限を設定しましょう。
上記のDAVのアクセスエラーであれば、下記コマンドを打って、公開するリポジトリのパスに権限を与えます。
chcon -R -h -t httpd_sys_content_t /PATH_TO_REPOSITORY/
もし、恒久的にSELinuxを無効にする場合には、設定ファイルを書き変えます。SELinuxの設定ファイルは「/etc/selinux/config」にありますので、このファイルの記述を
SELINUX=disabled
のようにします。「SELINUX」は以下の3つの値をとることができます。
enforcing・・・SELinuxのセキュリティポリシーを有効化。
permissive・・・SELinuxは有効ですが、警告を出力します。
disabled・・・SELinuxのセキュリティポリシーは有効化されません。
これで、次回の再起動時からこの設定が有効となります。