Nextcloud

【NextCloud】Nextcloudで同期アプリを使用する -②

前回はUbuntuと必要ツールをサーバー用PCにインストールしところで終わりました。
今回はその続きで、いよいよNextCloudをインストールしていきます。

必要なPHPモジュールを追加

Nextcloud は多くの PHP 機能を使うので、追加で以下を入れます。

sudo apt install -y php-bcmath php-gmp php-imap php-bz2 php-ssh2 php-apcu

データベース(MariaDB)の作成

MariaDB にログイン

sudo mysql -u root -p

Nextcloud 用のDBとユーザーを作成

CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'パスワード';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

※ パスワード の部分は強力なものにしてください。

Nextcloud のダウンロードと配置

最新の安定版を取得

cd /tmp
wget https://download.nextcloud.com/server/releases/latest.zip

展開して配置

unzip latest.zip
sudo mv nextcloud /var/www/html/

所有権を Apache に変更

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

Apache の設定

新しい VirtualHost を作成

sudo nano /etc/apache2/sites-available/nextcloud.conf

内容(基本例)

<VirtualHost *:80>
ServerName your-domain.com

DocumentRoot /var/www/html/nextcloud

<Directory /var/www/html/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>

ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>

保存後、Apache を有効化

sudo a2ensite nextcloud.conf
sudo a2enmod rewrite headers env dir mime
sudo systemctl reload apache2

Nextcloud の初期設定

ブラウザでアクセス

http://サーバーIP/nextcloud

画面で以下を設定

  • 管理者アカウント名とパスワードを作成
  • 「データフォルダの場所」を指定(例:/var/www/html/nextcloud/data
  • データベース設定
    • DBユーザー名:nextclouduser
    • パスワード:先ほど設定したもの
    • DB名:nextcloud

セキュリティの導入

HTTPS化(Let’s Encrypt)

セキュリティのため必須です。
無料の Let’s Encrypt を使います。

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d your-domain.com

ここまでの設定で、NextCloudが動く環境になります。
社内サーバーでファイルの共有や同期ができるようになります。
もし社内サーバーだけでなく外部からのアクセスもできるようにしたい場合、追加で以下の設定が必要になります。


Nextcloud を外部公開するための手順

固定IP または DDNS の用意

  • 固定IP があるならそのまま利用。
  • 固定IPがない場合 → 無料の DDNS(Dynamic DNS)サービス を利用します。
    • 例: No-IP, DuckDNS, Cloudflare DDNS

これで外部から your-domain.com でアクセスできるようにします。

ルーターのポート開放

ルーター管理画面から以下を設定します:

  • 80番ポート(HTTP)
  • 443番ポート(HTTPS)
    を Nextcloud サーバーの ローカルIP に転送(ポートフォワーディング)。

DNS設定

取得したドメイン名(またはDDNSホスト名)をサーバーのグローバルIPに紐づけます。
例:your-domain.com → グローバルIP

Apache 設定(VirtualHost)

Nextcloud 用の設定ファイルを修正

sudo nano /etc/apache2/sites-available/nextcloud.conf


ServerName your-domain.com

DocumentRoot /var/www/html/nextcloud

<Directory /var/www/html/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>

ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined

有効化

sudo a2ensite nextcloud.conf
sudo systemctl reload apache2

Nextcloud の trusted_domains 設定

Nextcloud の設定ファイルを修正します

sudo nano /var/www/html/nextcloud/config/config.php

trusted_domains を編集

'trusted_domains' =>
array (
0 => 'localhost',
1 => 'your-domain.com',
2 => 'サーバーのローカルIP',
),

ファイアウォール(UFW)の設定

sudo ufw allow 80,443/tcp
sudo ufw enable

外部公開が完了するとできること

  • HTTPSで通信が暗号化されるので安心
  • https://your-domain.com/nextcloud で外部からアクセス可能
  • スマホアプリ(iOS/Android用 Nextcloud アプリ)からも接続可能

サーバー構築後の導入については公式サイトでも述べられています。
併せてご覧ください。

TOP