ownCloudがCentOS6.4のSELinux環境で動かないときは

ownCloudがCentOS6.4のSELinux環境で動かないときは下記のスクリプトを実行してみましょう。

/var/log/audit/audit.log を確認すると良いのですが、もし config、data、apps への書き込みに失敗しているようなら、setsebool で httpd_builtin_scripting を 1にした上で、httpd_sys_rw_content_t の属性をつければ解決するはずです。また、semanage で fcontextの追加もしておきましょう。

#! /bin/sh
OWNCLOUD_HOME=/var/www/owncloud
setsebool -P httpd_builtin_scripting 1
chcon -R -t httpd_sys_rw_content_t $OWNCLOUD_HOME/config
chcon -R -t httpd_sys_rw_content_t $OWNCLOUD_HOME/data
chcon -R -t httpd_sys_rw_content_t $OWNCLOUD_HOME/apps
semanage fcontext -a -s system_u -t httpd_sys_rw_content_t $OWNCLOUD_HOME/config
semanage fcontext -a -s system_u -t httpd_sys_rw_content_t $OWNCLOUD_HOME/data
semanage fcontext -a -s system_u -t httpd_sys_rw_content_t $OWNCLOUD_HOME/apps

ちなみに、手元では下記のような感じでエラーがでたので、対応をしました。

# cat /var/log/audit/audit.log|grep -v success|grep write|tail -1
type=AVC msg=audit(1365429259.026:5): avc:  denied  { write } for  pid=1682 comm="httpd" name="config.php" dev=dm-0 ino=1581646 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_sys_content_t:s0 tclass=file

動作しない時は、下記のようにして、SELinux を Permissive モードにして、動くかどうか確認します。SELinuxとは関係ないところでエラーになっていることもあるからです。Permissive モードにしただけで動くなら SELinux の問題。

# setenforce 0

問題を解決してから下記のように enforcing モードへ戻します。

# setenforce 1

* fcontext の追加について漏れていたので修正しました。(2013/04/10 20:15)

同じタグの記事: Linux
同じタグの記事: ownCloud
同じタグの記事: SELinux
同じカテゴリの記事: Linux