多くのユーザーがGoogle DriveやDropboxなどの主流のオプションから離れ、自分の条件でデータを管理できる自分でホストするソリューションを選択しており、その1つの有力なオプションはNextcloudです。
この記事では、UbuntuおよびDebianシステムにNextcloud Dockerをインストールする方法についての完全なステップバイステップチュートリアルを説明します。システムの更新と依存関係のインストールから、ウェブサーバーとPHPの構成、データベースのセットアップ、Nextcloud Docker Composeでのインストールの終了まですべてをカバーしています。
Nextcloudを自分でホストする理由
Nextcloudを自分でホストするとは、Google DriveやDropboxなどの主流のサービスに依存する代わりに、独自のクラウドストレージソリューションを制御することを意味します。Nextcloudを使用すると、自分の条件でファイルを保存・共有する自由があり、データを完全に所有し、プライバシー設定を完全にコントロールできます。
多くのユーザーにとって、プラグインと統合を通じてプラットフォームを調整および強化する能力は重要な魅力です。Nextcloud dockerおよびNextcloud docker composeを使用すると、Nextcloud UbuntuとNextcloud Debianの両方が利用可能なため、人気のあるシステムに信頼性の高い安全なファイル共有システムを迅速にデプロイできます。
このセットアップは、サードパーティサービスの制限に縛られずにNextcloudをインストールしたい場合の実用的なソリューションです。Nextcloud dockerインストールのプロセスはシンプルに設計されており、経験豊富なシステム管理者でなくても自分でホストに入ることができます。
Nextcloud Dockerのインストールを採用すると、商用クラウドソリューションと比較して費用を節約することもできます。これは、主に独自のハードウェアまたはサーバーインスタンスに対して支払うためです。さらに、PHP設定の調整やMySQLデータベースの統合など、利用可能なカスタマイズオプションは、環境を特定のニーズに合わせることができることを意味します。
Nextcloud dockerのインストール方法について疑問がある場合は、Nextcloud docker composeサンプルファイルを提供する多くのコミュニティサポートとリソースがあり、プロセスは教育的でやりがいのあるものになります。
前提条件
インストールプロセスに飛び込む前に、環境を良好な状態に保つことをお勧めします。このセクションでは、Nextcloud dockerインストールをスムーズにするための、システム要件とサーバーセットアップから、ソフトウェアの依存関係までの基本をカバーしています。
| コンポーネント | 要件/オプション | 注釈 |
| オペレーティングシステム | Ubuntu (22.04 LTS強く推奨、24.04 LTS)、Red Hat Enterprise Linux 9/8、Debian 12 (Bookworm)、SUSE Linux Enterprise Server 15、openSUSE Leap 15.5、CentOS Stream、Alpine Linux | Nextcloud Ubuntuは人気があります |
| CPU とOS アーキテクチャ | 64ビット | CPU、OS、およびPHPが64ビットであることを確認します |
| PHP | PHP 8.3(またはその他のバージョン) | 64ビット版を使用して互換性の問題を回避してください |
| メモリ | 最小: プロセスあたり128MB RAM、推奨: プロセスあたり512MB、アップデーター: 256MB | 使用状況に応じて調整してください |
| アクセス | ルートまたは sudo アクセス権 | システムレベルの調整に必須です |
| コンテナツール | Docker、Docker Compose | インストールと管理が簡単になります |
| ウェブサーバー | Apache 2.4(mod_phpまたはphp-fpmを推奨)またはnginx with php-fpm | 個人または組織のニーズに応じて選択してください |
| データベース | MySQL(8.0/8.4)、MariaDB(10.6/10.11推奨、または11.4)、またはPostgreSQL | InnoDBをサポートし、READ COMMITTED分離レベルに対応している必要があります |
ステップ1: システムを更新して準備する
Nextcloud Dockerインスタンスをセットアップする前に、システムを更新し、必要なツールをすべてインストールしましょう。楽しいプロジェクトに取り掛かる前に作業スペースを整理するようなものです。Nextcloud Ubuntuサーバーで以下のコマンドを実行してください:
パッケージリストを更新してパッケージをアップグレードする:
パッケージリポジトリを更新し、インストール済みパッケージをアップグレードします:
| sudo apt update sudo apt upgrade -y |
Docker、Docker Compose、および便利なユーティリティをインストールする:
以下のコマンドを実行して、Docker、Docker Compose、およびcurl、wget、build-essentialなどの便利なユーティリティを取得します:
| sudo apt install docker.io docker-compose curl wget build-essential -y |
(オプション)ユーザーをDockerグループに追加する:
このステップにより、毎回sudoを前に付けずにDockerコマンドを実行できます:
| sudo usermod -aG docker $USER |
このコマンドを実行したら、ログアウトしてからログインし直して変更を反映させてください。
インストールを確認する:
Docker と Docker Compose がきちんとインストールされているか確認してください:
| docker –version docker-compose --version |
Docker のログを監視することも強くお勧めします。トラブルシューティングの際に役立ちます。以下の手順でログを確認・管理できます これらの手順.
システムが更新され、すべての依存関係が整ったので、信頼できるホスティングソリューションを選ぶことが重要です。Cloudzy は 超高速な VPS 最大 240 GB の NVMe SSD ストレージ(当社のプランで最大 2 TB)を備えたサービスを提供しており GPU VPS稼働率が 99.95% なので、Nextcloud インスタンスのホスティングに最適です。
次に、ウェブサーバーをセットアップし、PHP の設定を調整して、Nextcloud Docker インスタンスがスムーズに動作するようにします。
ステップ 2: Apache/Nginx と PHP の設定
システムの準備ができたので、ウェブサーバーと PHP を設定してセットアップします。このセクションでは、Apache と Nginx のセットアップ、そして Docker 内で Nextcloud をスムーズに実行するために必要な PHP の調整について説明します。
Apache の設定
Apache を使用している場合は、以下の手順に従ってください:
設定ファイルを作成する:
- Nextcloud 用の新しいファイルを開く:
| sudo nano /etc/apache2/sites-available/Nextcloud.conf |
- このファイルに以下のような内容を追加します:
| Alias /Nextcloud "/var/www/Nextcloud/"
<Directory /var/www/Nextcloud/> <IfModule mod_dav.c> |
サイトを有効化する:
- 新しい設定を有効にします:
| sudo a2ensite Nextcloud.conf |
必要な Apache モジュールを有効化する:
- 以下のコマンドを実行して必要なモジュールを有効にします:
| sudo a2enmod rewrite sudo a2enmod headers sudo a2enmod env sudo a2enmod dir sudo a2enmod mime |
PHP-FPM を Apache で使用する予定がある場合(mod_fcgi を使用)は、次も有効にしてください:
| sudo a2enmod setenvif |
SSL を有効にする(オプション):
- セキュアな接続のために SSL を以下で有効にします:
| sudo a2enmod ssl sudo a2ensite default-ssl sudo service apache2 reload |
Nginx の設定
- Nginx ユーザーの場合、サーバーブロックを作成します:
サーバーブロックファイルを作成する:
- 新しいファイルを開きます:
| sudo nano /etc/nginx/sites-available/Nextcloud |
- 以下のようなサンプル設定を貼り付けます:
| server { listen 80; server_name your-server-ip or cloud.example.com;root /var/www/Nextcloud/; index index.php index.html /index.php$request_uri;location / { try_files $uri $uri/ /index.php?$args; }location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php/php8.3-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } |
設定を有効にする:
- サイトを有効にするためにシンボリックリンクを作成します:
| sudo ln -s /etc/nginx/sites-available/Nextcloud /etc/nginx/sites-enabled/ |
Nginx をテストして再読み込みする:
- 設定を確認して再読み込みします:
| sudo nginx -t sudo systemctl reload nginx |
PHP 設定を調整する
Nextcloud は特定の設定で PHP が必要です。適切な PHP 設定ファイルを編集して調整してください:
Apache と PHP の場合:
| sudo nano /etc/php/8.3/apache2/php.ini |
Nginx と PHP-FPM の場合:
| sudo nano /etc/php/8.3/fpm/php.ini |
ファイル内で以下の設定を調整します:
- memory_limit(例:512M)
- upload_max_filesize(例:100M)
- post_max_size(例:100M)
- max_execution_time(例:360)
変更後、対象のサービスを再起動します:
- Apache:
| sudo service apache2 restart |
- PHP-FPM:
| sudo systemctl restart php8.3-fpm |
ウェブサーバーを設定し、PHP を調整したら、次のステップに進む準備ができました。データベースをセットアップして Nextcloud のデータを保存します。
ステップ 3: データベースのセットアップ
システムとウェブサーバーの設定が完了したら、次は Nextcloud インストール用のデータベースをセットアップします。データベースと専用ユーザーを作成し、適切な権限を付与する必要があります。手順は以下のとおりです:
1. MariaDB サーバーをインストール
まず MariaDB サーバーパッケージをインストールします:
| sudo apt install mariadb-server -y |
2. MariaDB インストールを保護する
セキュリティスクリプトを実行して、安全でないデフォルト設定を削除します:
| sudo mysql_secure_installation |
ルートパスワードの設定とセキュリティ関連の選択を求められます。すべてのプロンプトに 'Y' (はい) で答えることをお勧めします。
3. MariaDB シェルにログイン
ルートユーザーとして MariaDB シェルにアクセスします:
| sudo mysql -u root -p |
セキュアインストール中に設定したルートパスワードを入力します。
4. Nextcloud 用の新しいデータベースを作成
MariaDB シェル内で以下のコマンドを実行して、Nextcloud という名前のデータベースを作成します:
| CREATE DATABASE Nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; |
5. 専用データベースユーザーを作成
新しいユーザー Nextclouduser を強力なパスワードで作成します。your_password_here を任意のセキュアなパスワードに置き換えてください:
| CREATE USER 'Nextclouduser'@'localhost' IDENTIFIED BY 'your_password_here'; |
6. ユーザーに必要な権限を付与
Nextcloud データベースのすべての権限を Nextclouduser に付与します:
| GRANT ALL PRIVILEGES ON Nextcloud.* TO 'Nextclouduser'@'localhost'; |
7. 変更を適用する
特権をフラッシュして、すべての変更が反映されていることを確認します。
| 特権をフラッシュ; |
8. MariaDB シェルを終了する
次のコマンドを入力して MariaDB シェルを終了します。
| EXIT; |
データベースのセットアップと設定が完了しました。次は Nextcloud のインストールに進みます。Nextcloud ファイルをダウンロードして、作成したデータベースに接続するよう設定します。
ステップ 4: Nextcloud のダウンロードとインストール
このステップでは、最新の Nextcloud リリースをシステムにインストールして設定します。2 つの方法があります。Docker を使用したコンテナ化されたセットアップ(推奨)と、従来の手動インストール方法です。
方法 1: 公式 Docker イメージを使用する
コンテナ化されたアプローチを選ぶ場合は、以下のコマンドを実行してください。
Nextcloud Docker イメージをプル:
Docker Hub から最新の Nextcloud Docker イメージをダウンロード:
| docker pull Nextcloud |
Docker Compose ファイルを作成する
管理を簡単にするために、docker-compose.yml というファイルを作成し、以下の内容を追加してください。
| バージョン: '3'
services: volumes: |
コンテナを起動する
次のコマンドを実行して、Nextcloud とデータベースコンテナをバックグラウンドで起動します。
| docker-compose up -d |
方法 2: Nextcloud アーカイブからの手動インストール
ファイルを直接管理する場合は、以下の手順で行います。
最新リリースをダウンロードする
最新の Nextcloud tar アーカイブをフェッチ:
| wget https://download.Nextcloud.com/server/releases/latest.tar.bz2 |
アーカイブを展開する
ダウンロードしたファイルを展開する:
| tar -xjf latest.tar.bz2 |
Nextcloud フォルダを移動する:
展開したフォルダをウェブディレクトリに移動します:
| sudo mv Nextcloud /var/www/Nextcloud |
適切なパーミッションを設定する:
ウェブサーバーがファイルにアクセスできるよう、所有権を調整します:
| sudo chown -R www-data:www-data /var/www/Nextcloud |
あなたのやり方に合った方法を選んでください。Docker アプローチは Nextcloud docker compose を使った簡単なセットアップを提供します。一方、手動方法ならファイルを直接制御できます。さらに Cloudzy の Docker VPS プランを使えば、Docker 経由で Nextcloud をデプロイするための効率的なプラットフォームが実現でき、セットアップがより簡単になります。
次は、仮想ホストの設定、SSL の有効化など、Nextcloud 自体の設定に進みます。これでセルフホスト型クラウドのセットアップが完成します。
ステップ 5: Nextcloud の設定
Nextcloud をダウンロードしてインストールしたら、Apache 仮想ホストをセットアップし、SSL でサイトを保護します。これで専用ドメインを通じてセルフホスト型クラウドストレージにアクセスできるようになります。
Apache 仮想ホストファイルを作成する
Nextcloud の設定ファイルを作成します:
| sudo nano /etc/apache2/sites-available/Nextcloud.conf |
以下の設定を貼り付ける:
DocumentRoot と ServerName をあなたのセットアップに合わせて調整してください (例: cloud.example.com をあなたのドメインまたはサーバー IP に置き換える):
| <VirtualHost *:80> DocumentRoot /var/www/Nextcloud/ ServerName cloud.example.com<Directory /var/www/Nextcloud/> すべて承認が必要 AllowOverride All Options FollowSymLinks MultiViews<IfModule mod_dav.c> Dav off </IfModule> </Directory> </VirtualHost> |
新しい設定を有効化する
Apache に新しい設定を認識させます:
| sudo a2ensite Nextcloud.conf |
Apache を再読み込みしてください:
Apache をリロードして変更を適用します:
| sudo systemctl reload apache2 |
SSL でサイトを保護する
安全なアクセスのために、SSLを設定できます。一般的な方法は2つあります。自己署名証明書を使用するか、Let's Encryptで証明書を取得するかです。
オプション1: 自己署名証明書
SSLモジュールを有効にする:
| sudo a2enmod ssl |
デフォルトのSSLサイトを有効にする:
| sudo a2ensite default-ssl |
Apache を再読み込みしてください:
| sudo systemctl reload apache2 |
オプション2: Let's Encrypt証明書 (公開サーバーに推奨)
CertbotとApacheプラグインをインストール:
| sudo apt install certbot python3-certbot-apache -y |
- 証明書を取得してインストール:
cloud.example.comをあなたのドメインに置き換えてください:
| sudo certbot –apache -d cloud.example.com |
プロンプトに従ってプロセスを完了してください。
Apache仮想ホストが設定され、SSLが配置されたら、Nextcloudインスタンスは選択したドメインからセキュアな接続を提供する準備ができています。次に、Nextcloudデータを保存するデータベースのセットアップに進みます。これで、スムーズな自ホスト型クラウド体験のすべてが揃います。
ステップ6: セットアップの完了
Webサーバーとアーティファクトが設定されたら、インストールを完了する時間です。このステップは、プロジェクトを世界に公開する前に最後の仕上げを加えるようなものです。
ファイルのアクセス権を調整:
インストールウィザードを起動する前に、次のコマンドを実行して、WebサーバーがすべてのNextcloudファイルにアクセスできることを確認してください:
| sudo chown -R www-data:www-data /var/www/Nextcloud/ |
ブラウザでNextcloudにアクセス:
ブラウザを開き、Nextcloudインスタンスの対応するURLを入力してください。例:
| http://your-server-ip/Nextcloud |
Nextcloudインストールウィザードが読み込まれます。このウィザードは、最終セットアップをガイドするわかりやすいインターフェースです。
インストールウィザードを完了:
ウィザードで次の情報を入力するよう求められます:
- データベースの詳細情報 (ホスト、名前、ユーザー、パスワード)。Docker環境では、データベースホストはコンテナ名またはlocalhostに設定されることがよくあります。
- Nextcloudインスタンスの管理者ユーザー名とパスワード。
画面の指示に従い、完了したら「セットアップを終了」ボタンをクリックしてください。
ウィザードを完了すると、Nextcloud サーバーのセットアップが完了し、新しい Nextcloud ダッシュボードが表示されます。次は、cron ジョブ、キャッシング、セキュリティ設定などのインストール後の設定を行い、インスタンスを安定して実行し続けるようにします。
ステップ 7: インストール後の設定
Nextcloud ウェブインストールウィザードを完了した後、いくつかの最終調整でスケジュール済みタスク、パフォーマンス、セキュリティを最適化できます。このセクションでは、バックグラウンドジョブの設定、Redis によるキャッシング統合、Nextcloud インスタンスのセキュリティ強化について説明します。
スケジュール済みタスク用に Cron ジョブを有効にする
Nextcloud を安定して実行し続けるには、バックグラウンドタスクをスケジュール設定することをお勧めします。Nextcloud cron スクリプトを 5 分ごとに実行する cron ジョブを設定します。ウェブサーバーユーザー(通常は www-data)の crontab を開きます。
| sudo crontab -u www-data -e |
ファイルの最後に次の行を追加します。
| */5 * * * * php -f /var/www/Nextcloud/cron.php |
エディターを保存して閉じます。このジョブは、一時ファイルのクリーンアップ、通知の送信、その他のメンテナンスタスクを処理します。
キャッシング用に Redis をインストールおよび設定する
Redis を使用することで、データをキャッシュしてファイルロックのパフォーマンスを向上させ、Nextcloud インスタンスを高速化できます。まず、 Redis をインストール および Redis 用の PHP 拡張機能をインストールします。
| sudo apt install redis-server php-redis -y |
次に、Nextcloud 設定ファイル(通常は /var/www/Nextcloud/config/config.php にあります)を更新して、キャッシング設定を含めます。$CONFIG 配列内に次の行を追加します。
| 'memcache.local' => '\\OC\\Memcache\\APCu', 'memcache.locking' => '\\OC\\Memcache\\Redis', 'redis' => array( 'host' => 'localhost', 'port' => 6379, ), |
この設定により、Nextcloud はローカルキャッシング に APCu を使用し、ファイルロックに Redis を使用するようになり、パフォーマンスと信頼性の両方が向上します。
Nextcloud のセキュリティ設定を強化する
いくつかの追加対策でインストールのセキュリティを強化できます。
- ファイルのアクセス許可を正しく設定する
Nextcloud ディレクトリの所有者とアクセス許可を調整して、アクセスを制限します。
| sudo chown -R www-data:www-data /var/www/Nextcloud sudo find /var/www/Nextcloud/ -type d -exec chmod 750 {} \; sudo find /var/www/Nextcloud/ -type f -exec chmod 640 {} \; |
- メンテナンスモードコマンドを実行する
メンテナンスモードを一時的に有効にして、追加のセキュリティチェックまたは設定更新を実行します。
| sudo -u www-data php /var/www/Nextcloud/occ maintenance:mode --on # (ここで必要なメンテナンスタスクを実行してください) sudo -u www-data php /var/www/Nextcloud/occ maintenance:mode --off |
- Webサーバーの設定を確認する
ApacheまたはNginxの設定がHTTPSを強制し、必要に応じて無許可のアクセスを制限していることを確認してください。
これらの最後のステップにより、Nextcloudインスタンスはバックグラウンドタスクを効率的に処理し、キャッシュによるパフォーマンス向上を実現し、潜在的なセキュリティ脅威からより良く保護されます。
最後に
Nextcloudのdockerセットアップを白紙の状態から完全に機能する自己ホスト型クラウドストレージソリューションに発展させました。システムがアップデートされ、依存関係がインストールされ、WebサーバーとともにPHPが細かく調整されたことで、Nextcloud Ubuntu環境はあなたの個人的なファイル共有ハブとして機能する準備が整いました。
セットアップを継続的に最適化したり、高度な設定を試したり、新しいNextcloudアプリを探索する際は、ホスティングプロバイダーを考慮することが役立ちます。信頼できる 手頃な価格のVPS Cloudzyのようなプロバイダーを選ぶと、Nextcloudインスタンスは常に安全で応答性が高く、クラウドストレージのニーズに対する確かな基盤となります。
さらに安心するために、 Nextcloud セキュリティ強化 の公式セキュリティガイドラインと Nextcloud バックアップガイドのバックアップ推奨事項を確認することをお勧めします。これらのリソースはあなたのデータを安全に保ち、サーバーをスムーズに動作させるのに役立ちます。