さくらレンタルサーバー上のownCloudで500エラー。原因はPHPのバージョンでした

さくらレンタルサーバー上で運用しているownCloudで、ある日突然ログインしても真っ白の画面になってログインすらできなくなったので、原因を調査しました。

現象

ログインページは開けるのですが、ログインすると真っ白のページになってログインができません。HTTPステータスをみると500 Internal Server Errorになっているようです。

.htaccessの設定?

ネットで調べていると、.htaccessの「Options -Indexes」の問題というのが多かったのですが、今回はそれでも問題は解決されませんでした。

エラーログを見てみる

何が問題なのかなと思って、エラーログを見ていると、

[Thu Jan 31 10:02:38.097221 2019] [cgi:error] [pid 71137] [client 110.165.179.197:0] AH01215: PHP Fatal error:  Declaration of OC\\Files\\Storage\\Local::copyFromStorage(OCP\\Files\\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath) must be compatible with OC\\Files\\Storage\\Common::copyFromStorage(OCP\\Files\\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime = false) in /home/xxx/www/xxx/lib/private/Files/Storage/Local.php on line 44: /home/xxx/www/xxx/remote.php

となっていました。`

copyFromStorageあたりが怪しいなと思って、調べてみると、PHP7.2にはまだ対応してないぞというownCloudのフォーラムがありました。

Issue with Owncloud 10.0.2 and PHP 7.2 on Arch Linux

試しにPHPのバージョンを5.7に落としたところ、問題なく復活

じゃあバージョンを戻すかということで、PHP7.1に落とそうと思ったら、さくらは2019/1/23からPHP7.2をデフォルトにして、過去のバージョンは5.xしか選べないようになっていました。

そういえばそんなサポートからのメールが来てましたね。

以前お知らせいたしました通り、ご利用のさくらのレンタルサーバにおきまして
2019年1月23日以降、順次PHPのバージョン「7.1」を廃止し、自動的に「7.2」へと
変更を実施することとなりましたのでご連絡差し上げます。


PHPは7で高速化されているので、サーバー全体でphp5.7にしてしまうと他のサーバーの速度に影響が出るので辛いんですが、ここはownCloudのバージョンをあげて対応するしかなさそうですね。