●インストール前準備
参考URL:CentOS7にNextCloudを導入する
参考URL:Nextcloud18.0.4+Apache+MariaDB+RedisをCentOS7にセットアップ
参考URL:【VPS活用】 Nextcloud でクラウドストレージをつくってみた ~ サーバー構築編 ~
参考URL:Example installation on CentOS 7 server
Apache、MySQL(MariaDB)、php74はインストール済み及び設定完了済みとして作業を進めます。
インストール作業に必要なパッケージをインストールします。
●インストール
Nextcloudの最新パッケージのダウンロードURL(https://nextcloud.com/)を確認します。
今回はZIP版をダウンロードします。
phpのバージョン74についてのApache用のDocumentRootを/var/www/phpdir/php74に設定していますので、その配下にNextCloudをインストールします。
データベース名 : nextcloud
データベースユーザー名 : nextcloud
データベースパスワード : password
※安全なパスワードを設定してください。
ブラウザで http://(サイト名)/nextcloud にアクセスします。
管理者用アカウントのを作成します。
「Nextcloud」の管理アカウントを設定しますので、設定したい「ユーザ名」と「パスワード」を入力してください。
ストレージとデータベースを設定します。
「ストレージとデータベース」をクリックすると設定欄が表示されるますので下記項目を設定してください。
各項目の設定が完了しましたら「セットアップを完了します」をクリックします。
●SSLへの対応
Let's Encryptを設置方法は「Let's Encrypt証明書の設定」を参照してください。
「PHPを複数バージョンインストールする」の設定を維持した状態で、PHPのバージョン7.4を使用できるようにSSLを設定します。
上記の作業でNextCloudは/var/www/phpdir/php74/nextcloud/にインストールされています。
リンクを作成します。
●同期中に「・・・接続が閉じられました」と表示される
Windows 10からCentOS Stream 8上で動作しているNextCloud(以下、「サーバ側」という。)に大きなファイル(1.5GB位)をアップロードすると、同期中に「・・・接続が閉じられました」と警告表示されます。
Windows 10のNextCloudクライアントで同期状態を確認すると、ファイルサイズが大きすぎて同期が途中で終了していることが分かりました。
サーバ側では、10分毎にそれなりのファイル数と(合計で)それなりファイルサイズとなるデータをダウンロードしていましたので、それを一時的に停止させ様子を見ることにしました。
すると、途中で同期が終了していた大きなファイルは同期を中断した箇所より再度同期するようになり、最終的に同期を完了することができました。
サーバ側の環境(ネットワーク・CPU性能等)にもよりますが、同期が途中で終わった警告メッセージ(「・・・接続が閉じられました」)が頻繁に表示される場合、上記のように対応することにより時間はかかるものの同期を完了させることができます。
●NextCloudで大きなファイルをアップロードできない
Windows10上で利用しているNextCloudクライアントからサーバへ同期しようとすると同期に失敗しエラーが表示されます(同期対象ファイルサイズは1.9GB)。
サーバ側で下記のようなログが記録されていました。
このため、ModSecurity(Web Application Firewall)の設定を2箇所変更しました。
●セキュリティ&セットアップ警告
NextCloud(26.0.2)をインストール後、管理者権限でログインすると下記のようなメッセージが表示されました。
最後のバックグラウンドジョブの実行は○日前を実行しました。何かがおかしいようです。
参考URL:Nextcloud バックグラウンドジョブの設定を解決する方法
の対処は下記のとおりです、
しかし、cronが動作するたびに下記のようなメールが送信されるようになりました。
Webサーバーで "・・・" が解決されるように正しく設定されていません。
の対処は下記のとおりです、
メールサーバーの設定が未設定または未確認です。基本設定で設定を行ってください。
参考URL:5.1.2. メール通知にSendmailを利用する
の対処は下記のとおりです、
メールサーバがNextcloudと同じマシン上にある場合、Sendmailコマンドを使用してメールを送信することができます。
ご使用のシステムには、デフォルトの電話地域が設定されていません。
の対処は下記のとおりです、
メモリーキャッシュが構成されていません。
の対処は下記のとおりです、
PHP OPcacheモジュールの対処
の対処は下記のとおりです、
の対処は下記のとおりです、
データベースは取引ファイルを見ることに使われています。
参考URL:Rocky Linux 9.0 (Alma Linux) にRedis7.0を入れる
参考URL:Nextcloud 27.0.0
の対処は下記のとおりです、
「パフォーマンスをあげるには、可能であればメモリーのキャッシュを設定してください。」とのこと。
これで表示されなくなりました。
データベースにいくつかのインデックスがありません。
参考URL:データベースにいくつかのインデックスがありません。
の対処は下記のとおりです、
このインスタンスには推奨されるPHPモジュールがいくつかありません。sodium
参考URL:このインスタンスには推奨されるPHPモジュールがいくつかありません。(sodium)
の対処は下記のとおりです、
PHPモジュール「imagick」が有効ではありません。
の対処は下記のとおりです、
「imagick」がインストールされているか確認します。
●NextCloudのアップデート失敗時の対処方法
参考URL:Nextcloud でアップデートに失敗して再開できなくなったときの対処
GUIでアップデート作業中にエラーが表示(…in progress.)されました。
対応方法を調査したいところインターネットにありましたので、同じことを実行(CLIでの実行)しました。
●Nextcloud or one of the apps require upgrade - only a limited number of commands are available
参考URL:Nextcloudのコマンドラインでのアップデート
「occ upgrade」コマンド実行時、下記のように表示されることがあります。
下記のようなエラーで止まってしまったときも、上記コマンドで対応可能です。
●Nextcloud is already latest version
occコマンドを使用してアップデート使用しても「Nextcloud is already latest version」と表示されアップデートできない。
下記のように実施しました。
下記のようなエラーで止まってしまったときも、上記コマンドで対応可能です。
●NextCloud GUIのメール設定で接続できない
参考URL:Connect to dovecot IMAP server fails with SSL alert
WebでNextCloudログイン後、メールが更新されていないことに気が付きました。
どこかしらのタイミングで、IMAPサーバと接続できなくなっていました。
メール設定で反映させようとすると「IMAPサーバに接続できません」的なアナウンスが表示されます。
maillogを確認すると「SSL alert number 48」を含むエラーが記録されていました、
調査したところ、config.phpに「'app.mail.verify-tls-peer' => false,」を追加することで解決できるとのこと。
「(Nextcloudインストールディレクトリ)/config/config.php」に追加保存後、再度設定し解決できました。
●NextCloudとCollabora Onlineとの連携
参照URL:クラウドコラボレーションサーバ「Collabora Online」を構築してみた(3) 〜さくらのクラウド/さくらのVPSでの構築例(前編)〜
参照URL:How to Install and Test CODE
前提条件:NextCloudは構築済みであること。
以前は、NextCloudのアプリでNextcloud Officeをインストールし、有効化しておけばブラウザ上でMicrosoft Officeドキュメントを開くことが出来ていたような気がしていました。いつの間にかブラウザ上で表示できなくなったので、調べてみました。
どうも、Collabora Online(Nextcloudでは、Collabora Onlineを「Nextcloud Office」と呼んでいる模様です。)のインストール及び設定とNextCloudでのCollabora Online - Built-in CODE Serverのインストールが必要であることがわかりました。
まず、先にCollabora Online - Built-in CODE Serverをインストールします。
管理者権限でNextCloudにログイン
→ 「アプリ」
→ 左タブの「Office & テキスト」
→ 「Collabora Online - Built-in CODE Server」を「ダウンロードして有効にする」をクリック
次に、Collabora Onlineをインストールし設定していきます。
リポジトリの追加を実施します。
GPG書名キーを入手します。
画面右上のユーザアイコンをクリック→「管理者設定」をクリック→左側メニューの下の方にある「管理」→「Nextcloud Office」または「オフィス」をクリックするとNextcloud Officeの設定画面が表示されます。
「Collabora オンラインサーバーに接続可能です」と表示されていることを確認します。
先に、Collabora Online - Built-in CODE Serverをインストールしていたので、「ビルトイン Code を使う - Collabora Online Development Edition」が選択済みとなっていることを確認します。 この状態で、共有されているオフィスドキュメント(ワード、エクセル等)をクリックすると表示できるようになります。
●cron.phpのエラー
「基本設定」の「バックグラウンドジョブ」で5分ごとにcron.phpファイルを実行すること選択しています。
PHPを8.1から8.2にバージョンアップ後、エラーがメールで通知されるようになりました。
ところが php -m で確認したところimagickを確認できませんでした。
参考URL:CentOS7にNextCloudを導入する
参考URL:Nextcloud18.0.4+Apache+MariaDB+RedisをCentOS7にセットアップ
参考URL:【VPS活用】 Nextcloud でクラウドストレージをつくってみた ~ サーバー構築編 ~
参考URL:Example installation on CentOS 7 server
Apache、MySQL(MariaDB)、php74はインストール済み及び設定完了済みとして作業を進めます。
インストール作業に必要なパッケージをインストールします。
# yum install -y epel-release yum-utils unzip curl wget bash-completionシステムを最新状態にアップデートします。
# yum -y update上記のphp74をインストールする方法で不足するパッケージをインストールします。
# yum install php74-php-pecl-zip # systemctl start php74-php-fpm
●インストール
Nextcloudの最新パッケージのダウンロードURL(https://nextcloud.com/)を確認します。
今回はZIP版をダウンロードします。
# cd /tmp # wget https://download.nextcloud.com/server/releases/nextcloud-20.0.4.zip # wget https://download.nextcloud.com/server/releases/nextcloud-20.0.4.zip.sha256 # sha256sum -c nextcloud-20.0.4.zip.sha256 nextcloud-20.0.4.zip: 完了「完了」と表示されればダウンロードしたパッケージに問題はありません。
phpのバージョン74についてのApache用のDocumentRootを/var/www/phpdir/php74に設定していますので、その配下にNextCloudをインストールします。
# cd /var/www/phpdir/php74 # unzip /tmp/nextcloud-20.0.4.zip # mkdir /var/www/phpdir/php74/nextcloud/data # chown -R apache:apache /var/www/phpdir/php74/nextcloud/ # systemctl restart httpdMariaDB にログインし、NextCloud用のデータベースを作成します。
MariaDB [(none)]> CREATE DATABASE nextcloud; MariaDB [(none)]> GRANT ALL ON nextcloud.* to nextcloud@'localhost' identified by 'password'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit※ここでは、例として以下の情報でデータベースを作成しています。
データベース名 : nextcloud
データベースユーザー名 : nextcloud
データベースパスワード : password
※安全なパスワードを設定してください。
ブラウザで http://(サイト名)/nextcloud にアクセスします。
管理者用アカウントのを作成します。
「Nextcloud」の管理アカウントを設定しますので、設定したい「ユーザ名」と「パスワード」を入力してください。
ストレージとデータベースを設定します。
「ストレージとデータベース」をクリックすると設定欄が表示されるますので下記項目を設定してください。
設定項目 | 内容 |
---|---|
データフォルダ | Nextcloudディレクトリ/data 例:/var/www/phpdir/php74/nextcloud/data |
データベースの指定 | MySQL/MariaDBを選択 |
データベースのユーザ名 | Nextcloud用データベース管理ユーザ名 例:nextcloud |
データベースのパスワード | Nextcloud用データベース管理ユーザのパスワード 例:password |
データベース名 | Nextcloud用に作成したデータベース名 例:nextcloud |
データベースサーバ | localhost:5432 |
各項目の設定が完了しましたら「セットアップを完了します」をクリックします。
●SSLへの対応
Let's Encryptを設置方法は「Let's Encrypt証明書の設定」を参照してください。
「PHPを複数バージョンインストールする」の設定を維持した状態で、PHPのバージョン7.4を使用できるようにSSLを設定します。
上記の作業でNextCloudは/var/www/phpdir/php74/nextcloud/にインストールされています。
リンクを作成します。
# ln -s /var/www/phpdir/php74/nextcloud /var/www/html/nextcloud作成したリンクに対してhttpd.confに設定を追加します。
# vi /etc/httpd/conf/httpd.conf # .htaccessを利用できるようにするための設定 <Directory "/var/www/html/nextcloud"> AllowOverride All </Directory>作成したリンクに対してssl.confに設定を追加します。
# vi /etc/httpd/conf.d/ssl.conf <Directory "/var/www/html/nextcloud"> <FilesMatch \.php$> SetHandler "proxy:fcgi://127.0.0.1:9074" </FilesMatch> <IfModule dir_module> DirectoryIndex index.php </IfModule> Options Includes FollowSymLinks </Directory>Apacheを再起動します。
# systemctl restart httpdブラウザで https://(サイト名)/nextcloud にアクセスします。アクセスできればSSL化の対応は終了です。
●同期中に「・・・接続が閉じられました」と表示される
Windows 10からCentOS Stream 8上で動作しているNextCloud(以下、「サーバ側」という。)に大きなファイル(1.5GB位)をアップロードすると、同期中に「・・・接続が閉じられました」と警告表示されます。
Windows 10のNextCloudクライアントで同期状態を確認すると、ファイルサイズが大きすぎて同期が途中で終了していることが分かりました。
サーバ側では、10分毎にそれなりのファイル数と(合計で)それなりファイルサイズとなるデータをダウンロードしていましたので、それを一時的に停止させ様子を見ることにしました。
すると、途中で同期が終了していた大きなファイルは同期を中断した箇所より再度同期するようになり、最終的に同期を完了することができました。
サーバ側の環境(ネットワーク・CPU性能等)にもよりますが、同期が途中で終わった警告メッセージ(「・・・接続が閉じられました」)が頻繁に表示される場合、上記のように対応することにより時間はかかるものの同期を完了させることができます。
●NextCloudで大きなファイルをアップロードできない
Windows10上で利用しているNextCloudクライアントからサーバへ同期しようとすると同期に失敗しエラーが表示されます(同期対象ファイルサイズは1.9GB)。
サーバ側で下記のようなログが記録されていました。
# less /var/log/httpd/modsec_audit.log
[Fri Jul 22 22:44:12.692726 2022] [:error] [pid 1212106:tid 140183034918656] [client 192.168.0.1:51180] [client 192.168.0.1] ModSecurity: Request body (Content-Length) is larger than the configured limit (536870912). [hostname "www.bigbang.mydns.jp"] [uri "/nextcloud/remote.php/dav/uploads/hogehoge/1003468202/0000000000000013"] [unique_id "YtqprB0f@-ZsMprN-MAgIAAAAEc"]
[Fri Jul 22 22:44:12.692726 2022] [:error] [pid 1212106:tid 140183034918656] [client 192.168.0.1:51180] [client 192.168.0.1] ModSecurity: Request body (Content-Length) is larger than the configured limit (536870912). [hostname "www.bigbang.mydns.jp"] [uri "/nextcloud/remote.php/dav/uploads/hogehoge/1003468202/0000000000000013"] [unique_id "YtqprB0f@-ZsMprN-MAgIAAAAEc"]
このため、ModSecurity(Web Application Firewall)の設定を2箇所変更しました。
# vi /etc/httpd/conf.d/mod_security.conf SecRequestBodyLimit 536870912 ↓ SecRequestBodyLimit 2147483648 SecRequestBodyNoFilesLimit 536870912 ↓ SecRequestBodyNoFilesLimit 2147483648 # systemctl restart httpd以上により、正常にアップロード出来るようになりました。
●セキュリティ&セットアップ警告
NextCloud(26.0.2)をインストール後、管理者権限でログインすると下記のようなメッセージが表示されました。
セキュリティ&セットアップ警告 サーバーのセキュリティとパフォーマンスにとって重要なことは、すべてが正確に設定されていることです。あなたの助けとなるよう、Nextcloudでは一部の自動チェックを行っています。 / 詳細な情報は、リンク先のドキュメントを参照してください。 セットアップに関して警告がいくつかあります。 最後のバックグラウンドジョブの実行は○日前を実行しました。何かがおかしいようです。 バックグラウンドジョブの設定を確認してください↗。 Webサーバーで "/.well-known/webfinger" が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。 Webサーバーで "/.well-known/nodeinfo" が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。 Webサーバーで "/.well-known/caldav" が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。 Webサーバーで "/.well-known/carddav" が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。 メールサーバーの設定が未設定または未確認です。基本設定で設定を行ってください。その後、フォームの下にある「メールを送信」ボタンで設定を確認してください。 ご使用のシステムには、デフォルトの電話地域が設定されていません。これは、国コードなしでプロファイル設定の電話番号を検証するために必要です。 / 国コードなしで番号を許可するには、地域のそれぞれの ISO3166-1コード↗とともに "default_phone_region" を設定ファイルに追加してください。 メモリーキャッシュが構成されていません。パフォーマンスを向上させるために、可能な場合はmemcacheを構成してください。詳細については、ドキュメント↗をご覧ください。 PHP OPcacheモジュールが正しく設定されていません。詳細は ドキュメント を参照してください。 PHP OPcacheモジュールがロードされていません。パフォーマンスを向上させるには、OPcacheモジュールをPHPインストールにロードすることをお勧めします。 このインスタンスには推奨されるPHPモジュールがいくつかありません。 パフォーマンスの向上と互換性の向上のために、それらをインストールすることを強くお勧めします。 sodium テーマ別アプリは有効ですが、PHPモジュール「imagick」が有効ではありません。ファビコン生成を正しく行うには、このモジュールをインストールし、有効化する必要があります。 インストールガイド ↗を再確認して、 ログ にあるすべてのエラーや警告を確認してください。 Nextcloudのセキュリティは、セキュリティスキャン ↗でチェックしてください。
最後のバックグラウンドジョブの実行は○日前を実行しました。何かがおかしいようです。
参考URL:Nextcloud バックグラウンドジョブの設定を解決する方法
最後のバックグラウンドジョブの実行は○日前を実行しました。何かがおかしいようです。 バックグラウンドジョブの設定を確認してください↗。
の対処は下記のとおりです、
# crontab -u apache -e */5 * * * * php -f /var/www/nextcloud/cron.php ※内容を確認 # crontab -u apache -lこれで表示されなくなりました。
しかし、cronが動作するたびに下記のようなメールが送信されるようになりました。
PHP Deprecated: PHP Startup: Use of mbstring.http_input is deprecated in Unknown on line 0 PHP Deprecated: PHP Startup: Use of mbstring.http_output is deprecated in Unknown on line 0 PHP Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
Webサーバーで "・・・" が解決されるように正しく設定されていません。
Webサーバーで "/.well-known/webfinger" が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。 Webサーバーで "/.well-known/nodeinfo" が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。 Webサーバーで "/.well-known/caldav" が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。 Webサーバーで "/.well-known/carddav" が解決されるように正しく設定されていません。詳細については、ドキュメント↗をご覧ください。
の対処は下記のとおりです、
# vi /etc/httpd/conf.d/nextcloud.conf" ※下記行を追加 <IfModule mod_rewrite.c> Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav Redirect 301 /.well-known/webfinger /nextcloud/index.php/.well-known/webfinger Redirect 301 /.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo </IfModule> # systemctl restart httpdこれで表示されなくなりました。
メールサーバーの設定が未設定または未確認です。基本設定で設定を行ってください。
参考URL:5.1.2. メール通知にSendmailを利用する
メールサーバーの設定が未設定または未確認です。基本設定で設定を行ってください。その後、フォームの下にある「メールを送信」ボタンで設定を確認してください。
の対処は下記のとおりです、
メールサーバがNextcloudと同じマシン上にある場合、Sendmailコマンドを使用してメールを送信することができます。
「基本設定」をクリック。 「メールサーバ」の項目で下記のように設定 送信モード:Sendmail Sendmailモード:smtp(-bs) 送信元アドレス:Nextcloudのメール通知で使用する差出人アドレスを設定これで表示されなくなりました。
ご使用のシステムには、デフォルトの電話地域が設定されていません。
ご使用のシステムには、デフォルトの電話地域が設定されていません。これは、国コードなしでプロファイル設定の電話番号を検証するために必要です。 / 国コードなしで番号を許可するには、地域のそれぞれの ISO3166-1コード↗とともに "default_phone_region" を設定ファイルに追加してください。
の対処は下記のとおりです、
# vi config/config.php ※下記行を追加 'default_phone_region' => 'JP',これで表示されなくなりました。
メモリーキャッシュが構成されていません。
メモリーキャッシュが構成されていません。パフォーマンスを向上させるために、可能な場合はmemcacheを構成してください。詳細については、ドキュメント↗をご覧ください。
の対処は下記のとおりです、
# dnf install memcached libmemcached -y コードやオブジェクトをキャッシュできる「OPcache」、「APCu」もインストール # dnf install php-opcache php-pecl-apcu -yこれで表示されなくなりました。
PHP OPcacheモジュールの対処
PHP OPcacheモジュールが正しく設定されていません。詳細は ドキュメント を参照してください。 PHP OPcacheモジュールがロードされていません。パフォーマンスを向上させるには、OPcacheモジュールをPHPインストールにロードすることをお勧めします。
の対処は下記のとおりです、
# dnf install php-opcache php-pecl-apcu -y ※必要に応じて、下記のように設定 # vi /etc/php.d/10-opcache.ini opcache.enable=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1 ※APCuの設定が必要な場合 # vi /etc/php.d/40-apcu.ini [apcu] apc.enabled=1 apc.shm_size=32M apc.ttl=7200 apc.enable_cli=1 apc.serializer=php # apcuが有効になっているか確認します、「APCu Support」が「Enabled」になっていると確認します $ php -i | grep -i apcu /etc/php.d/40-apcu.ini apcu APCu Support => Enabled APCu Debugging => Disabled # systemctl restart php-fpm # systemctl restart httpdこれで表示されなくなりました。
※下記はNextCloudを「30.0.4」にアップデート後、表示されるようになりました。
PHP OPcacheモジュールが正しく設定されていません。 OPcache のインターン化文字列バッファがほぼいっぱいです。
繰り返しの文字列を効果的にキャッシュするために、PHPの設定に "opcache.interned_strings_buffer" を "8" よりも高い値で設定することをおすすめします。
. 詳細については、ドキュメント↗を参照してください。
の対処は下記のとおりです、
# dnf install php-opcache php-pecl-apcu -y
※必要に応じて、下記のように設定
# vi /etc/php.d/10-opcache.ini
opcache.enable=1
opcache.interned_strings_buffer=8 ← ここを「8」より高くする
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
# systemctl restart php-fpm
# systemctl restart httpd
これで表示されなくなりました。
データベースは取引ファイルを見ることに使われています。
参考URL:Rocky Linux 9.0 (Alma Linux) にRedis7.0を入れる
参考URL:Nextcloud 27.0.0
データベースは取引ファイルを見ることに使われています。パフォーマンスをあげるには、可能であればメモリーのキャッシュを設定してください。詳しくは こちらの文書↗をご覧ください。
の対処は下記のとおりです、
「パフォーマンスをあげるには、可能であればメモリーのキャッシュを設定してください。」とのこと。
これで表示されなくなりました。
データベースにいくつかのインデックスがありません。
参考URL:データベースにいくつかのインデックスがありません。
データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 \ "occ db:add-missing-indices"を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 \ インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。 テーブル "oc_mounts"のインデックス "mounts_user_root_path_index"が見つかりません。
の対処は下記のとおりです、
# su -m apache -c "php /var/www/nextcloud/occ db:add-missing-indices" PHP Deprecated: PHP Startup: Use of mbstring.http_input is deprecated in Unknown on line 0 PHP Deprecated: PHP Startup: Use of mbstring.http_output is deprecated in Unknown on line 0 PHP Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0 Check indices of the share table. Check indices of the filecache table. Check indices of the twofactor_providers table. Check indices of the login_flow_v2 table. Check indices of the whats_new table. Check indices of the cards table. Check indices of the cards_properties table. Check indices of the calendarobjects_props table. Check indices of the schedulingobjects table. Check indices of the oc_properties table. Check indices of the oc_jobs table. Check indices of the oc_direct_edit table. Check indices of the oc_preferences table. Check indices of the oc_mounts table. Adding mounts_user_root_path_index index to the oc_mounts table, this can take some time... oc_mounts table updated successfully.これで表示されなくなりました。
このインスタンスには推奨されるPHPモジュールがいくつかありません。sodium
参考URL:このインスタンスには推奨されるPHPモジュールがいくつかありません。(sodium)
このインスタンスには推奨されるPHPモジュールがいくつかありません。 パフォーマンスの向上と互換性の向上のために、それらをインストールすることを強くお勧めします。 sodium
の対処は下記のとおりです、
まだ、作業中これで表示されなくなりました。
PHPモジュール「imagick」が有効ではありません。
テーマ別アプリは有効ですが、PHPモジュール「imagick」が有効ではありません。 ファビコン生成を正しく行うには、このモジュールをインストールし、有効化する必要があります。 詳細については、ドキュメント↗を参照してください。
の対処は下記のとおりです、
「imagick」がインストールされているか確認します。
# pecl list (「pecl」コマンド自体インストールされていない場合、必要なパッケージが選択されインストールされます。 「php-pear」がインストールされました。) Installed packages, channel pecl.php.net: ========================================= Package Version State zip 1.22.3 stable (表示されない場合、インストールされていません。)php-develがインストールされていない場合、インストールします。
# dnf install php-devel -yこの状態で「pecl」コマンドを実行すると「WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update」と表示され真下ので、下記を実行しました。
# pecl channel-update pecl.php.net Updating channel "pecl.php.net" Update of Channel "pecl.php.net" succeeded「imagick」をインストールします。
# pecl install imagick downloading imagick-3.7.0.tgz ... Starting to download imagick-3.7.0.tgz (360,138 bytes) .........................................................................done: 360,138 bytes : : Build process completed successfully Installing '/usr/lib64/php/modules/imagick.so' Installing '/usr/include/php/ext/imagick/php_imagick_shared.h' install ok: channel://pecl.php.net/imagick-3.7.0 configuration option "php_ini" is not set to php.ini location You should add "extension=imagick.so" to php.ini「imagick」がインストールされたか確認します。
# pecl list Installed packages, channel pecl.php.net: ========================================= Package Version State imagick 3.7.0 stable zip 1.22.3 stableこれで表示されなくなりました。
●NextCloudのアップデート失敗時の対処方法
参考URL:Nextcloud でアップデートに失敗して再開できなくなったときの対処
GUIでアップデート作業中にエラーが表示(…in progress.)されました。
対応方法を調査したいところインターネットにありましたので、同じことを実行(CLIでの実行)しました。
$ su -
# cd /path/to/nextcloud
# sudo -u apache php ./occ upgrade
アップデート完了後、メンテナンスモードを無効化
# sudo -u apache php ./occ maintenance:mode --off
以上の作業でアップグレードが正常に完了し、利用できるようになりました。
●Nextcloud or one of the apps require upgrade - only a limited number of commands are available
参考URL:Nextcloudのコマンドラインでのアップデート
「occ upgrade」コマンド実行時、下記のように表示されることがあります。
# sudo -u apache php ./occ upgrade Nextcloud or one of the apps require upgrade - only a limited number of commands are available You may use your browser or the occ upgrade command to do the upgrade Setting log level to debug Turned on maintenance mode Updating database schema Updated database Updatingこの場合、下記を実行してください。... Updated to 4.0.3 Starting code integrity check... Finished code integrity check Update successful Turned off maintenance mode Resetting log level
# sudo -u apache php ./updater/updater.pharアップデートされたことを確認できれば終了です。
下記のようなエラーで止まってしまったときも、上記コマンドで対応可能です。

●Nextcloud is already latest version
occコマンドを使用してアップデート使用しても「Nextcloud is already latest version」と表示されアップデートできない。
下記のように実施しました。
$ su - # cd /path/to/nextcloud # sudo -u apache php ./updater/updater.pharこれで対応完了です。Nextcloud Updater - version: v29.0.0-23-g6a5f9ec Current version is 30.0.4. Update to Nextcloud 30.0.5 available. (channel: "stable") Following file will be downloaded automatically: https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zip Open changelog ↗ Steps that will be executed: [ ] Check for expected files [ ] Check for write permissions [ ] Create backup [ ] Downloading [ ] Verify integrity [ ] Extracting [ ] Enable maintenance mode [ ] Replace entry points [ ] Delete old files [ ] Move new files in place [ ] Done Start update? [y/N] y Info: Pressing Ctrl-C will finish the currently running step and then stops the updater. [✔] Check for expected files [✔] Check for write permissions [✔] Create backup [✔] Downloading [✔] Verify integrity [✔] Extracting [✔] Enable maintenance mode [✔] Replace entry points [✔] Delete old files [✔] Move new files in place [✔] Done Update of code successful. Should the "occ upgrade" command be executed? [Y/n] Nextcloud or one of the apps require upgrade - only a limited number of commands are available You may use your browser or the occ upgrade command to do the upgrade Setting log level to debug Repair step: Repair MySQL collation Repair info: All tables already have the correct collation -> nothing to do Repair step: Copy data from accounts table when migrating from ownCloud Repair step: Drop account terms table when migrating from ownCloud Updating database schema Updated database Updating... Repair step: AppAPI Daemons configuration GPU params update Repair info: Daemons configuration GPU params updated: 0 Updated to 4.0.5 Repair step: Repair MySQL collation Repair info: All tables already have the correct collation -> nothing to do Repair step: Clean tags and favorites Repair info: 0 tags of deleted users have been removed. Repair info: 0 tags for delete files have been removed. Repair info: 0 tag entries for deleted tags have been removed. Repair info: 0 tags with no entries have been removed. Repair step: Repair invalid shares Repair step: Move .step file of updater to backup location Repair info: .step file exists Repair info: .step-previous-update removed Repair info: .step file moved to .step-previous-update Repair step: Add move avatar background job Repair info: Repair step already executed Repair step: Add preview cleanup background jobs Repair step: Migrate oauth2_clients table to nextcloud schema Repair info: Update the oauth2_access_tokens table schema. Repair info: Update the oauth2_clients table schema. Repair info: Delete clients (and their related access tokens) with the redirect_uri starting with oc:// or ending with * Repair step: Repair language codes Repair step: Add log rotate job Repair step: Clear frontend caches Repair info: Image cache cleared Repair info: JS cache cleared Repair step: Clear every generated avatar Repair step: Add preview background cleanup job Repair step: Queue a one-time job to cleanup old backups of the updater Repair step: Cleanup invalid photocache files for carddav Repair step: Add background job to cleanup login flow v2 tokens Repair step: Remove potentially over exposing share links Repair info: No need to remove link shares. Repair step: Clear access cache of projects Repair step: Reset generated avatar flag Repair step: Keep legacy encryption enabled Repair step: Check encryption key format Repair step: Remove old dashboard app config data Repair step: Add job to cleanup the bruteforce entries Repair step: Queue a one-time job to check for user uploaded certificates Repair step: Repair DAV shares Repair step: Add background job to set the lookup server share state for users Repair step: Add token cleanup job Repair step: Clean up abandoned apps Repair step: Add possibly missing system config Repair step: Add AI tasks cleanup jobs Repair step: Queue a job to generate metadata Repair step: migrate lazy config values Repair step: Cache logo dimension to fix size in emails on Outlook Repair info: Theming is not used to provide a logo Repair step: Remove legacy ".ocdata" file Repair step: Add cleanup-deleted-users background job Starting code integrity check... Finished code integrity check Update successful Maintenance mode is kept active Resetting log level Keep maintenance mode active? [y/N] Maintenance mode disabled Maintenance mode is disabled
下記のようなエラーで止まってしまったときも、上記コマンドで対応可能です。

●NextCloud GUIのメール設定で接続できない
参考URL:Connect to dovecot IMAP server fails with SSL alert
WebでNextCloudログイン後、メールが更新されていないことに気が付きました。
どこかしらのタイミングで、IMAPサーバと接続できなくなっていました。
メール設定で反映させようとすると「IMAPサーバに接続できません」的なアナウンスが表示されます。
maillogを確認すると「SSL alert number 48」を含むエラーが記録されていました、
調査したところ、config.phpに「'app.mail.verify-tls-peer' => false,」を追加することで解決できるとのこと。
「(Nextcloudインストールディレクトリ)/config/config.php」に追加保存後、再度設定し解決できました。
●NextCloudとCollabora Onlineとの連携
参照URL:クラウドコラボレーションサーバ「Collabora Online」を構築してみた(3) 〜さくらのクラウド/さくらのVPSでの構築例(前編)〜
参照URL:How to Install and Test CODE
前提条件:NextCloudは構築済みであること。
以前は、NextCloudのアプリでNextcloud Officeをインストールし、有効化しておけばブラウザ上でMicrosoft Officeドキュメントを開くことが出来ていたような気がしていました。いつの間にかブラウザ上で表示できなくなったので、調べてみました。
どうも、Collabora Online(Nextcloudでは、Collabora Onlineを「Nextcloud Office」と呼んでいる模様です。)のインストール及び設定とNextCloudでのCollabora Online - Built-in CODE Serverのインストールが必要であることがわかりました。
まず、先にCollabora Online - Built-in CODE Serverをインストールします。
管理者権限でNextCloudにログイン
→ 「アプリ」
→ 左タブの「Office & テキスト」
→ 「Collabora Online - Built-in CODE Server」を「ダウンロードして有効にする」をクリック
次に、Collabora Onlineをインストールし設定していきます。
リポジトリの追加を実施します。
GPG書名キーを入手します。
# wget https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-centos7/repodata/repomd.xml.key && sudo rpm --import repomd.xml.keyリポジトリを追加します。
# yum-config-manager --add-repo https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-rpmパッケージをインストールします。
# dnf install coolwsd CODE-brand -y管理アカウント名とパスワードを追加するため、設定ファイルを編集します。
# cp -p /etc/coolwsd/coolwsd.xml /etc/coolwsd/coolwsd.xml.org # vi /etc/coolwsd/coolwsd.xml 下記行を編集(参考) <username desc="The username of the admin console. Ignored if PAM is enabled.">admin</username> <password desc="The password of the admin console. Deprecated on most platforms. Instead, use PAM or coolconfig to set up a secure password.">password</password>CODEサーバもSSLによる通信を行いますので、SSL証明書をコピーします。
# cd /etc/coolwsd/ # cp /etc/letsencrypt/live/www.bigbang.mydns.bz/cert.pem ./cert.pem # cp /etc/letsencrypt/live/www.bigbang.mydns.bz/privkey.pem ./key.pem # cp /etc/letsencrypt/live/www.bigbang.mydns.bz/fullchain.pem ./a-chain.cert.pem # chown cool:cool *.pemCODEサーバを起動し動作確認します。
# systemctl enable --now coolwsdNextCloudにログインし、ダッシュボードが表示されたら、画面右上のユーザアイコンをクリック→「アプリ」でアプリの一覧画面に移動し、左側メニューから「Office&テキスト」を選択します。するとオフィス系のアプリ一覧が表示されますので、「Nextcloud Office」を選んで「ダウンロードして有効にする」ボタンを押すとインストールされます(Nextcloudでは、Collabora Onlineを「Nextcloud Office」と呼んでいる模様です)。
画面右上のユーザアイコンをクリック→「管理者設定」をクリック→左側メニューの下の方にある「管理」→「Nextcloud Office」または「オフィス」をクリックするとNextcloud Officeの設定画面が表示されます。
「Collabora オンラインサーバーに接続可能です」と表示されていることを確認します。
先に、Collabora Online - Built-in CODE Serverをインストールしていたので、「ビルトイン Code を使う - Collabora Online Development Edition」が選択済みとなっていることを確認します。 この状態で、共有されているオフィスドキュメント(ワード、エクセル等)をクリックすると表示できるようになります。
●cron.phpのエラー
「基本設定」の「バックグラウンドジョブ」で5分ごとにcron.phpファイルを実行すること選択しています。
PHPを8.1から8.2にバージョンアップ後、エラーがメールで通知されるようになりました。
PHP Warning: PHP Startup: imagick: Unable to initialize module Module compiled with module API=20210902 PHP compiled with module API=20220829 These options need to match in Unknown on line 0peclコマンドで確認すると
# pecl list PHP Warning: PHP Startup: imagick: Unable to initialize module Module compiled with module API=20210902 PHP compiled with module API=20220829 These options need to match in Unknown on line 0 Installed packages, channel pecl.php.net: ========================================= Package Version State apcu 5.1.23 stable imagick 3.7.0 stable rrd 2.0.3 stable xdebug 3.2.2 stable zip 1.22.3 stableインストールされていました。
ところが php -m で確認したところimagickを確認できませんでした。
# php -m PHP Warning: PHP Startup: imagick: Unable to initialize module Module compiled with module API=20210902 PHP compiled with module API=20220829 These options need to match in Unknown on line 0 [PHP Modules] : (途中省略) : iconv intl json ldap :原因が良く分からないため、peclコマンドでimagickを一度アンインストールし、再度インストールしたら問題が解決しました。
# pecl uninstall imagick
PHP Warning: PHP Startup: imagick: Unable to initialize module
Module compiled with module API=20210902
PHP compiled with module API=20220829
These options need to match
in Unknown on line 0
Unable to remove "extension=imagick.so" from php.ini
uninstall ok: channel://pecl.php.net/imagick-3.7.0
pecl list
:
(途中省略)
:
Installed packages, channel pecl.php.net:
=========================================
Package Version State
apcu 5.1.23 stable
rrd 2.0.3 stable
xdebug 3.2.2 stable
zip 1.22.3 stable
# pecl upgrade imagick
:
(途中省略)
:
downloading imagick-3.7.0.tgz ...
Starting to download imagick-3.7.0.tgz (360,138 bytes)
.........................................................................done: 360,138 bytes
33 source files, building
:
(途中省略)
:
Build process completed successfully
Installing '/usr/lib64/php/modules/imagick.so'
Installing '/usr/include/php/ext/imagick/php_imagick_shared.h'
upgrade ok: channel://pecl.php.net/imagick-3.7.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=imagick.so" to php.ini
[root@usagi ~]# pecl list
Installed packages, channel pecl.php.net:
=========================================
Package Version State
apcu 5.1.23 stable
imagick 3.7.0 stable
rrd 2.0.3 stable
xdebug 3.2.2 stable
zip 1.22.3 stable
php -m
[PHP Modules]
:
(途中省略)
:
iconv
imagick
intl
json
ldap
: