以前から自宅サーバーで運用していたowncloudですが最近はNextcloudのほうが開発がとても盛んなようで、公開されているアプリの種類やAndroid向けアプリの品質なども随分と差がついてしまっている印象があります。
業務用途で使うならばowncloudの方が有償でのサポート等も期待できるのでしょうが、個人で使用するならば今は正直Nextcloudを選ばない理由は無いのではないかと思います。
今回、owncloud10.2からNextcloud17へ移行するにあたって当初期待していた「owncloudからNextcloudへのマイグレーション」はとっくに不可能となっていました。
公式のドキュメントを見ても随分情報が古い、、、
https://docs.nextcloud.com/server/stable/admin_manual/maintenance/migrating_owncloud.html?highlight=migration
結局マイグレーションは断念して新規に構築し直すことにしたので、その際に地味にハマった事柄の自分用メモを書き残します。
まぁ大体はちゃんとドキュメント読めよって話になるのですが。
PHPの要求バージョン
Nextcloud17で要求されるPHPのバージョンは7.1以降(7.2 or 7.3推奨)のようですが、Debian9の公式リポジトリで提供されるPHPは7.0系です。
何も考えずファイルを/var/www/nextcloudに配置しても当然PHPバージョンの互換性がないメッセージが表示され動きません。
https://packages.sury.org/等のリポジトリを利用するか、Debian10にアップグレードしてPHP7.3をインストールする必要があります。
私はDebian10にアップグレードしました。
config.phpについて
最初はconfig.sample.phpを自分で編集して用意しなければいけないと思っていたのですが、configディレクトリにCAN_INSTALLという空ファイルを用意した上でブラウザからアクセスすると初期設定ウィザードが表示されました。
設定後に確認すると、config.sample.phpに大量にあったコメントも消えたキレイなconfig.phpが生成されていました。
なんてよく出来ているんだ、、、
well-knownなんたらの警告が消えない
下記の警告が表示され解決法がわからず少し迷いました。
Webサーバーは適切にホスト名 "/.well-known/caldav" が引けるように設定されていません。より詳しい情報については、ドキュメントを参照ください。 Webサーバーは適切にホスト名 "/.well-known/carddav" が引けるように設定されていません。より詳しい情報については、ドキュメントを参照ください。
メッセージからリンクされているドキュメントを読むと、サブディレクトリ運用であれば.htaccessに下記を書いておけ的な指示があります。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^\.well-known/host-meta /nextcloud/public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /nextcloud/public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/webfinger /nextcloud/public.php?service=webfinger [QSA,L]
RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]
</IfModule>
検索すると同様のエラーに対処した人の記述を見つけられますが、同様に.htaccessを用意するかapache2の.confに上記と同様の記述を追加して解決しているケースが殆どのようです。
私のケースでは単純にapache2のVirtualHost設定の中にある<Directory "/var/www/owncloud">〜</Directory>が修正せずそのままになっていました。
最初思っていたよりもずいぶん細々した所でハマりましたが、なんとか移行することが出来ました。
ハナからdockerなんかで構築していればこんな面倒は無いのでしょうね、、、
私のケースでは単純にapache2のVirtualHost設定の中にある<Directory "/var/www/owncloud">〜</Directory>が修正せずそのままになっていました。
<Directory /var/www/owncloud/>
Options FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
これを修正すれば解決です。<Directory /var/www/nextcloud/>
Options FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
マヌケすぎる、、、
最初思っていたよりもずいぶん細々した所でハマりましたが、なんとか移行することが出来ました。
ハナからdockerなんかで構築していればこんな面倒は無いのでしょうね、、、
コメント
コメントを投稿