無料のクラウド ストレージが不足するのは誰も望まないことです。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ギガバイトのRAM、500GBのストレージを備えています。システムの準備ができたら、次のリンクからUbuntu Serverをダウンロードしてください:https://ubuntu.com/download/server。
Ubuntu Server を初めてインストールする場合は、始める前にこちらのガイドをご覧ください: https://ubuntu.com/tutorials/install-ubuntu-server。推奨ソフトウェアのページで Nextcloud をプリインストールするオプションを選択しないように注意してください。Nextcloud は弊社でインストールします。
サーバーをネットワークに接続し、ホスト名を設定し、初期設定時に作成したユーザー名とパスワードでログインしたら、コンソールで「sudo apt update && sudo apt upgrade -y」と入力してEnterキーを押し、Ubuntu Serverの最新ソフトウェアアップデートを取得します。アップデートが完了したら、 「sudo reboot」を使用してサーバーを再起動します。
注意: 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 enable mariadb」と入力してEnterキーを押してください。これで、Nextcloudのインストール用にデータベースを準備する準備が整いました。

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

「sudo mysql -u root」と入力し、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ファイルがダウンロードされています。次に、「unzip latest.zip」と入力してEnterキーを押すと、unzipユーティリティが起動します。

フォルダを転送する前に、組み込みの「www-data」ユーザーが新しいディレクトリの所有者になっていることを確認する必要があります。「www-data」ユーザーは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アドレス(パブリックIPとプライベートIP)のみを使用できるという注意点があります。
注: サーバーの FQDN を使用して Nextcloud インスタンスにローカルにアクセスするには、ホーム ネットワーク上で適切に構成された DNS サーバーが実行されている必要があります。そうでない場合は、ホーム ネットワークからアクセスするときにサーバーのローカル IP アドレスを使用する必要があります。
仮想ホストファイルの書き込みが完了し、サンプルFQDNをサーバーのFQDN(正規のものでもそうでないものでも構いません)に置き換えたら、「sudo a2ensite nextcloud.conf」コマンドと「sudo systemctl restart apache2」コマンドを使用してWebサーバーを再起動し、新しいサイトでNextcloudサイトを有効にできます。同じネットワーク上の別のコンピューターでWebブラウザーを使用し、サーバーのFQDNまたはローカルIPアドレスからNextcloudインスタンスにアクセスしてください。
Nextcloudの初期設定
前の手順を正しく実行した場合は、サイトの管理者ユーザーを作成し、Nextcloud サーバーに関する詳細を入力するように求めるページが表示されます。管理者ユーザーに、Administrator や Superadmin などの希望する名前と強力なパスワードを入力します。

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


Cronジョブの作成
cronジョブとは、ユーザーの操作なしに定期的に実行されるコマンドのことです。Nextcloudサーバーでは、最適なパフォーマンスと機能を実現するために、5分ごとにサーバーの「cron.php」スクリプトを呼び出すcronジョブが必要です。
この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 restart apache2」コマンドを実行してください。完了したら、Ctrl + 「O」と Ctrl + 「X」を使用して、nano を保存して終了することを忘れないでください。

ドメイン所有者向けの HTTPS 設定 (Certbot 経由)
仮想ホスト ファイルが標準の HTTP 構成に戻ったので、証明機関からの信頼できる証明書を使用する準備を開始できます。ドメインを所有している場合は、次の手順に従って証明書を取得して実装してください。そうでない場合は、次のセクションに進んでください。このセクションでは、ホスト名プロバイダーから取得した証明書の使用について詳しく説明します。独自のドメインで使用する証明書を取得するには、Web サーバーで使用するための無料の証明書を提供する非営利団体 Let's Encrypt の Certbot を使用します。
Certbotをダウンロードするには、まず「sudo snap install core && sudo snap refresh core」を使用してSnapをインストールおよび更新します。次に、「sudo snap install –classic certbot」(「classic」の前にハイフンが2つ連続)と入力してパッケージをインストールします。


Certbot の処理が完了したら、 「sudo nano /etc/apache2/sites-available/nextcloud.conf」と入力して Enter キーを押し、仮想ホストファイルを再度開きます。HTTP URL を HTTPS に書き換えるために、</VirtualHost> ヘッダーの直前に次の行を追加し、「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」 (NAIST) と 「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 enable clamav-freshclam」と「systemctl enable 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
- 認証: はい(チェックボックス)
- 資格情報: johndoe@storagereview.com アプリパスワードはこちら
- ここで、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」を押して新しい内容を保存し、Ctrl キーを押しながら「X」を押して終了します。変更を適用するには、コンソールに「sudo systemctl restart apache2」と入力して Enter キーを押します。
メンテナンスウィンドウの設定
Nextcloud サイトの PHP 構成ファイルに加えることができるもう 1 つの小さな改善は、サーバーが、より集中的でユーザーに影響を与える可能性のあるタスクを実行するためのメンテナンス ウィンドウを設定することです。ウィンドウは UTC 時間を使用して設定されるため、希望するメンテナンス ウィンドウの開始時刻を同等の UTC 時間 (24 から 3 までの整数で表されます) に変換する必要があります。メンテナンス ウィンドウは 00 時間続くため、UTC の午前 7 時に開始するメンテナンス ウィンドウは、UTC の午前 00 時に終了します。
PHP設定ファイルを再度編集するには、 「sudo nano /var/www/html/nextcloud/config/config.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」を実行し、「php.ini」ファイルの場合と同様に、設定ファイルの末尾に「apc.enable_cli=1」を追加します。Ctrlキーを押しながら「O」を押し、もう一度Ctrlキーを押しながら「X」を押して設定ファイルを保存し、終了します。

コンソールに「sudo nano /var/www/html/nextcloud/config/config.php」と入力し、Enterキーを押します。NextcloudのPHP設定ファイルに、NextcloudがローカルメモリのキャッシュにAPCuを使用するようにするための行を1行追加します。
'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の検索機能を有効にします。検索バーに「unixsocket」と入力してEnterキーを押すと、nanoはファイルの「Unix socket」設定セクションに移動します。 「Unix socket」セクションで、「unixsocket /run/redis/redis-server.sock」と「unixsocketperm 700」の前の「#」文字と空白を削除します。「700」を「770」に変更し、 「port 6379」という行が見つかるまでスクロールします。この値を「0」に変更することで、RedisサーバーがTCPポートで接続を待機しないように指示します。Ctrl + 「O」とCtrl + 「X」を使用してファイルを保存して終了する前に、以下の画像を参照して設定ファイルを確認してください。
Redis システム構成ファイルにこれらの変更を加えたことで、Nextcloud PHP 構成ファイルで、分散キャッシュとトランザクションファイルロックに Redis を使用することを指定できるようになりました。「sudo nano /var/www/html/nextcloud/config/config.php」を使用して、nano でこのファイルを開きます。

'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にあるポートフォワーディングガイドのカタログを使用して、お使いのルーターのメーカーを探し、解決策を読んでみてください。リストにルーターのメーカーが見つからない場合、またはエンタープライズ向け/自作ルーターを使用している場合は、適切な方法が見つかるまでウェブ検索を行う必要があるかもしれません。
ポートフォワーディングを設定する際は、NextcloudサーバーのプライベートIPアドレス( 「hostname -I」コマンドで確認できます)からルーターのパブリックIPアドレスへ、ポート80と443を転送してください。インターネットサービスプロバイダからパブリックIPアドレスが提供されない場合は、CloudflareのTunnelsなどのサービスを利用する必要があります。このサービスを利用すると、WebサーバーとCloudflareのサーバー間に安全なトンネルが作成され、Webサイト訪問者からのトラフィックがCloudflareからWebサーバーへ転送されます。
ドメインを所有している場合、またはホスト名プロバイダーのホスト名を使用している場合は、DNS レコードがサーバーのパブリック IP アドレスを指すように設定されていることを確認してください。オプションとして、一部のサービスプロバイダーは、Web サイトの訪問者から IP アドレスを完全に難読化し、そのデータを自社のサーバーからお客様のサーバーに安全に転送する機能を提供しています。
Nextcloud のメンテナンスとアップグレード
Nextcloud サーバーに最新のアップデートとセキュリティ パッチが適用されていることを確認することは、クラウド ストレージを高速かつ安全に保つために重要です。終了する前に、サーバーを新品同様に動作させる方法をいくつか見ていきましょう。
デプロイメント後のコマンド
Nextcloudサーバーをデプロイした後、プロフィール画像メニューの「管理設定」をクリックすると表示される「概要」ページに警告が表示されることがあります。これらの警告には、警告に関連する問題を即座に解決するためのコマンドが含まれている場合もあります。通常、これらのコマンドは「www-data」ユーザーとして「/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はパッケージマネージャーを使用してインストールされていないため、 「apt」を使用してサーバーのソフトウェアパッケージを更新しても、Nextcloudは自動的に次のバージョンに更新されません。Nextcloudサーバーのアップグレードを開始するには、Webページの右上隅にある管理者ユーザーのプロフィール画像をクリックし、ドロップダウンメニューから「管理設定」を選択する必要があります。「概要」ページでは、アップグレードが利用可能であることが確認できます。この例では、バージョン30.0.1です。「概要」ページに更新オプションが表示されない場合は、既に最新バージョンを使用しているため、心配する必要はありません。新しいバージョンが利用可能になったら、定期的にこのページを確認してください。
アップデートが利用可能であることを確認し、適切なアップグレード ウィンドウに到達したら、サーバーのコンソールに戻り、次のコマンドを入力します。
sudo chown -R www-data:www-data / var / www
このコマンドは、 「www-data」ユーザーを「www」ディレクトリとそのすべてのサブディレクトリおよびファイルの所有者として再帰的に設定し、アップグレードプロセスが必要なファイルにアクセスして変更できるようにします。
コマンドが完了したら、「管理設定」メニューの「概要」ページに戻り、「アップデーターを開く」というボタンをクリックします。これで「アップデーター」メニューが表示されます。
ここで、「アップデートを開始」ボタンをクリックして、Nextcloud のアップデート検証とダウンロード プロセスを開始できます。すべてが正しく機能している場合は、「Web ベースのアップデーターで続行」の前に各ステップの横に緑色のチェック マークが表示されます。
注意: 更新プロセスが「ダウンロード」ステップで失敗した場合は、成功するまでダウンロードを再試行してください。何度か試行する必要がある場合があります。
「Updater」メニューに緑色のチェックマークがすべて表示されたら、「メンテナンス モードを無効にして、Web ベースの Updater で続行する」というボタンをクリックします。その後に表示される画面で、「更新を開始」をクリックして更新プロセスを終了し、適用を開始します。
あるいは、より大規模なサーバーや低速なサーバー向けのページに記載されているように、「nextcloud」ディレクトリに移動し、以下のコマンドを使用して手動でアップグレードを実行することもできます。
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