無料のクラウド ストレージが不足するのは誰も望まないことです。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


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


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

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

タイプ 「sudo mysql -u ルート」 MySQL コマンドライン インターフェイスが表示されたら、次のコマンドを入力します (各行の末尾には必ず「;」を付けてください)。
'P@$$w0rd' によって識別されるユーザー 'nextcloud'@'localhost' を作成します。
注: 「nextcloud」と「P@$$w0rd」を任意のユーザー名とパスワードに置き換えます。
データベースが存在しない場合は作成します。 nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
nextcloud.* のすべての権限を 'nextcloud'@'localhost' に付与します。
注: ここでも、@ 記号の前の「nextcloud」を、以前使用したユーザー名に置き換えます。
フラットプリビーグス;
やめる;

PHP拡張機能を有効にしてPHPパフォーマンスを向上させる
インストールしたすべての PHP 拡張機能を覚えていますか? Nextcloud が適切に使用できるように、それらを有効にする必要があります。必要な PHP 拡張機能を有効にするには、次のコマンドを使用します。
sudo phpenmod apcu bcmath bz2 curl gd gmp imagick intl ldap mbstring memcached mysql redis smbclient zip xml


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

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


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

ドメインを所有していない場合は、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 サーバーに推奨されるアプリをいくつかインストールするオプションが表示されます。Nextcloud インスタンスにアプリを追加すると、サーバーの処理負荷、メモリ使用量、ディスク使用量が増加することに注意してください。推奨されるアプリをインストールするか、オプションでこの手順をスキップするかを選択します。


Cronジョブの作成
cronジョブは、ユーザーの介入なしに定期的に実行されるコマンドです。Nextcloudサーバーでは、サーバーの 「cron.php」 最適なパフォーマンスと機能性を実現するために、スクリプトを 5 分ごとに実行します。
このcronジョブを設定するには、次のコマンドを入力します。 「sudo crontab -u www-data -e」 サーバーのコンソールで。

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

おめでとうございます!これで、ローカルネットワーク上で動作する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


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ダブオフ


信頼できる証明書を使用した 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 つ連続)をクリックしてパッケージをインストールします。


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]
完了すると、仮想ホスト ファイルは次のようになります。

ホスト名プロバイダーからの証明書を使用した 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 をバックエンドとして使用してユーザー ファイルをスキャンし、サーバーを保護します。このアプリは、管理者アカウントのプロフィール写真をクリックして「アプリ」タブに移動し、「セキュリティ」カテゴリを選択してダウンロードできます。



- 設定ファイルを自動的に処理しますか? あり
- ソケットの種類: UNIX
- ローカル (UNIX) ソケット clamd は次のものをリッスンします: /var/run/clamav/clamd.ctl
- clamd ローカル (UNIX) ソケットのグループ所有者: ClamAVの
- clamd ローカル (UNIX) ソケットの作成モード: 666
- 残った UNIX ソケット ファイルを適切に処理しますか? あり
- メールスキャンを有効にしますか? いいえ
- アーカイブスキャンを有効にしますか? いいえ
- このプロンプトに対して「はい」を選択することもできますが、その場合は追加の構成が必要になります。詳細については、ClamAV のドキュメントを参照してください。 https://docs.clamav.net/manual/Installing/Packages.html#the-packages
- 許可されるディレクトリの最大深度: 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 にログインし、管理者ユーザーのプロフィール写真をクリックします。ドロップダウン メニューから [管理設定] オプションをクリックし、ページの読み込みが完了したら [セキュリティ] セクションを選択します。

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 構成ファイルを編集します。

'default_phone_region' => '米国'、
-
- このフィールドに使用される国固有の ISO 3166-1 コードについては、次の Wikipedia ページで確認できます。 https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
セキュリティ上の理由から、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 時間に変換された希望のメンテナンス ウィンドウの開始時刻に置き換えることを忘れないでください。

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

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

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





外部ストレージ統合
Nextcloud サーバーに追加されたもう 1 つの強力な機能は、外部ストレージ プールに接続して使用する機能です。ユーザー ファイルをサーバー自体に直接配置すると、サーバーのストレージ管理に関連した問題が発生する可能性があり、ユーザーの需要を満たすために容量を常に増やす必要があります。クォータの適用とユーザーが作成した不要なデータの削除に常に注意を払わないと、フラストレーションや予期しないダウンタイムが発生する可能性があります。スケーラブルなクラウド ストレージ システムと快適なユーザー エクスペリエンスを実現するには、Nextcloud セットアップの Web サーバーとストレージ コンポーネントを分離することが強く推奨され、重要です。
Nextcloud の「外部ストレージ サポート」アプリを使用すると、次のストレージ タイプからフォルダーをマウントできます。
- アマゾンS3
- FTP
- Nextcloud
- はい、その通りです。他の Nextcloud サーバーに接続して利用可能なストレージを使用できます。
- OpenStack オブジェクト ストレージ
- SFTP
- SMB / CIFS
- WebDAVを
ご覧のとおり、Nextcloud を外部ストレージ アレイ、クラウド、その他のシステムに接続するには、いくつかの選択肢があります。例として、以前接続した Active Directory ドメインからインポートされたユーザーに付与された権限を使用して、さまざまなフォルダーへのアクセスを制御する SMB 共有に Nextcloud インスタンスを接続します。
「外部ストレージ サポート」アプリを有効にするには、サイトにログインしたときに管理者ユーザーのプロフィール写真をクリックし、「アプリ」を選択します。もう一度「おすすめアプリ」に移動し、「外部ストレージ サポート」というラベルの付いたモジュールを見つけます。「有効にする」ボタンをクリックして、アプリケーションを利用できるようにします。


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

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


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

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

タイプ 「sudo nano /var/www/html/nextcloud/config/config.php」 コンソールで Enter キーを押します。Nextcloud PHP 構成ファイルに 1 行追加して、Nextcloud がローカル メモリ キャッシュに APCu を使用するようにします。
'memcache.local' => '\OC\Memcache\APCu',
この行を、前の構成ファイルの行のスペース規則に従って、終了括弧「);」の前に配置します。もう一度、コントロール (ctrl) キーを押しながら「O」を押し、次にコントロール (ctrl) キーと「X」を押して保存して終了します。


メモリキャッシュの設定 – 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」.

'memcache.distributed' => '\OC\Memcache\Redis'、 'memcache.locking' => '\OC\Memcache\Redis'、 'redis' => [ 'host' => '/run/redis/redis-server.sock'、 'port' => 0、 ]、
行を正しく入力した場合、PHP 構成ファイルのメモリ キャッシュ セクションは次のようになります。


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 のバックアップ ターゲット
- Proxmox 仮想化環境:
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 で測定されたものです。


結論
この長々とした詳細なNextcloudセットアップガイドが、皆さんにとって有益なものであったことを願っています。難しいやり方で物事を進めると、メリットが生まれることがよくあります。クラウドストレージの仕組みについてもっと知ることは、常に良いことです。まだ購読していない場合は、 StorageReviewニュースレター サーバー、ストレージ システム、ホームラボに関するその他の記事をご覧になるには、YouTube、TikTok、X (旧 Twitter)、または Instagram をご覧ください。
参考文献/出典:
- https://www.linode.com/docs/guides/how-to-install-nextcloud-on-ubuntu-22-04/
- https://docs.nextcloud.com/server/latest/admin_manual/installation/example_ubuntu.html
- https://docs.nextcloud.com/server/latest/admin_manual/contents.html
- さまざまなページ
- https://www.php.net/manual/en/ini.core.php
- https://nextcloud.com/
- https://ubuntu.com/download/server
- https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04
- https://snapcraft.io/install/core/ubuntu
- https://docs.clamav.net/manual/Usage
- さまざまなページ
- https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/user_auth_ldap.html
- https://docs.nextcloud.com/server/30/admin_manual/configuration_files/external_storage/smb.html
- https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html
- https://www.php.net/manual/en/intro.apcu.php
- https://www.php.net/manual/en/apcu.configuration.php
- https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/














結論

Amazon