ownCloud で「CSRF check failed」エラーが出た場合の対処

ブラウザで ownCloud へアクセスした際に「アクセスが禁止されています CSRF check failed」というエラーが表示される場合があります。

file

このような場合は ownCloud を動作させているプロセスが /var/lib/php/7.1/ 配下へアクセス出来ない可能性があります。 私の環境では ownCloud を Nginx で動作させていますが、PHP をバージョンアップさせた直後、このディレクトリのグループオーナーが apache になってしまいました。

1
2
3
4
5
# ls -l /var/lib/php/7.1/
total 64
drwxrwx--- 2 root apache  4096 Mar 28 03:06 opcache
drwxrwx--- 2 root apache 53248 Mar 28 03:06 session
drwxrwx--- 2 root apache  4096 Mar 28 03:06 wsdlcache

ownCloud では session ディレクトリを利用するので、少なくてもこのディレクトリのオーナーを nginx へ変更します。

1
# chown -R :nginx /var/lib/php/7.1/session/

変更されたことを確認します。

1
2
3
4
5
# ls -l /var/lib/php/7.1/
total 64
drwxrwx--- 2 root apache  4096 Mar 28 03:06 opcache
drwxrwx--- 2 root nginx  53248 Mar 28 03:06 session
drwxrwx--- 2 root apache  4096 Mar 28 03:06 wsdlcache

今回はこれで ownCloud へログイン出来るようになりました。