弊社では自社サーバでクラウドサーバーを構築して、お客様をはじめとする外部とのデータのやり取りや、現場等からのアクセスで図面やその他資料の閲覧等でシステムを使用しています。以前のブログテーマでも触れましたように、
容量を気にすることなく、自社サーバーで運用することのメリットは大きく、容量の小ささの割りコストのかかるクラウドよりも使い勝手は良いです。

オンプレミスへのシステムの回帰はいろいろな企業でもそのメリットに気が付きだしているようです。まぁ、そういったことだけではなく、単にネットワークシステムの構築という部分での「趣味」みたいなものでもありますwww
さて、自社サーバーでこの種のシステムを運用するということは、そのシステム自体のメンテナンスなどは完全に自社で執り行うことになります。ここら辺がGoogleやOneDriveなどのクラウドシステムとは違って、ある意味メンドクサイところなわけですw
そんな中、弊社のNEXTCLOUDも、そのシステムのバージョンが29から30に上がったくらいのところで、どうしても消えないエラーがありました。今回のブログでは解決の道しるべになるかもということで情報を残しておこうと思います。
さて、NEXTCLOUDの運用上のエラーの有名どころとしては、
「Webサーバーで “/.well-known/webfinger” が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。」
- 「Webサーバーで “/.well-known/nodeinfo” が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。」
「Webサーバーで “/.well-known/caldav” が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。」
「Webサーバーで “/.well-known/carddav” が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。」
というエラーが管理画面のエラーの部分に表示されることがあって、URLが与えられたときにうまく引けないというものです。これは、apacheなどのWEBサーバーシステムでDocumentRoot配下のNEXTCLOUDをインストールしているディレクトリ内のwebfingerなどにアクセスできるように設定がなされていない場合に生じます。このエラーへの解決策は、ちょっとググればかなりの数がヒットしてくるのですが、NEXTCLOUD自体のドキュメントにも記載されているように、DocumentRoot直下の.htaccessに、
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/\.well-known/carddav /nextcloud/remote.php/dav [R=301,L]
RewriteRule ^/\.well-known/caldav /nextcloud/remote.php/dav [R=301,L]
RewriteRule ^/\.well-known/webfinger /nextcloud/index.php/.well-known/webfinger [R=301,L]
RewriteRule ^/\.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo [R=301,L] </IfModule>
を追記することが示されていますが、バージョンを30にしたころから、どうしても、「webfinger」のエラーだけが消せずに残っていました。何してもダメでした。さらに調べて行くと、これは単にリダイレクトさせている設定にすぎませんので、別の方法でリダイレクトさせればよいのでは?ということで、.htaccessによるリダイレクト設定ではなく、apacheの設定ファイルで解決しました。参考にさせていただいた情報はこれです。
apacheの設定ファイルには、httpd.confというものがありますが、こちらに直接記載でも悪くはありませんが、システムの構成上、個別の設定については「Includes」で指定されているディレクトリ内のconfファイルで設定する方が管理が楽なので、Includes内に、「nextcloud.conf」というファイルを作りそこに、
Redirect 301 /.well-known/webfinger /nextcloud/index.php/.well-known/webfinger
Redirect 301 /.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo
Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav
Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav
という記載をしました。これにより、バージョン30にして半年間ずっと消えなかった「webfinger」のエラーが消えてくれました。ググって出てくる情報は、.htaccessによる制御のモノばかりで、たまたま、apacheの設定ファイルでの解決策を見つけることができたわけですが、先ほどご紹介した参照ブログでも、「結果として」と前置きされているように、これが正しいのか?といわれるとエラー表示がなくなったということだけなので、なんとも言えませんw

それでもこの「すべてのチェックに合格しました。」という表示は半年ぶりなんで、非常にうれしいですw
もし、この手のエラーでググってこのブログにたどり着いたのであれば、.htaccessでの設定から、Includes/nextcloud.confの設定に変えてみてはいかがでしょうか?