ホーム Enterprise 究極の Nextcloud サーバー ガイド

究極の Nextcloud サーバー ガイド

by アンドリュー・ワーグ

この記事では、Ubuntu Server 24.04.1 と Nextcloud Hub 9 を使用して、高性能でカスタマイズ可能なクラウド ストレージ サーバーを構築する方法を説明します。Linux サーバー管理とコマンド ラインに関する知識が必要です。

無料のクラウド ストレージが不足するのは誰も望まないことです。Google フォトや iCloud から空き容量が不足したという通知が表示されたら、南米へのナマケモノを見に行く旅が台無しになってしまうかもしれません。しかし、DIY やホームラボが好きな人にとっては、手を汚す覚悟があれば解決策があります。

Nextcloudのご紹介

Nextcloud は、クラウドのパワーと柔軟性をあなたの手に届ける、無料のオープンソース クラウド ストレージ プラットフォームです。Red Hat Enterprise Linux 9 や Ubuntu 24.04 LTS など、いくつかの一般的な Linux ディストリビューションをサポートしています。この記事では、Ubuntu Server 24.04.1 と Nextcloud Hub 9 (30.0.0) を使用して、高性能で完全にカスタマイズ可能なクラウド ストレージ サーバーを構築します。ここで示す手順の一部では、Linux サーバー管理とコマンド ライン インターフェイスに関する背景知識が必要になる場合がありますので、よく考えて技術的な内容を理解する準備をしてください。

サーバーのセットアップ

Nextcloud サーバーの設定を開始するには、選択したシステムに Ubuntu Server を新規インストールする必要があります。メイン コンピューターまたは余っている予備のハードウェア上の仮想マシンで十分でしょう。少なくとも 2 ~ 4 個の CPU コア、8 GB の RAM、500 GB のストレージを備えたコンピューターをお勧めします。システムの準備ができたら、次のリンクにアクセスして Ubuntu Server を入手してください。 https://ubuntu.com/download/server .

これまでに Ubuntu Server をインストールしたことがない場合は、始める前にガイドを確認してください。 https://ubuntu.com/tutorials/install-ubuntu-server 推奨ソフトウェア ページで Nextcloud を事前インストールするオプションを選択しないように注意してください。これは弊社が対応します。

サーバーをネットワークに接続し、ホスト名を設定し、初期セットアップ時に作成したユーザー名とパスワードでログインしたら、Ubuntu Serverの最新のソフトウェアアップデートを取得するには、次のように入力します。 「sudo apt update && sudo apt upgrade -y」 コンソールでEnterキーを押します。更新が完了したら、 「sudo 再起動」.

注意: sudo コマンドを実行するには、パスワードを再度入力する必要がある場合があります。

ソフトウェアのインストール

次に、Nextcloud インスタンスが依存する前提条件ソフトウェアをいくつか取得する必要があります。コマンドライン インターフェイスに次のコマンドを入力 (または、できればコピーして貼り付け) して、Apache Web サーバーと、後でより高度な Nextcloud セットアップに必要ないくつかのパッケージをダウンロードしてインストールします。

sudo apt インストール apache2 mariadb-server php libapache2-mod-php redis-server libmagickcore-6.q16-7-extra
sudo apt install php-apcu php-bcmath php-bz2 php-cli php-common php-curl php-gd php-gmp php-imagick php-intl php-ldap php-mbstring php-memcached php-mysql php-redis php-smbclient php-zip php-xml

インストールを続行するか中止するかを尋ねるプロンプトが表示されたら、Yと入力してEnterキーを押します。最後に「wget https://download.nextcloud.com/server/releases/latest.zip” をクリックして、Nextcloudの最新バージョンを入手し、 「sudo apt install unzip」 解凍ツールをインストールするには、それらのファイルを抽出する必要があります。

Nextcloud インスタンスをセットアップするために必要なソフトウェアがすべて揃ったので、インストールした Web サーバーを調べてみましょう。

Apache Web サーバーの設定 – パート 1

Apache を操作する前に、まずサーバーに正しく接続できることを確認する必要があります。Nextcloud インスタンスへの Web ブラウザー (HTTP および HTTPS) 接続を許可するには、次のコマンドを使用します。

「Apache Full」でsudo ufwを許可する
sudo ufw enable

これで、Ubuntu Server上で実行中のアクセス可能なWebサーバーができました。Nextcloudマシンと同じネットワークに接続された別のコンピューターで、ブラウザウィンドウにサーバーのIPアドレスを入力してEnterキーを押します。サーバーのIPアドレスがわからない場合は、 「ホスト名 -I」 コマンドを実行してサーバーに表示します。インストールが成功した場合は、デフォルトの Apache2 ページが美しく表示されるはずです。

このデフォルトの Web サーバー ページはなかなか良いと思う人もいるかもしれませんが、パート 2 ではさらに優れたものに置き換えます。ちょっと寄り道して、MariaDB をセットアップしてみましょう。

MariaDB の設定

Nextcloudサーバーには、サーバー構成とユーザープロファイル情報を保存するための常時オンラインデータベースが必要です。システムの再起動後にMariaDBを実行するように構成するには、次のように入力します。 「sudo systemctl を有効にする mariadb」 Enter キーを押します。これで、Nextcloud インストール用のデータベースを準備する準備が整いました。

幸いなことに、MariaDBには安全なセットアップユーティリティがあらかじめパッケージ化されているので、それほど手間をかける必要はありません。 「sudo mysql_secure_installation」 起動して、ウィザードの質問に答えます。

  • rootの現在のパスワードを入力します(noneの場合は入力してください)。 エンターをクリック
  • unix_socket認証に切り替える[Y/n] n
  • ルートパスワードを変更しますか? n
  • 匿名ユーザーを削除しますか? [Y / n] y
  • リモートからのrootログインを拒否しますか? [Y / n] y
  • テストデータベースとそれへのアクセスを削除しますか? [Y/n] y

MariaDB は安全になったので、Nextcloud インスタンスを提供するデータベースの作成を開始できます。

種類 「sudo mysql -u ルート」 MySQL コマンドライン インターフェイスが表示されたら、次のコマンドを入力します (各行の末尾には必ず「;」を付けてください)。

'P@$$w0rd' によって識別されるユーザー 'nextcloud'@'localhost' を作成します。

注: 「nextcloud」と「P@$$w0rd」を任意のユーザー名とパスワードに置き換えます。

データベースが存在しない場合は作成します。 nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
nextcloud.* のすべての権限を 'nextcloud'@'localhost' に付与します。

注: ここでも、@ 記号の前の「nextcloud」を、以前使用したユーザー名に置き換えます。

フラットプリビーグス;
やめる;

だんだん近づいてきました! 機能する (ただし完成していない) Web サーバーとデータベースができました。

PHP拡張機能を有効にしてPHPパフォーマンスを向上させる

インストールしたすべての PHP 拡張機能を覚えていますか? Nextcloud が適切に使用できるように、それらを有効にする必要があります。必要な PHP 拡張機能を有効にするには、次のコマンドを使用します。

sudo phpenmod apcu bcmath bz2 curl gd gmp imagick intl ldap mbstring memcached mysql redis smbclient zip xml

適切な拡張機能が有効になったので、ニーズに合わせてPHP設定を調整する必要があります。編集するPHP設定ファイルは次の場所にあります。 「/etc/php/8.3/apache2/php.ini」 配置することで変更することができます 「sudo ナノ」 パスの前に入力してEnterキーを押します。別のバージョンのPHPをインストールしている場合は、 "8.3" インストールされているバージョンのメジャーリリース番号を入力します。 「php -v」 コンソールで。

開いたら、 「php.ini」 Ubuntuの組み込みテキストエディタnanoを使用してファイルを開くには、コントロール(ctrl)キーを押しながらキーボードの「W」キーを押します。検索バーが表示されたら、次のように入力します。 「最大実行時間」と入力し、Enter キーを押します。すると Nano は、入力した値と一致する最初の値にスキップします。矢印キーで移動し、Backspace キーで文字を削除して、「30」を「360」に変更します。このトリックを繰り返して、次の PHP 設定の値を変更します。

memory_limitを= 512M
  • 必要に応じてオプションで増やして、PHP にさらに多くのメモリを割り当てることができます (1024M、2048M など)
投稿の最大サイズ = 100G
アップロード最大ファイルサイズ = 100G
  • この値と前の値は、Nextcloud サーバーにアップロードできる最大ファイル サイズを表します。希望する最大ファイル サイズに変更します。(1G = 1 ギガバイト、10G = 10 ギガバイト、100G = 100 ギガバイトなど) サイズは K (キロバイト)、M (メガバイト)、G (ギガバイト) のみを入力するように注意してください。
日付.タイムゾーン = America/New_York
  • 行の前の「;」を削除し、このガイドを使用して正しいタイムゾーンを確認してください: https://www.php.net/manual/en/timezones.php
opcache.enable=1
  • 行の前の「;」を削除します。
opcache.メモリ消費量=128
  • 行の前の「;」を削除します。この値(メガバイト単位)は、Nextcloud サーバーのメモリ量に合わせてカスタマイズできます(128 = 128 メガバイト、1024 = 1024 メガバイト/1 ギガバイト、2048 = 2048 メガバイト/2 ギガバイト)。
opcache.interned_stringers_buffer=16
  • 行の前の「;」を削除します。インターンされた文字列に割り当てられたメモリの量をメガバイト単位で表します。推奨値は 16 です。
opcache.max_accelerated_files=10000
  • 行の前の「;」を削除します。この値は、システムのキャッシュとメモリの機能に合わせて、200 から 1000000 までの任意の数値に調整できます。
opcache.revalidate_freq=1
  • 行の前の「;」を削除し、1に変更します。
opcache.save_comments=1
  • 行の前の「;」を削除し、値が 1 に設定されていることを確認します。

php.ini ファイルへの必要な変更をすべて完了したら、コントロール (ctrl) キーを押しながら「O」キーを押してファイルを保存します。Enter キーを押して確定し、もう一度コントロール (ctrl) キーを押しながら「X」キーをタップして nano を終了します。

次に、以下のコマンドを入力して、必要なApacheモジュールを有効にします。 「sudo a2enmod dir env headers mime rewrite ssl」 コンソールで。この時点でコンソール メッセージで提案されたコマンドを使用して Apache を再起動する必要はありません。

Apache Web サーバーの設定 – パート 2

Nextcloudをダウンロードし、ソフトウェアの前提条件の多くを設定しましたが、デフォルトのApacheウェブページをNextcloudに置き換える必要があります。 「cd~」 コンソールでEnterキーを押すと、ユーザーのホームディレクトリに戻ります。これはNextcloud ZIPファイルがダウンロードされた場所です。次に、次のように入力します。 「最新の.zipを解凍」 Enter キーを押すと、解凍ユーティリティが作動します。

この 「最新.zip」 ZIPファイルは、次のフォルダに解凍されます。 「ネクストクラウド」 ダウンロードしたのと同じディレクトリにあります。この新しいフォルダには、Nextcloudサイトに必要なすべての資料が含まれています。次に、このフォルダを適切な場所に移動します。 「/var/www/html」.

フォルダを転送する前に、内蔵の 「wwwデータ」 ユーザーは新しいディレクトリの所有者です。これは非常に重要です。 「wwwデータ」 ユーザーはApacheウェブサーバーとNextcloud自体によって実行されるすべてのウェブサーバー操作を処理します。 「sudo chown -R www-data:www-data ./nextcloud」 コンソールで Enter キーを押します。

今で 「wwwデータ」 ユーザーがフォルダを所有している場合は、遅滞なく移動できます。 「sudo mv ./nextcloud /var/www/html」 フォルダを正しいディレクトリに移動します。

次のように入力して、デフォルトのApacheウェブサーバーページを無効にすることができます。 「sudo a2dissite 000-default.conf」 コンソールに入力します。警告を無視してApacheサーバーを再度読み込み、新しいサイトの仮想ホストファイルを作成します。 「sudo nano /etc/apache2/sites-available/nextcloud.conf」 Enter キーを押します。仮想ホスト ファイルの内容は、次のように正確に入力する必要があります。

ドキュメントルート /var/www/html/nextcloud/ サーバー名 nextcloud-demo.moose.localすべて許可が必要 AllowOverride All Options FollowSymLinks MultiViewsダブオフ

交換する 「nextcloud-demo.moose.local」 Nextcloudをインストールしたサーバーの完全修飾ドメイン名(FQDN)を入力します。FQDNの最初の部分は、先ほど作成したサーバーのホスト名で、 「ホスト名」 コマンドをコンソールで実行します。名前の2番目と3番目の部分は、それぞれドメインとトップレベルドメインです。たとえば、ドメインが 「storagereview.com」 そしてあなたのサーバーのホスト名は 「ネクストクラウド」サーバーのFQDNは次のようになります 「nextcloud.storagereview.com」.

ドメインを所有していない場合は、Cloudflareなどのレジストラからドメインを購入することができます。 https://www.cloudflare.com/products/registrar/ または、次のようなウェブサイトから無料で公開されているホスト名を使用します。 https://www.noip.com/ ドメインを購入したり、無料のホスト名を使用したくない場合は、このフィールドに架空の FQDN を入力できます。ただし、Nextcloud インスタンスへの接続にはサーバーの IP アドレス (パブリックおよびプライベート) のみを使用できるという注意点があります。

注: サーバーの FQDN を使用して Nextcloud インスタンスにローカルにアクセスするには、ホーム ネットワーク上で適切に構成された DNS サーバーが実行されている必要があります。そうでない場合は、ホーム ネットワークからアクセスするときにサーバーのローカル IP アドレスを使用する必要があります。

仮想ホストファイルの作成が終了し、サンプルのFQDNをサーバーのFQDN(正当なものでもそうでないものでも)に置き換えたら、以下を使用してNextcloudサイトを有効にできます。 「sudo a2ensite nextcloud.conf」「sudo systemctl apache2を再起動」 新しいサイトで Web サーバーを再起動します。サーバーの FQDN またはローカル IP アドレスを介して、同じネットワーク上にある別のコンピューターの Web ブラウザーを使用して Nextcloud インスタンスに移動します。

Nextcloudの初期設定

前の手順を正しく実行した場合は、サイトの管理者ユーザーを作成し、Nextcloud サーバーに関する詳細を入力するように求めるページが表示されます。管理者ユーザーに、Administrator や Superadmin などの希望する名前と強力なパスワードを入力します。

Nextcloudの初期設定セットアップページの「ストレージとデータベース」セクションで、 「/var/www/html/nextcloud/data」 「データフォルダ」フィールドに、MariaDBデータベースの作成時に使用したアカウントのユーザー名、パスワード、データベース名を入力します。「データベースホスト」フィールドには、 「ローカルホスト」 完了したらインストールボタンをクリックします。

Nextcloudでデータベースを構成する

サイトがしばらく読み込まれた後、Nextcloud サーバーに推奨されるアプリをいくつかインストールするオプションが表示されます。Nextcloud インスタンスにアプリを追加すると、サーバーの処理負荷、メモリ使用量、ディスク使用量が増加することに注意してください。推奨されるアプリをインストールするか、オプションでこの手順をスキップするかを選択します。

Nextcloudのおすすめアプリアプリのインストールが完了したら、または次のページが表示されたら、必要に応じて紹介メニューを読んでください。

Nextcloud サーバーは完成したように見えますが、サーバーを動作させるには、サーバー上で定期的にスケジュールされたタスクを実行するための cron ジョブを設定するという、もう 1 つの手順が必要です。

Cronジョブの作成

cronジョブは、ユーザーの介入なしに定期的に実行されるコマンドです。Nextcloudサーバーでは、サーバーの 「cron.php」 最適なパフォーマンスと機能性を実現するために、スクリプトを 5 分ごとに実行します。

このcronジョブを設定するには、次のコマンドを入力します。 「sudo crontab -u www-data -e」 サーバーのコンソールで。

「wwwデータ」 ユーザーの crontab が開かれたら、ファイルの末尾に次の行を追加します。

*/5 * * * * php -f /var/www/nextcloud/cron.php

完了したら、コントロール (ctrl) キーを押しながら「O」キーを押してファイルを保存し、コントロール (ctrl) キーを押しながら「X」キーを押して終了します。おめでとうございます! これで、ローカル ネットワークで動作する Nextcloud サーバーが利用できるようになりました。これで、自宅のネットワーク上の Nextcloud サーバーとの間でファイルのアップロードとダウンロードを開始できますが、さらに優れたものにするには、セキュリティを強化し、ホームラボでよく使用するアプリをいくつか追加し、超高速のメモリ キャッシュ システムを設定し、パブリック インターネットからアクセスできるようにする必要があります。

Nextcloudサーバーのセキュリティの向上

Web サーバーのセキュリティ体制を強化する最善の方法の 1.3 つは、暗号化されていない安全でない HTTP ではなく、HTTPS にアップグレードすることです。有効にすると、リクエストは Web 接続用の最新かつ最も安全な暗号化標準である TLS XNUMX 経由で処理されます。これは、Web サイトをパブリック インターネットに公開する予定がある場合は常に必要な手順であり、機密情報を保護する際の優れた最初の手順です。

Nextcloud トラフィックを暗号化することに決めたら、HTTPS を設定するための 2 つのオプションから選択できます。自己署名証明書を使用するか、有効な証明機関からの証明書を使用するかです。現在ドメインを所有していない場合、または一時的な Nextcloud インスタンス用にドメインを設定する予定がない場合は、自己署名証明書またはホスト名プロバイダーからの証明書を使用することをお勧めします。より永続的な Nextcloud 設定を計画している場合は、Let's Encrypt などの証明機関から公的に信頼された証明書を取得することを強くお勧めします。

自己署名証明書を使用した HTTPS

自己署名証明書を有効にして作成するには、いくつかの簡単なコマンドを発行する必要があります。

sudo a2enmod ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nextcloud-selfsigned.key -out /etc/ssl/certs/nextcloud-selfsigned.crt

Apache SSL(TLSとも呼ばれる)モジュールを有効にして自己署名証明書を作成したので、サイトにTLSをオンにして証明書を使用するように指示する必要があります。 「sudo nano /etc/apache2/sites-available/nextcloud.conf」 Enter キーを押して、仮想ホスト ファイルをもう一度編集を開始します。

仮想ホスト ファイルの下部に次の行を正確に追加しますが、「ServerName」フィールドをサーバーの完全修飾ドメイン名に置き換えます。

DocumentRoot /var/www/html/nextcloud/ ServerName nextcloud-demo.moose.local SSLEngine on SSLCertificateFile /etc/ssl/certs/nextcloud-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/nextcloud-selfsigned.keyすべて許可が必要 AllowOverride All Options FollowSymLinks MultiViewsダブオフ

コントロール(ctrl)キーを押しながら「O」キーを押してファイルを保存し、コントロール(ctrl)キーを押しながら「X」キーを押してnanoを終了します。これらの変更をApacheウェブサーバーに適用するには、 「sudo systemctl apache2を再起動」 コマンド。これで、自己署名証明書を使用して HTTPS が有効になりました。

次回、サーバーの完全修飾ドメイン名または IP アドレスを入力してサイトにアクセスすると、サイトの証明機関が有効ではないことを通知する警告が表示されます。このエラーを無視して (方法は Web ブラウザによって異なります)、サイトを表示します。Web ブラウザは自動的に HTTPS を使用して接続し、TLS 暗号化を使用してデータを送信します。

Nextcloudダッシュボード

信頼できる証明書を使用した HTTPS

Nextcloudで信頼できる証明書を使用するには、まずドメインを所有しているか、ホスト名プロバイダーから署名された証明書を持っている必要があります。以前に自己署名証明書を使用していて、前のセクションの手順に従ってHTTPSを有効にしていた場合は、ファイルの下部に追加されたテキストの部分を削除し、コマンドを実行します。 「sudo a2dismod ssl」「sudo systemctl apache2を再起動」完了したら、必ず control + “O” と control + “X” を押して保存し、nano を終了してください。

ドメイン所有者向けの HTTPS 設定 (Certbot 経由)

仮想ホスト ファイルが標準の HTTP 構成に戻ったので、証明機関からの信頼できる証明書を使用する準備を開始できます。ドメインを所有している場合は、次の手順に従って証明書を取得して実装してください。そうでない場合は、次のセクションに進んでください。このセクションでは、ホスト名プロバイダーから取得した証明書の使用について詳しく説明します。独自のドメインで使用する証明書を取得するには、Web サーバーで使用するための無料の証明書を提供する非営利団体 Let's Encrypt の Certbot を使用します。

Certbotをダウンロードするには、まずSnapをインストールしてアップデートしてください。 「sudo snap install core && sudo snap refresh core」. 次に、入力します 「sudo snap install –classic certbot」 (「classic」の前にハイフンが 2 つ連続)をクリックしてパッケージをインストールします。

コマンドを実行する 「sudo certbot –apache」 (ここでも、「apache」の前にハイフンが 2 つ) をクリックして certbot を起動し、すべてのプロンプトに従って Web 証明書を作成してダウンロードします。

証明書作成プロセスでは、ドメイン所有者に連絡するために使用される電子メール アドレスなどの情報が必要になり、Let's Encrypt が要求する利用規約に同意するように求められます。プロンプトが表示されたら、証明書を取得するドメイン名を入力または選択し、対話型プロセスを完了します。Certbot の使用中にエラーが発生した場合は、ルーターでポート 80 および 443 を Nextcloud サーバーのプライベート IP アドレスに転送するか、ドメインの DNS レコードをルーターのパブリック IP アドレスを指すように構成する必要があります。ポート転送と DNS レコードの設定のプロセスは、ルーター、ドメイン レジストラ、およびインターネット サービス プロバイダーに大きく依存するため、このガイドでは説明しません。

Certbotが完了したら、次のように入力して仮想ホストファイルを再度開きます。 「sudo nano /etc/apache2/sites-available/nextcloud.conf」 エンターキーを押します。ヘッダーを追加してHTTP URLをHTTPSに書き換えられるようにし、 「nextcloud-demo.moose.local」 サーバーの完全修飾ドメイン名を入力します:

RewriteCond の RewriteEngine %{SERVER_NAME} = nextcloud-demo.moose.local RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

完了すると、仮想ホスト ファイルは次のようになります。

これで、有効な証明機関からの信頼できる証明書と、Web 用の HTTPS 暗号化が設定されました。

ホスト名プロバイダーからの証明書を使用した HTTPS の設定

ホスト名プロバイダからの証明書を使用してNextcloudサーバーでHTTPSを有効にする手順は、この記事の「自己署名証明書を使用したHTTPS」セクションで説明されている手順と同じですが、唯一の例外は、自己署名キーへのパスをホスト名プロバイダからのキーへのパスに置き換える必要があることです。次のようなコマンドは、 「wget」「MV」 証明書ファイルをダウンロードして適切なディレクトリ(証明書ファイルの場合は/etc/ssl/certs、キーファイルの場合は/etc/ssl/private)に移動するために使用できます。Apache SSLモジュールを必ず有効にしてください。 「sudo a2enmod ssl」 命令と使用 「sudo systemctl apache2を再起動」 完了したら、変更を適用します。証明書ファイルを使用するための完成した仮想ホスト ファイルは次のようになります (SSLCertificateFile フィールドと SSLCertificateKeyFile フィールドは、カスタム証明書とキー ファイルへのパスに置き換えられます)。

ファイル用ウイルス対策アプリのインストール

Nextcloud は HTTPS 経由でデータを安全に送信できますが、あなたやユーザーがアップロードするすべてのデータが安全であるとは限りません。意図的であろうとなかろうと、Web サーバー上のマルウェア感染は、迅速に対処しないと、甚大な被害をもたらし、他のシステムに瞬く間に広がる可能性があります。インターネット上の悪意のある行為者に対する保護をさらに強化するには、インターネットからアクセスできるサーバーにウイルス対策プログラムが必要です。

ClamAV は、Nextcloud と統合して、ユーザーがアップロードしたファイルにマルウェアが含まれていないかスキャンできる、無料のオープンソース ウイルス対策スイートです。Nextcloud アプリ ストアには、「Antivirus for files」というアプリがあり、ClamAV をバックエンドとして使用してユーザー ファイルをスキャンし、サーバーを保護します。このアプリは、管理者アカウントのプロフィール写真をクリックして「アプリ」タブに移動し、「セキュリティ」カテゴリを選択してダウンロードできます。

「ファイル用ウイルス対策」セクションの「ダウンロードして有効にする」ボタンをクリックして、Nextcloudインスタンスにインストールします。次に、ClamAVをインストールし、スキャナーとマルウェアシグネチャ更新システムを有効にする必要があります。 「sudo apt install clamav clamav-daemon」 必要なすべての ClamAV パッケージを取得します。

パッケージがインストールされたら、以下を実行します。 「sudo dpkg-reconfigure clamav-daemon」 コンソールで対話型の設定メニューを表示します。これを使用して、ClamAV セットアップのスキャン動作をカスタマイズします。以下の質問に対する回答を入力してください。

  • 設定ファイルを自動的に処理しますか? はい
  • ソケットの種類: UNIX
  • ローカル (UNIX) ソケット clamd は次のものをリッスンします: /var/run/clamav/clamd.ctl
  • clamd ローカル (UNIX) ソケットのグループ所有者: ClamAVの
  • clamd ローカル (UNIX) ソケットの作成モード: 666
  • 残った UNIX ソケット ファイルを適切に処理しますか? はい
  • メールスキャンを有効にしますか? いいえ
  • アーカイブスキャンを有効にしますか? いいえ
  • 許可されるディレクトリの最大深度: 15
  • デーモンが通常のファイルのシンボリックリンクをたどるようにしますか? はい
  • スレッド スキャナーを停止するためのタイムアウト (秒): 180
  • デーモンのスレッド数: 2
    • Nextcloud サーバーのコア数/vCPU 数から 2 を引いた数をこのフィールドに入力します。
  • 許可される保留中の接続の数: 15
  • システムロガーを使用しますか? いいえ
  • clamav-daemon のログ ファイル (無効にするには none と入力): ログファイル
  • 各メッセージに時間情報を記録しますか? いいえ
    • ドライブへの書き込み量が多くてもシステムに悪影響がない場合は、「はい」を選択してください。
  • ログローテーションを有効にしますか? はい
  • デーモンのセルフチェック間の遅延(秒): 3600
  • clamav-daemon を実行するユーザー: ClamAVの
  • clamav-daemon のグループ (スペース区切り): www-データ
  • データベースからバイトコードをロードしますか? はい
  • バイトコードに適用するセキュリティ レベル: 信頼署名
  • バイトコード実行タイムアウト(ミリ秒): 60000

ふう!設定が大変でしたね!幸いなことに、設定は一度だけで済みます。 「systemctl を有効にする clamav-freshclam」「systemctl で clamav-daemon を有効にする」 システムの起動後に ClamAV が起動できるようにし、Nextcloud の「ファイル用ウイルス対策」アプリの設定を開始できます。

Nextcloud サーバーと同じネットワークとサブネットに接続されている別のコンピューターの Web ブラウザーを使用して、Nextcloud にログインし、管理者ユーザーのプロフィール写真をクリックします。ドロップダウン メニューから [管理設定] オプションをクリックし、ページの読み込みが完了したら [セキュリティ] セクションを選択します。

「ファイルのウイルス対策」セクションまでスクロールし、「モード」フィールドを「ClamAV デーモン (ソケット)」に変更します。「バックグラウンド スキャン中に感染ファイルが見つかった場合」フィールドを「ファイルを削除」に変更し、「保存」ボタンを押します。ClamAV は、Nextcloud にアップロードされたファイルを定期的にスキャンしてマルウェアを検出し、既知のマルウェア シグネチャに一致するファイルを削除します。

Nextcloud の統合と全般的な改善

データを保存するための機能的で安全なクラウド サーバーを構築したので、その機能を拡張し、新しい機能を追加できます。まずは、Nextcloud を電子メール サーバーに接続し、デフォルトの電話地域を設定するという、簡単な作業から始めましょう。

メールサーバーの接続

メール通知、アクティビティ アラート、パスワード リセット リンク (LDAP 以外のユーザー向け) を送信するには、Nextcloud を稼働中のメール サーバーに接続する必要があります。メール サーバーを自分でホストする場合は、正しいサーバー アドレスと認証情報を入力するだけで簡単にセットアップできます。また、Gmail の SMTP サーバーなど、既にお持ちのメール アドレスでサードパーティのメール サーバーを使用することもできます。

サーバーと同じネットワークおよびサブネットにあるコンピューターの Web ブラウザーを使用して、Nextcloud サーバーの完全修飾ドメイン名または IP アドレスに移動します。管理者ユーザーのプロフィール写真をクリックし、ドロップダウン メニューから [管理設定] を選択します。

「管理設定」ページで、左側から「基本設定」セクションを選択し、「メールサーバー」モジュールまで下にスクロールします。

このページから、電子メール サーバーの暗号化、アドレス指定、および認証設定を構成できます。セキュリティや互換性のニーズに合わせて、いくつかの暗号化および認証方法を選択できます。

すでに所有しているGoogleアカウントでGmailのSMTPサーバーを使用するには、まず https://myaccount.google.com/apppasswords サイトの指示に従ってアプリ パスワードを作成します。アプリ パスワードに Nextcloud サーバーに関連付けられた名前を付け、パスワードを安全な場所に保存します。パスワードは 4 文字ごとにスペースが入った状態で表示されますが、実際にはスペースは含まれません。アプリ パスワードは 16 文字の連続した文字列です。

以下の電子メール サーバーのフィールドに入力します。

  • 送信モード: SMTP
  • 暗号化: なし/STARTTLS
  • 送信元アドレス: ジョン・ドウ @ storagereview.com
    • ここに Gmail アカウントのアドレスを入力してください。
  • サーバーアドレス: smtp.gmail.com: 587
  • 認証: はい(チェックボックス)
  • 資格情報: [メール保護] アプリパスワードはこちら
    • ここで、Gmail アカウントのアドレスと作成したアプリ パスワードを入力します。

完了したら、「保存」ボタンをクリックし、「メールを送信」ボタンを使用して設定が有効であることを確認します。

使用している管理者ユーザー アカウントにメール アドレスを設定していない場合は、設定を求める警告が表示されます。これは、管理者ユーザーのプロフィール写真をクリックし、ドロップダウン メニューから [個人設定] を選択して、[メール] フィールドにメール アドレスを入力することで簡単に解決できます。完了したら、[管理設定] ページの [基本設定] の下にある [メール サーバー] モジュールに戻り、必要に応じて設定を再度入力します。

デフォルトの電話地域の設定

Nextcloud が電話番号をより適切に処理できるようにするために、インスタンスのデフォルトの電話地域を設定するという、非常に簡単かつ非常に役立つ変更を行うことができます。ユーザーが「個人設定」の下にある「個人情報」設定でプロフィールを入力する際、連絡先として電話番号をオプションで入力するよう求められます。デフォルトの電話地域が設定されていない場合、Nextcloud はユーザーにこの番号とともに国番号の入力を強制します。デフォルトの電話地域を設定すると、ユーザーはこのプレフィックスを除外できます。

Nextcloudサーバーコンソールで、 「sudo nano /var/www/html/nextcloud/config/config.php」 Nextcloud サイトの PHP 構成ファイルを編集します。

前の行で作成されたスペース パターンと一貫性を保ちながら、終了の「);」括弧の前に挿入して、次の行を PHP 構成ファイルに追加します。

'default_phone_region' => '米国'、

セキュリティ上の理由から、Nextcloudインスタンスのコンテンツを誰にも見せないでください。 「config.php」 ファイルには、パスワードやシステム シークレットなど、あなたまたはシステム管理者だけが知っているべき機密情報が含まれています。デフォルトの電話地域行を構成ファイルに追加し終わったら、コントロール (ctrl) キーを押しながら「O」をタップして新しい内容を保存し、コントロールを押しながら「X」をタップして終了します。変更を適用するには、次のように入力します。 「sudo systemctl apache2を再起動」 コンソールに入力して Enter キーを押します。

メンテナンスウィンドウの設定

Nextcloud サイトの PHP 構成ファイルに加えることができるもう 1 つの小さな改善は、サーバーが、より集中的でユーザーに影響を与える可能性のあるタスクを実行するためのメンテナンス ウィンドウを設定することです。ウィンドウは UTC 時間を使用して設定されるため、希望するメンテナンス ウィンドウの開始時刻を同等の UTC 時間 (24 から 3 までの整数で表されます) に変換する必要があります。メンテナンス ウィンドウは 00 時間続くため、UTC の午前 7 時に開始するメンテナンス ウィンドウは、UTC の午前 00 時に終了します。

  「sudo nano /var/www/html/nextcloud/config/config.php」 PHP 設定ファイルをもう一度編集し、ファイル内の既存の行で使用されているスペース規則に従って、終了の「);」括弧の前に次の行を追加します。

'メンテナンスウィンドウの開始' => 1,
    • 「1」を、UTC 時間に変換された希望のメンテナンス ウィンドウの開始時刻に置き換えることを忘れないでください。

コントロール(ctrl)+「O」とコントロール(ctrl)+「X」を使用してファイルを保存した後、メンテナンスウィンドウを適用します。 「sudo systemctl apache2を再起動」.

LDAP/Active Directory サーバー統合

複数のユーザーに Nextcloud インスタンスへのアクセスを許可する予定の場合、Nextcloud に追加できる最も強力な機能の 1 つは、LDAP または Active Directory サーバーに接続して認証する機能です。多くの組織やホームラボでは、Active Directory または LDAP を使用して、ネットワーク リソースへのユーザー アクセスを一元的に整理および制御しており、Nextcloud も例外ではありません。「LDAP ユーザーとグループ バックエンド」アプリを使用すると、Active Directory ドメインまたは LDAP サーバーのユーザーを Nextcloud サーバーにインポートし、ユーザー名またはメール アドレスとパスワードを使用してログインできます。この機能は、外部ストレージ (NAS 上の SMB 共有など) と組み合わせるとさらに強力になり、ユーザーに固有の権限を持つ個別の「ホーム」フォルダーが提供されます。

「LDAP ユーザーとグループ バックエンド」アプリをインストールするには、まず、管理者ユーザー アカウントで Nextcloud Web ページにログインして、プロフィール写真をクリックします。表示されるドロップダウン メニューから「アプリ」を選択し、「おすすめのアプリ」モジュールをクリックします。「LDAP ユーザーとグループ バックエンド」アプリが見つかるまで下にスクロールし、「有効にする」ボタンをクリックします。

アプリが有効になったので、Nextcloud を LDAP サーバーに接続する必要があります。この接続を承認するアカウントがあることを確認してください。通常は、この接続専用に作成されたサービス アカウントが推奨されますが、ディレクトリを検索できる任意の Active Directory または LDAP アカウントを使用できます。この例では、Active Directory ドメインの組み込みドメイン「管理者」アカウントを使用しますが、これは安全な方法ではないことに注意してください。 Nextcloud サーバーが侵害され、「管理者」アカウントの資格情報が盗まれた場合、攻撃者はドメイン内のすべてのオブジェクトを読み取り、変更、さらには削除する完全な権限を持つことになります。

管理者ユーザーのプロフィール写真をクリックし、ドロップダウン メニューから選択して、もう一度「管理設定」ページに移動します。開始するには、「LDAP/AD 統合モジュール」をクリックします。

このページで、LDAP/Active Directory サーバーに必要な情報を入力します。

  • ホスト: 192.168.1.102
    • LDAP サーバーまたは Active Directory ドメイン コントローラーの IP アドレス/ホスト名に置き換えます。
  • ポート: 389
    • Active Directory を使用している場合は、ポート 389 を使用します。別の種類の LDAP サーバーを使用している場合、または AD サーバーが LDAP 要求をリッスンするポートをカスタマイズしている場合は、ここで特定の番号を入力します。
  • ユーザーDN: CN=管理者、CN=ユーザー、DC=ムース、DC=ローカル
    • Nextcloud を LDAP/AD サーバーに接続するために使用するアカウントの識別名を入力します。Active Directory を使用している場合は、CMD ウィンドウを使用してこのコマンドを実行することで簡単に見つけることができます。「Administrator」は、接続に使用しているアカウントのユーザー名に置き換えてください。
      • dsquery ユーザー名 -name “管理者”
    • このフィールドに入力したら、「資格情報を保存」ボタンをクリックします。
  • 1 行につき 1 つのベース DN: DC=ムース、DC=ローカル
    • 以前の資格情報を保存した後、「ベース DN の検出」ボタンをクリックすると、LDAP/AD サーバーのベース DN が自動的に決定されます。
    • 必要に応じて、「ベース DN のテスト」ボタンをクリックして、これまでの設定が有効かどうかを確認します。

「LDAP/AD 統合」モジュールの最初のページを完了したら、「続行」というラベルの付いたボタンを押し、「ユーザー」セクションを少し見て確認してください。

ページのレイアウトは最初はわかりにくいかもしれませんが、その機能は、オブジェクト クラスやグループなどの属性によって、Nextcloud サーバーにログインできるユーザーをフィルタリングすることです。Nextcloud サーバーにログインするユーザー用に一意のグループを作成し、そのグループのメンバーシップによってフィルタリングできるようにすることをお勧めします。アクセスを許可するオブジェクト クラスやグループを選択し、「>」ボタンをクリックしてグループをフィルターに追加します。この例では、「family」という名前のグループを使用しています。「設定を確認してユーザーをカウント」ボタンをクリックすると、入力した説明に一致するユーザーの数を示すメッセージが表示されます。カウントが正しくないと思われる場合は、オブジェクト クラスとグループ フィルターを再確認してください。

ユーザー数が正しいことを確認したら、「続行」ボタンを押して「ログイン属性」セクションに進みます。「LDAP/AD ユーザー名:」および「LDAP/AD 電子メール アドレス」フィールドのチェックボックスをオンにし、「ログイン名のテスト」ボックスにユーザー名と電子メール アドレス (必要な場合) を入力して「設定の確認」をクリックし、ログイン属性が正しいことを確認します。

ユーザー名/メールアドレスを使用してログインできる場合は、「ユーザーが見つかり、設定が確認されました」という通知が表示されます。最後にもう一度「続行」ボタンを押して、最後のページ「グループ」に進みます。「ユーザー」ページと同様に、「グループ」セクションでは、オブジェクトクラスとグループの基準を使用して、Nextcloud サーバーにログインできるユーザーを絞り込みます。「ユーザー」ページで行ったのと同じ選択を行うか、ここで「オブジェクトクラスの検索」フィールドと「グループの検索」フィールドにさらに具体的な基準を入力して、ログインできるユーザーの数を減らします。この例では、ページのリストから「family」グループを選択し、「>」ボタンを使用してそのグループのみにアクセスを制限します。最後に、「設定を確認してグループをカウント」をクリックすると、ログインに有効なグループの数が表示されます。

これで、前の手順で選択した LDAP または Active Directory グループに Nextcloud サーバーにログインする権限が付与されました。管理者ユーザーのプロフィール写真をクリックし、「ログアウト」を選択します。再度ログインするためにユーザー名とパスワードの入力を求められた場合は、アクセスを許可したユーザーの 1 人のログイン機能をテストします。ユーザーがログインできない場合は、このページの「ユーザー」と「グループ」セクションに再度アクセスして、条件を確認し、エラーのトラブルシューティングを行ってください。

外部ストレージ統合

Nextcloud サーバーに追加されたもう 1 つの強力な機能は、外部ストレージ プールに接続して使用する機能です。ユーザー ファイルをサーバー自体に直接配置すると、サーバーのストレージ管理に関連した問題が発生する可能性があり、ユーザーの需要を満たすために容量を常に増やす必要があります。クォータの適用とユーザーが作成した不要なデータの削除に常に注意を払わないと、フラストレーションや予期しないダウンタイムが発生する可能性があります。スケーラブルなクラウド ストレージ システムと快適なユーザー エクスペリエンスを実現するには、Nextcloud セットアップの Web サーバーとストレージ コンポーネントを分離することが強く推奨され、重要です。

Nextcloud の「外部ストレージ サポート」アプリを使用すると、次のストレージ タイプからフォルダーをマウントできます。

  • アマゾンS3
  • FTP
  • Nextcloud
    • はい、その通りです。他の Nextcloud サーバーに接続して利用可能なストレージを使用できます。
  • OpenStack オブジェクト ストレージ
  • SFTP
  • SMB / CIFS
  • WebDAVを

ご覧のとおり、Nextcloud を外部ストレージ アレイ、クラウド、その他のシステムに接続するには、いくつかの選択肢があります。例として、以前接続した Active Directory ドメインからインポートされたユーザーに付与された権限を使用して、さまざまなフォルダーへのアクセスを制御する SMB 共有に Nextcloud インスタンスを接続します。

「外部ストレージ サポート」アプリを有効にするには、サイトにログインしたときに管理者ユーザーのプロフィール写真をクリックし、「アプリ」を選択します。もう一度「おすすめアプリ」に移動し、「外部ストレージ サポート」というラベルの付いたモジュールを見つけます。「有効にする」ボタンをクリックして、アプリケーションを利用できるようにします。

アプリが有効になると、「管理設定」に移動して「外部ストレージ」モジュールをクリックすることで、外部ストレージを追加できるようになります。このページでは、ドロップダウン メニューからストレージの種類を選択し、構成の詳細を入力することで、外部ストレージに接続できます。

SMB 共有を追加するには、リストから「SMB/CIFS」オプションを選択し、次のように構成の詳細を入力します。

  • 認証: 手動で入力し、データベースに保存
    • ユーザーが認証のために自分のユーザー名とパスワードを手動で入力するようにするには、このオプションを選択します。静的な資格情報のセットを使用してユーザーに SMB 共有へのアクセスを許可するには、「ログインとパスワード」を選択します。それ以外の場合は、ドロップダウン メニューからニーズに最も合ったオプションを選択します。
  • フォルダ名: 家族
    • この名前は、マウントするストレージを説明するために使用する任意の名前に設定できます。例: 「SMB」またはマウントする共有の名前。
  • ホスト: 192.168.1.140
    • この値を、接続する SMB 共有をホストしているサーバーの IP アドレスまたは FQDN に置き換えます。
  • シェア: 家族
    • この値を、「ホスト」フィールドに入力されたサーバー上に存在する、マウントする共有の名前に置き換えます。
  • リモートサブフォルダ: \
    • 共有の最上位フォルダ(共有フォルダ自体)をマウントするには、「\」を使用します。それ以外の場合は、次の形式で目的の共有内のサブフォルダへのパスを入力します。
      • \サブフォルダ\別のサブフォルダ\さらに別のサブフォルダ
  • ドメイン: ムース
    • 共有へのアクセスが LDAP または Active Directory を使用して制御されている場合は、この値をドメインの NetBIOS 名に置き換えます。共有が LDAP/AD サーバーによって制御されていない場合、このフィールドは不要です。
  • 隠しファイルを表示: チェック
    • ユーザーが隠しファイル(「.」文字で始まるファイル)を表示できるようにする場合は、このボックスをオンにします。
  • 大文字と小文字を区別するファイルシステム: チェック
  • ファイルを一覧表示するときに ACL アクセスを確認します。 チェック
    • このオプションは、アクセス制御が適切に機能するために非常に重要です。そうしないと、2 人のユーザーが同じ共有をマウントし、もう一方のユーザーがアクセスできないようにフォルダーを構成した場合でも、お互いのファイルを表示できるようになります。
  • すべての人: チェック
    • すべての Nextcloud ユーザーが SMB 共有の資格情報を入力して接続できるようにする場合はこのオプションをオンにし、それ以外の場合は、下のフィールドを使用して共有を使用できるように Nextcloud インスタンス上のローカル グループを選択します。
      • 残念ながら、執筆時点では、このオプションが選択されていない場合、下のフィールドを使用して LDAP/Active Directory グループを選択することはできません。

セットアップに固有の SMB 共有構成の詳細を入力し終わったら、チェックマーク ボタンをクリックして保存し、ユーザーが利用できるようにします。

ユーザーが独自の外部ストレージをマウントできるようにするには、ページのストレージ マウント セクションの下にあるチェック マークをクリックします。このオプションを有効にすると、セルフマウントに使用できるストレージの種類をさらに制限できます。

SMB 共有の設定を完了するには、ユーザーは自分のプロフィール写真をクリックしてドロップダウン メニューから選択し、「個人設定」の下の「外部ストレージ」モジュールに移動する必要があります。

このページで、ユーザーはユーザー名とパスワードを入力し、チェックマーク ボタンをクリックすると、SMB 共有のロックを解除してファイルを保存および取得できるようになります。

ユーザーが資格情報を入力すると、Nextcloud サイト メニューの上部にあるフォルダー アイコンをクリックし、ユーザーのフォルダーとファイルのリストを参照して共有にアクセスできるようになります。

Nextcloud を本物の Web サーバーにする

これで、機能豊富な Nextcloud インスタンスは、公開可能な強力な Web サーバーになる準備がほぼ整いました。門戸を開く前に、ファイルにアクセスする複数のユーザーからの集中的なリクエストをサーバーが処理できることを確認する必要があります。システムの PHP 構成にいくつかの重要な編集を加えることで、すでにパフォーマンスが向上していますが、メモリ キャッシュのサポートを追加することで、それがさらに強化されます。

メモリ キャッシュの設定 – APCu

ACPu は、頻繁に使用されるオブジェクトへのアクセス時間を短縮する PHP キャッシュです。これを Nextcloud インスタンスの最初のキャッシュとして使用します。APCu キャッシュを有効にする前に、システムの「php.ini」ファイルにいくつかの変更を加える必要があります。

  「sudo nano /etc/php/8.3/apache2/php.ini」 ファイルの編集を開始します。下矢印キーを長押しして、ファイルの一番下までスクロールします。ファイルの一番下の新しい行に、次の行を追加します。

apc.enable_cli=1
apc.shm_size=128M

これら 128 行を追加すると、システムは APCu をキャッシュとして使用できるようになり、キャッシュ サイズがデフォルト値の 32 メガバイトではなく XNUMX メガバイトに設定されます。完了したら、コントロール (ctrl) + “O” とコントロール (ctrl) + “X” を押してファイルを保存し、nano を終了します。

APCuキャッシュをオンにするには、 「sudo nano /etc/php/8.3/mods-available/apcu.ini」 と追加 「apc.enable_cli=1」 設定ファイルの一番下に追加しました 「php.ini」 ファイル。設定ファイルを保存して終了するには、コントロール (ctrl) + “O” とコントロール (ctrl) + “X” をもう一度使用します。

PHP が APCu を使用できるようにしましたが、今度は Nextcloud にそれを利用するように指示する必要があります。

種類 「sudo nano /var/www/html/nextcloud/config/config.php」 コンソールで Enter キーを押します。Nextcloud PHP 構成ファイルに 1 行追加して、Nextcloud がローカル メモリ キャッシュに APCu を使用するようにします。

'memcache.local' => '\OC\Memcache\APCu',

この行を、前の構成ファイルの行のスペース規則に従って、終了括弧「);」の前に配置します。もう一度、コントロール (ctrl) キーを押しながら「O」を押し、次にコントロール (ctrl) キーと「X」を押して保存して終了します。

PHP設定ファイルを保存したら、 「sudo systemctl apache2を再起動」 Apache Web サーバーを再起動して変更を適用します。

すべての手順を実行して APCu をローカル メモリ キャッシュ用に適切に設定した場合、Nextcloud サーバーのパフォーマンスが大幅に向上するはずです。さらに一歩進んで、Redis を構成してメモリ キャッシュの機能をさらに強化してみましょう。

メモリキャッシュの設定 – Redis

「なぜ Web サーバーに 2 つの異なるメモリ キャッシュが必要なのか。1 つで十分ではないのか」と疑問に思うかもしれません。この質問に対する答えは、実はとても簡単です。職場のあらゆるツールに独自の用途があるように、APCu と Redis にも独自の用途があります。APCu は優れたローカル メモリ キャッシュであり、このカテゴリでは後者を大幅に上回ります。一方、Redis は分散キャッシュとトランザクション ファイル ロックで優れています。

Redisを使い始めるには、次のように入力してシス​​テムのRedis設定ファイルを編集します。
「sudo nano /etc/redis/redis.conf」 コンソールに入力して Enter キーを押します。デフォルトでは、Redis サービスはキャッシュとトランザクション ファイルのロック トラフィック用に TCP ポートをリッスンしますが、単一サーバー セットアップの場合は、Unix ソケットが通信方法として推奨されます。Redis サービスをネットワーク経由で提供している場合は TCP ポートを使用するのが合理的ですが、Redis と Nextcloud Web サーバー プロセス間の通信には Unix ソケットの方がはるかに効率的です。

nanoと入力したら、コントロール(ctrl)キーを押しながら「W」キーを押してnanoの検索機能を起動します。 「unixソケット」 検索バーに入力してEnterキーを押すと、nanoは 「Unixソケット」 ファイルの設定セクション。 「Unixソケット」 セクションを削除し、 「#」 文字と空白のスペース 「unixsocket /run/redis/redis-server.sock」「unixsocketperm 700」。 変更 "700" 〜へ "770"、スクロールして次の行を見つけます。 「ポート6379」この値を次のように変更します。 "0"これによって、Redis サーバーは TCP ポートで接続をリッスンしないように指示されます。以下の画像を参照して構成ファイルを検証してから、コントロール (ctrl) + “O” およびコントロール (ctrl) + “X” を使用してファイルを保存して終了します。

Redisシステム構成ファイルにこれらの変更を加えることで、Nextcloud PHP構成ファイルでRedisを分散キャッシュとトランザクションファイルロックに使用するように指定できるようになりました。このファイルをnanoで開くには、 「sudo nano /var/www/html/nextcloud/config/config.php」.

Nextcloud PHP 構成ファイルの末尾の「);」括弧の前に、スペースとカンマに注意しながら次の行を追加します。

'memcache.distributed' => '\OC\Memcache\Redis'、 'memcache.locking' => '\OC\Memcache\Redis'、 'redis' => [ 'host' => '/run/redis/redis-server.sock'、 'port' => 0、 ]、

行を正しく入力した場合、PHP 構成ファイルのメモリ キャッシュ セクションは次のようになります。

変更を適用するためにApacheウェブサーバーとRedisを再起動する前に、 「sudo usermod -a -G redis www-data」 を追加する 「wwwデータ」 ユーザーを 「レディス」 グループを作成し、WebサーバーにRedis Unixソケットへのアクセスを許可します。最後に、次のように入力します。 「sudo systemctl restart apache2 && sudo systemctl restart redis-server」 コンソールに入力し、Enter キーを押して変更を適用し、影響を受けるサービスを再起動します。

Nextcloudをインターネットに公開する

もうすぐ完了です!Nextcloudサーバーを展開する最後のステップは、パブリックインターネットからアクセスできるようにすることです。このステップでは、ルーターでポート転送を構成する必要があり、少し調べる必要があるかもしれません。ポート転送ガイドのカタログを使用してください。 https://portforward.com/router.htm ルーターの製造元を見つけて、解決策を読んでみてください。リストにルーターの製造元が見つからない場合、またはエンタープライズ/自家製ルーターを使用している場合は、適切な方法が見つかるまで Web 検索をいくつか実行する必要があるかもしれません。

ポート転送を設定するときは、NextcloudサーバーのプライベートIPアドレス( 「ホスト名 -I」 コマンド)をルーターのパブリック IP アドレスに入力します。インターネット サービス プロバイダーがパブリック IP アドレスを提供しない場合は、Cloudflare のトンネルなどのサービスを使用する必要があります。このサービスを使用すると、Web サーバーと Cloudflare のサーバーの間に安全なトンネルを作成し、Web サイト訪問者からのトラフィックを転送することができます。

ドメインを所有している場合、またはホスト名プロバイダーのホスト名を使用している場合は、DNS レコードがサーバーのパブリック IP アドレスを指すように設定されていることを確認してください。オプションとして、一部のサービスプロバイダーは、Web サイトの訪問者から IP アドレスを完全に難読化し、そのデータを自社のサーバーからお客様のサーバーに安全に転送する機能を提供しています。

Nextcloud のメンテナンスとアップグレード

Nextcloud サーバーに最新のアップデートとセキュリティ パッチが適用されていることを確認することは、クラウド ストレージを高速かつ安全に保つために重要です。終了する前に、サーバーを新品同様に動作させる方法をいくつか見ていきましょう。

デプロイメント後のコマンド

Nextcloudサーバーを展開した後、プロフィール画像メニューの「管理設定」をクリックすると、「概要」ページにいくつかの警告が表示されることに気付いたかもしれません。これらの警告には、警告の対象となる問題をすぐに解決するために実行できるコマンドも含まれている場合があります。通常、コマンドは次のように実行する必要があります。 「wwwデータ」 ユーザーから実行し、 「/var/www/html/nextcloud」 ディレクトリ。タイプ 「cd /var/www/html/nextcloud」 Enterキーを押して現在の作業ディレクトリを適切なフォルダに変更し、 「sudo -u www-data」 各コマンドの前に。

問題になる前にこれらの警告を修正するために、次のコマンドをいくつか実行できます。

sudo -u www-data php occ db:不足している列を追加
sudo -u www-data php occ db:不足しているインデックスを追加します
sudo -u www-data php occ db:不足している主キーを追加します

これらのコマンドは、データベースが正しく設定され、重要な情報が欠落していないことを確認します。データベースが良ければ、人生も楽しくなります! そうですよね?

Ubuntu サーバーを最新の状態に保つ

サーバーの安全性と速度を維持するには、サーバーのオペレーティング システムとソフトウェア パッケージを定期的に更新することが重要です。1 週間か 2 週間ごとにサーバーの使用率が低い時間帯を見つけて、次のコマンドを実行します。

sudo apt update && sudo apt upgrade -y
sudoリブート

これらのコマンドは、サーバーのオペレーティング システムとソフトウェア パッケージをアップグレードし、サーバーを再起動して、再起動時に変更を適用します。

Nextcloud のアップグレード

Nextcloudはパッケージマネージャを使用してインストールされていないため、 「適切」 Nextcloud を次のバージョンに自動的にプッシュすることはできません。Nextcloud サーバーのアップグレードを開始するには、Web ページの右上隅にある管理者ユーザーのプロフィール写真をクリックし、ドロップダウン メニューから [管理設定] を選択する必要があります。[概要] ページで、アップグレードが利用可能であることがわかります (この場合はバージョン 30.0.1)。[概要] ページに更新オプションが表示されない場合は、心配しないでください。すでに最新バージョンがインストールされています。新しいバージョンが利用可能になったときに確認するには、時々ここを確認してください。

アップデートが利用可能であることを確認し、適切なアップグレード ウィンドウに到達したら、サーバーのコンソールに戻り、次のコマンドを入力します。

sudo chown -R www-data:www-data / var / www

このコマンドは再帰的に 「wwwデータ」 所有者としてのユーザー 「www」 ディレクトリとすべてのサブディレクトリおよびファイルにアクセスして、アップグレード プロセスが必要なファイルにアクセスし、変更できるようにします。

コマンドが完了したら、「管理設定」メニューの「概要」ページに戻り、「アップデーターを開く」というボタンをクリックします。これで「アップデーター」メニューが表示されます。

ここで、「アップデートを開始」ボタンをクリックして、Nextcloud のアップデート検証とダウンロード プロセスを開始できます。すべてが正しく機能している場合は、「Web ベースのアップデーターで続行」の前に各ステップの横に緑色のチェック マークが表示されます。

注意: 更新プロセスが「ダウンロード」ステップで失敗した場合は、成功するまでダウンロードを再試行してください。何度か試行する必要がある場合があります。

「Updater」メニューに緑色のチェックマークがすべて表示されたら、「メンテナンス モードを無効にして、Web ベースの Updater で続行する」というボタンをクリックします。その後に表示される画面で、「更新を開始」をクリックして更新プロセスを終了し、適用を開始します。

あるいは、より大規模なサーバーや低速のサーバー向けのページで提案されているように、 「ネクストクラウド」 ディレクトリに移動し、次のコマンドを使用して手動でアップグレードを実行します。

cd /var/www/html/nextcloud
sudo -u www-data php occ アップグレード

アップグレードが完了すると、Nextcloud サーバーの Web サイトの「ダッシュボード」ページにリダイレクトされます。これで、サーバーは Nextcloud の最新かつ最高のバージョンを実行するようになりました。

おめでとう! できたね!

これで、完全に機能し、強化され、高性能な Nextcloud サーバーの誇りある所有者およびオペレーターになりました。 必要に応じて、家族や友人を招待して、サーバーをクラウド ストレージとして使用してもらうこともできます。 Nextcloud は高度にモジュール化されたプラットフォームであるため、新しいアプリを試したり、ニーズに合わせて構成を変更したりすることをためらわないでください。 できるだけ早くサーバーの定期的なバックアップを設定し、すべてが正常に動作していることを確認するために監視してください。

著者の Nextcloud セットアップのツアー

ここまで読んで、まだ続きが読みたいと思いませんか? 私たちも感心しました! インスピレーションが欲しい方のために、著者の Nextcloud セットアップの簡単なツアーと写真をいくつか紹介します。

  • ハードウェア:
    • 仮想化サーバー:
      • OS: Proxmox仮想化環境
      • シャーシ: Supermicro SC216 (オプションのリア冗長ブートドライブケージ付き)
      • CPU: インテル Xeon E5-2683
      • RAM: 4x 32 GB DDR4 2400 MHz ECC RDIMM
      • マザーボード: Gigabyte MU70-SU0 (LGA 2011-3)
      • HBA: ブロードコム SAS 9305-24i
      • NIC: Intel X520-DA2 2ポート 10 GbE SFP+ アダプター
      • GPU: NVIDIA Quadro K1200
      • ブートドライブ: Samsung 2 EVO 850 GB SATA SSD x 120
      • データドライブ: Samsung 24 EVO 860 GB SATA SSD x 250
    • NAS:
      • OS: TrueNASスケール
      • シャーシ: HPE ProLiant MicroServer Gen10 Plus
      • CPU: インテル Xeon E-2224
      • RAM: 2x 16 GB DDR4 2666 MHz ECC UDIMM
      • HBA: HPE Smart Array E208i-p SR Gen10 コントローラー内蔵
      • NIC: HPE Ethernet 560SFP+ 2ポート 10GbE SFP+ アダプター
      • ブートドライブ: Micron M600 256 GB SATA SSD (USB 接続)
      • キャッシュドライブ: Samsung 2 EVO 860 GB SATA SSD x 250 (USB 接続)
      • データドライブ: WD Red Plus 4 TB 4 RPM HDD x 5400
      • バックアップドライブ: WD Red Pro 14 TB 7200 RPM HDD (USB 接続)
    • モデム:
      • ネットギアCM1200
      • DOCSIS 3.1
      • 4x 1 GbE RJ45 WAN ポート (2 ポート リンク アグリゲーション対応)
    • ルータ:
      • OS: pfSense
      • シャーシ: Dell OptiPlex 7040 SFF
      • CPU:Intel Core i5 6500
      • RAM:8 GB DDR4
      • NIC: Intel E1G44ET 4ポート 1GbE RJ45 アダプタ
      • ブートドライブ: Samsung 2 EVO 860 GB SATA SSD x 250
    • コアスイッチ:
      • デル ネットワーキング N4032F
      • 24x 10 GbE SFP+ ポート
      • 2x 40 GbE QSFP+ ポート
      • 1 GbE 管理ポート
    • アクセススイッチ:
      • Dell ネットワーキング X1052
      • 48x 1 GbE RJ45 ポート
      • 4x 10 GbE SFP+ ポート
    • アクセスポイント:
      • OS:オープンワート
      • Linksys EA8300Max-Stream
      • AC2200
      • MU-MIMO
      • Wi-Fi 5(802.11ac)
      • 1x 1 GbE RJ45 LAN ポート
      • 4x 1 GbE RJ45 LAN ポート
    • UPS:
      • サイバーパワー CP1500AVRLCD3
      • 1500VA
      • 900W
  • 仮想マシン:
    • Proxmox 仮想化環境:
      • 2x Windows Server 2022 データセンター ドメイン コントローラー
      • Ubuntu Server 24.04.1 Nextcloud ウェブサーバー
      • Windows Server 2022 ゲームサーバー
    • TrueNAS スケール:
      • Proxmox Backup Server のバックアップ ターゲット

Andrew は、Nextcloud サーバーを使用して、大切な人のためにデータ ストレージ サービスをホストしています。冗長ドメイン コントローラーを備えた Active Directory ドメイン、すべてのユーザー データを保持する NAS、仮想化サーバーを組み合わせて使用​​することで、Andrew はセットアップを最適化し、自宅やインターネット接続があればどこでも高性能なストレージ サービスを提供できるようにしました。

彼のセットアップのバックボーンは Dell Networking N4032F で、Proxmox VE サーバーと TrueNAS SCALE ストレージ アレイ間の 10 ギガビット/秒の接続を提供します。データ、管理、およびストレージ トラフィックは 1 つの VLAN に分離されており、侵入があった場合にセキュリティが強化されます。彼のアクセス スイッチは、ゲーム用 PC、アクセス ポイント、およびその他のさまざまなデバイスに標準の 3 ギガビット/秒の接続を提供します。すべてのサーバーと仮想マシンは、Ubuntu Server と Uptime Kuma インスタンスを実行する Raspberry Pi Model XNUMXB+ によって監視されています。サーバー/VM がダウンすると、Andrew に電子メールで通知され、停電の場合は、UPS が低充電レベルを報告するとすぐにサーバーが適切にシャットダウンされます。

Andrew は、Supermicro 24 ベイ 2U シャーシと、eBay やその他の「疑わしい」ソースから入手した部品を使用して、仮想化サーバーをカスタム構築しました。ZFS RAIDZ2 構成では、この単なるコンシューマー レベルのドライブの 24 個の SSD アレイは、読み取り操作で約 8.2 GB/秒、仮想マシンへの書き込み操作で約 2.7 GB/秒のスループットを提供できます。これは、Windows Server 2022 VM で測定されたものです。

データ ストレージ ショーの真の主役は、アンドリューの HPE ProLiant MicroServer Gen10 Plus です。このサーバーには WD Red Plus 4 TB ハード ドライブが 3.2 台搭載されており、USB 2 Gen10 (1 Gbps) と Gen5 (14 Gbps) を介して、TrueNAS の起動用の Micron SSD、バックアップ ストレージ用の WD Red Pro 860 TB ドライブ、キャッシュ用の Samsung XNUMX EVO SSD XNUMX 台が無計画に接続されています。誤解のないよう言っておきますが、アンドリューはこれを推奨しているわけではなく、所有するハードウェアで可能な範囲で対応することを望んでいます。いかなる状況でも、XNUMX% の信頼性が保証されるわけではありません。

その他の注目すべきデバイスには、再利用された Dell OptiPlex 7040 SFF PC があります。この PC は、pfSense を実行してホームラボのさまざまなサブネットにルーティング サービスを提供します。また、Netgear CM1200 モデムは、何らかの理由でリンク アグリゲーションをサポートしていることに驚きました。1 GBps または 10 GBps のすべてのサーバー データ接続がフォールト リダンダントであることはお伝えしましたか? これにより、Andrew のストレージ システムは、特定の条件下で複数の接続が同時に発生しても、理論上は双方向で 20 Gbps の速度でデータを共有できます。これに近づくには、適切なドライブがあればよいのですが!

まとめ

この長々とした詳細なNextcloudセットアップガイドが、皆さんにとって有益なものであったことを願っています。難しいやり方で物事を進めると、メリットが生まれることがよくあります。クラウドストレージの仕組みについてもっと知ることは、常に良いことです。まだ購読していない場合は、 StorageReviewニュースレター サーバー、ストレージ システム、ホームラボに関するその他の記事をご覧になるには、YouTube、TikTok、X (旧 Twitter)、または Instagram をご覧ください。

参考文献/出典:

StorageReview と連携する

ニュースレター | YouTube |ポッドキャスト iTunes/Spotifyは | Instagram | Twitter | TikTok | RSSフィード