NextCloudのメジャーバージョンアップと思われる25.0.0がリリースされたとメールで通知があった。
前回のことがあるので、メジャーバージョンアップなら尚更、ちゃんとアップデートされるのか不安があるものなのだが、まあ想定できるエラーの回避はだいたい2箇所か3箇所だろうと、思い切ってアップデートをしてみることにした。
ちなみに自分はXSERVERの環境であって、自分の場合は次のような流れでアップデートすることができた。
管理者ユーザでNextCloudにログインし、概要画面を表示させると、自分の環境で4つのアプリが新Versionに対応していないとのこと。多分使っていないアプリについては良いが、Splashという、Windowsで言えばSpotlightみたいなテーマみたいな、壁紙アプリも対応していないという。まあ本体動作には関係の無い部分なので、一旦無効にして、アップデート作業を開始。
想定通り、アップデートの途中、最後から二つ目くらいの段階で、何だかエラーが表示される。この場合は、サイト側(NextCloudのトップページ)にアクセスしてみる。
想定通り500エラーに陥っている。
前回の経験上、500エラーはNextCloudのサイトの.htaccessのエラーと思われるので、XSERVERのファイルマネージャからNextCloudのディレクトリに.htaccessを開いて編集する。
この.htaccessは、アップデート作業の度にNextCloudが勝手に書き換えるものなので、毎回以下のような作業が必要になる。これは、メジャーアップデートだけではなくマイナーアップデートの場合も同様。
編集すべき箇所は、
<IfModule pagespeed_module>
ModPagespeed Off
</IfModule>
となっている箇所。
この「ModPagespeed」の行が、XSERVERではモジュールが使えないようにされているためにエラーになるようなのである。すなわちこの行をコメントアウトして、次のようにする。
<IfModule pagespeed_module>
# ModPagespeed Off
</IfModule>
これで、ひとまず500エラーは解消されるが、この場合この前後でメンテナンスモードに陥っているようで、アクセスできない。
いや、このプロセスは.htaccessを修正する前のステップだったか、どちらか。
これは、NextCloudをインストールしたディレクトリ配下の「Config/config.php」の中にそのモードの記述があるはずなので、これを書き換えてメンテナンスモードをオフにしてやる必要がある。
'maintenance' => true,
となっているなら、それがメンテナンスモードということなので、ここを、
'maintenance' => false,
に書き換えれば良い。
これで再度NextCloudのトップページにアクセスして、更新作業を継続する。
しばらくそれで更新作業が継続されて、詳細を表示すると更新作業ログのようなものが表示されるが、この後更新作業を継続するみたいなボタンをクリックすると、再び500エラーが発出。
500エラーは.htaccessと疑って、再びNextCloudのディレクトリの.htaccessを確認する。NextCloudはここで再び.htaccessを書き換えたようで、前回同様、
Options -Indexes#### DO NOT CHANGE ANYTHING ABOVE THIS LINE ####
となっている行がある。ここの「-Indexes####」の部分がきちんとオプションとして認識されないので良くない。#の前で改行して、
Options -Indexes
#### DO NOT CHANGE ANYTHING ABOVE THIS LINE ####
としてやらなければならないのである。
これで、もう一度NextCloudのトップページURLにアクセスすると、自分の場合はようやくアップデートが完了して再びアクセスできるようになったのである。
なお、.htaccessでいうともう一つ二つ。
更新完了後に概要にアクセスすると勝手にエラーチェックが行われて「「Strict-Transport-Security」のヘッダの秒数警告」の黄色文字のエラーが表示される。これも.htaccessへ記述を追加してやる必要があって、次の行を.htaccessの最後の行に追加すると、このエラーは表示されなくなる。(記述内容の意味はよくわからない)
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
エラーチェックでは、赤文字の警告としてファイルの完全性が検証されていないというエラーも表示されてしまうのだが、これはどうも上記のように.htaccessを書き換えたことによるものではないか。つまりはXSERVERで動作させるためには必然的に引っかかるエラーということである。
結論として、500エラーは.htaccessのどこかがおかしい、メンテモードはconfig.phpの箇所を修正、と覚えて、今後もずっとこの方法でアップデート作業の補足ができるのかどうかはわからない。自分と同じXSERVERで使っている場合全てこれで解決できるかもわからないが、何とかサーバ側で公式に対応してくれるアプリケーションにならないものかと願うばかりである。
追記2022-11-05
25.0.1へのアップデート作業に関しても、全く同じ状況。
サイトが悪質としてNortonSafeWebが判定する関係で、サイトオーナーを証明するためのHTMLファイルを当該ディレクトリに置いていたら、おかしなファイルがある、と当初のチェック時点でエラー警告が出た。
ちなみに、Nortonの判定はさっぱり変わらず、NextCloudにアクセスする時はSafeWebを無効にする。
NextCloud 25.0.2
だいたい月に1度くらいのペースでアップデートがリリースされるのか、今回はNextCloud 25.0.2がリリースされたとのことなので、アップデート作業を実施。
状況は前回と同じで、エラーが発生するタイミングも同じ。
予め何をどう対処したら良いかわかっているので、焦らずに更新作業を完了。
今回のアップデートでは、管理者用メニューの一部が英語表示のままだった部分が、元通りに日本語表示がされるようになったのと、心持ち高速に動作するようになった。これは気持ちそう思っているだけかも知れないが。
引き続き、自分用のクラウドストレージとして活用していく。
2022/12/09
NextCloud 25.0.3
2023/01/18。更新完了。上記の流れやエラーについてはやはり同じ。最初の500エラーとメンテナンスモード入りは同時に来るので、「# ModPagespeed Off」にするのと、メンテモードの解除の作業をやってからNextCloudのサイトのURLにアクセスすると指示に従ってアップデート作業が始まり、完了する。
その後、再び500エラーに陥るので、.htaccessの###の部分での改行を入れ、再びアクセスすると、ようやく正常に完了する。このやり方が通用する限り、手際よくやれば、そんなに時間かからずにアップデートができる。
NextCloud 25.0.4
2023/02/24。更新完了。全く上記のバージョンと同様の作業を行った。今後もこの手順でアップデートする必要がある者と思われる。
NextCloud 26.0.0
2023/03/23。更新完了。26になっても、更新作業時に発生するエラーは同じ。
NextCloud 26.0.1
2023/04/21。更新作業。エラー等の発生状況は変わらず。同じなので、焦らず作業することができる。
NextCloud 26.0.2
2023/05/26。更新。同じ。
追記2023-10-08
27.1.2へのアップデートに際し、ダウンロードされる手前の所でエラー。次の4つのファイルがあるからダメらしい。他にも、余計なファイルがあるとプロセスが進行しない場合がある。削除するか別のフォルダに一時保存しておく必要がある。
conposer.json
conposer.lock
package-lock.json
package.json