NextCloud 24.0.6 更新時500エラー

投稿者: | 2022-10-08
cloud

NextCloud 24.0.6がリリースされたと通知があったので、24.0.5の時と同様に500エラーの回避作業を覚悟して更新作業を開始。

NextCloudの管理画面から更新ボタンクリックで自動的に更新が始まり、ファイルの置き換えなどが終わった後、やはり予想通りメンテナンスモードに陥り、停止。
サイトに再度アクセスしても500エラーが発出。
いや、ここまでは予想通りである。
これは、8月にXSERVER側の仕様変更で「ModPagespeed」のモジュールが使えなくなって、更にこれをhtaccessに記述しているとエラーになって動かなくなるからである。

前回は、NextCloudをインストールしてあるディレクトリのhtaccessの該当部分をコメントアウト、すなわちこのモジュールが記述されている箇所の先頭に「#」を付けて、「# ModPagespeed」としてやることで回避できた。
回避というか、500エラーにならないようにできた。だが、NextCloud側からすると、この部分は書き換え不可の部分であるので、後にエラーが残ることにはなるというもの。

今回も、この部分をコメントアウトしてやって、さらにはメンテナンスモードになっているままであろうから、「config.php」内の該当箇所でメンテナンスモードをfalseにしてやれば動くだろうと思って、XSERVERのファイルマネージャから作業して再度アクセスしてみても、なお500エラー。
前回と違う。

コメントの付け方が間違っているのかと、「#」を「ModPagespeed」の直前に付けてみたり、そのモジュール部分全体3行で「IfModule」のタグで囲まれている部分全てコメントアウトしてみたりもしたが、変わらず。
何度か色々やってみても同じ。サイトで調べてみるが同様のエラー報告は見あたらず。

XSERVERにはエラーログの機能があるので、そのログをダウンロードしてみるが、ざっと見てみても実はよくわからず。だが確かに「ModPagespeed」に関するエラーはある。「Invalid command ‘ModPagespeed’, perhaps misspelled or defined by a module not included in the server configuration」となっているので、そこは修正したつもり。

ただ他にもエラーがあって、apps/photos/service-worker.jsがhtaccessを参照していて、そこもエラーになっているというような記述がある。
そのjsファイルを探してみるが、同じ名前のファイルはなし。photos-service-worker.jsという名前のファイルならあるので、それを開いて、ModPagespeedを参照している箇所などはないのか探してたりするが、全く見つからない。

30分以上、1時間近くもあれこれやってみて、どうにもできなさそうだったので、これはもうダメかも、半年使ってきたNextCloudも削除、クライアントからもアンインストールしてGoogle DriveやOne Driveを再び使うことになるかと思い落胆し始めたところで再度エラーログを見てみると、「.htaccess: Illegal option Indexes####,」とある。
関係ない部分だと思って読み飛ばしていたが、よく見てみるとつまりhtaccessの中にこの記述があって、そこがおかしいという意味。
「####」となっているのはコメントアウト部分である意味で、その箇所は「Options -Indexes#### DO NOT CHANGE ANYTHING ABOVE THIS LINE ####」となって、この線より上部は一切書き換えるな、という注意書きの部分である。前回htaccessを書き換えたときは、「#### ~ ####」の部分が1行だったのを思い出す。

つまり、「Options -Indexes####」がおかしいのであって、「Options -Indexes」でなければならないと思われる。
「####」の前で改行して、注意書き部分を次の行に送ってやると、これでようやく、500エラーから脱出。元通りアクセスできるように復旧したのであった。

htaccessファイルは、毎回NextCloudのインストールプログラム側が提供してきて、アップデート作業の度に書き換わる。今回のhtaccessもそれで、NextCloud側からのファイル記述が、おそらく、そうなっていたことに起因するもの。この記述のとおりでhtaccessを正しく解釈するサーバもあるのかどうかは知らないが、少なくともXSERVERの仕様でのhtaccess解釈ではエラーとなったのである。

なお、別のエラー事項修正のために、このhtaccessに1行追加してやる必要があるものも、毎回アップデートでhtaccessが書き換わることによって、毎回1行追加してやらなければならない作業についても同様に必要になっている。
自分も含めて、あまりこういうことに詳しくない者がインストールして使うには、NextCloudはそれなりにハードルは高いと感じる。
サーバ側が、WordPress同様に動作のサポートをしてくれるならば、このような苦労はほとんどしなくて済むと思われるのであるが……。