Main Logo
hero-background.jpg

UbuntuサーバーへのNextcloudインストール手順

自社サーバーで運用可能なNextcloudのセットアップ方法を解説

Nginx、MariaDB、PHP-FPM環境でのNextcloud構築手順をステップバイステップで紹介


UbuntuサーバーにNextcloudをインストールする方法

プライベートクラウドの構築

Nextcloudはオープンソースのファイル共有・コラボレーションプラットフォームです。Google DriveやDropboxの代替として自社サーバーで運用可能で、高いセキュリティ要件を満たすファイル共有システムを構築できます。本記事ではUbuntuサーバー環境でのNextcloudインストール手順を詳細に解説します。

必要な作業内容

  1. 1.UbuntuサーバーへのNginx、MariaDB、PHP-FPM環境構築
  2. 2.Nextcloudの最新版インストールと基本設定

Nextcloudの動作要件

Nextcloudを正常に動作させるためには以下の4つの要素が必要です:

  • Nextcloud本体
  • PHPと必要なモジュール群
  • データベースサーバー(MariaDB/MySQL)
  • Webサーバー(Nginx/Apache)

PHPモジュールやNginx設定の詳細については公式ドキュメントを参照してください。

必要なPHPモジュール一覧

NextcloudをNginxとMariaDB環境で動作させるために必要な主要なPHP拡張モジュールは以下の通りです:

  • php-fpm (FastCGI Process Manager)
  • php-gd (画像処理)
  • php-mysql (MariaDB接続)
  • php-curl (HTTPリクエスト)
  • php-mbstring (マルチバイト文字列処理)
  • php-intl (国際化サポート)
  • php-gmp (数学演算)
  • php-xml (XML処理)
  • php-imagick (画像変換)
  • php-zip (圧縮/解凍)
  • php-opcache (パフォーマンス向上)

Nextcloudのインストール手順

ここからは実際にNextcloudを構築していきます。主な作業内容は以下の通りです:

  • nginxのユーザーの作成
  • 自己証明書作成
  • mariadbのインストール、データベース作成
  • phpインストールphp-fpm設定
  • nginxのインストール、設定変更

Nginxユーザーの作成

Nextcloudのファイル操作権限を適切に設定するため、専用の「nginx」ユーザーを作成します。

sudo adduser --system --no-create-home --group --disabled-login nginx

必要なパッケージのインストール

以下のコマンドで必要なパッケージを一括インストールします。

※注: bzip2はNextcloudのアーカイブ解凍に使用しますが、必須ではありません

apt install nginx -y
apt install bzip2
apt install php8.3-mysql
apt install php-fpm php-gd php-mysql php-curl php-mbstring php-intl php-gmp php-xml php-imagick php-zip
apt install mariadb-server mariadb-client

MariaDBの設定

Nextcloudを使用するには専用のデータベースとユーザーを作成する必要があります。MariaDBで以下の設定を行います。

※重要: 以下の例ではテスト用に「nextcloud」ユーザーと「password」パスワードを使用していますが、本番環境では必ず変更してください

変更を推奨

データベースユーザー名 (nextcloud),データベースパスワード (password)の変更を推奨

  1. nextcloudのユーザーを作成
  2. nextcloudのデータベースを作成
  3. nextcloudユーザーにnextcloudのアクセス権を付与
  4. 変更を反映
mysql
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
quit;

PHP-FPMの設定

/etc/php/8.3/fpm/pool.d/www.conf を編集し、Nginxユーザーが操作できるように権限を設定します。

/etc/php/8.3/fpm/pool.d/www.conf
listen.owner = nginx
listen.group = nginx
user = nginx
group = nginx

SSL自己証明書の生成

HTTPS接続を有効にするため自己証明書を生成します。詳細な手順は別記事を参照してください。

openssl genrsa -out server.key 2048
openssl req -new -key server.key > server.csr
openssl x509 -in server.csr -days 36500 -req -signkey server.key > server.crt

生成したファイルを次の場所に移動します。

mv server.key /etc/ssl/nginx/server.key;
mv server.crt /etc/ssl/nginx/server.crt;

Nginxの設定

Nextcloudの公式ドキュメントを参考にNginx設定を行い、環境に合わせてカスタマイズします。

Nginxの設定ファイルはnextcloudとファイル名にしています。
nextcloudファイルを作成し公式ドキュメントの設定をコピぺします。/etc/nginx/sites-enabled/nextcloud

Nginx設定ファイルの修正

Nextcloud用の設定ファイルに以下の変更を適用します:

nextcloudファイルはでは以下3つの設定を行います。

  • ホスト名の設定
  • php-fpm設定
  • 証明書インポート
元の設定例
/etc/nginx/sites-enabled/nextcloud
upstream php-handler {
    server 127.0.0.1:9000;
    #server unix:/run/php/php8.2-fpm.sock;
}

server_name cloud.example.com;

ssl_certificate     /etc/ssl/nginx/cloud.example.com.crt;
ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;
変更後の設定例
/etc/nginx/sites-enabled/nextcloud
upstream php-handler {
    server unix:/run/php/php8.3-fpm.sock;
}

server_name _;

ssl_certificate     /etc/ssl/nginx/server.crt;
ssl_certificate_key /etc/ssl/nginx/server.key;    

nginx.confの設定ではuserをnginx設定。

  • userをnginxに変更
Nginxユーザー設定

Nginxのメイン設定ファイルに以下の1行を追加します:

/etc/nginx/nginx.conf
user nginx;
デフォルト設定の削除

IPアドレス直接接続を有効にするため、Nginxのデフォルト設定を削除します:

/etc/nginx/sites-enabled/default
rm /etc/nginx/sites-enabled/default
Nginxの起動

設定完了後、Nginxを起動します:

systemctl start nginx
systemctl enable nginx

PHP-FPM設定の変更

PHP-FPMの実行ユーザー/グループを変更します。php8.3環境ではデフォルトはwww-dataとなっていますが、これをnginxユーザーに変更します。

/etc/php/8.3/fpm/pool.d/www.conf
user = nginx
group = nginx

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

設定変更後、PHP-FPMを再起動します:

systemctl restart php8.3-fpm

Nextcloudのダウンロードと展開

以下の手順で最新のNextcloudをダウンロードし展開します:

apt install bzip2
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
wget https://download.nextcloud.com/server/releases/latest.tar.bz2.md5
tar -xjvf latest.tar.bz2

展開したファイルを /var/www/nextcloud に移動します。

ファイル権限の設定

Nginxユーザーが適切にファイル操作できるよう、所有者と権限を設定します:

sudo adduser --system --no-create-home --group --disabled-login nginx
sudo chown -R nginx:nginx nextcloud/
sudo find nextcloud/ -type d -exec chmod 750 {} \;
sudo find nextcloud/ -type f -exec chmod 640 {} \;
一時的な権限設定

ウェブが正常に表示されない場合はchmod 777でテストしてください。 問題解決後は適切な権限に戻すことを推奨します。

まとめとセキュリティ推奨事項

本記事ではUbuntuサーバーへのNextcloudインストール方法を解説しました。インストール後はサーバーアドレスにアクセスし初期設定を行ってください。

セキュリティ強化のため、以下の対策を推奨します:

  • 自己署名証明書ではなくLet's Encryptを使用したSSL/TLS設定
  • 定期的なNextcloudのバージョンアップ
  • mariadbのパスワード変更
ログの場所

nextcloudのログは、/var/www/nextcloud/data/nextcloud.logに出力されます。問題発生時はまずログ内容を確認してください。

関連記事

コメントを読み込み中...