前回は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
- DBユーザー名:
セキュリティの導入
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 アプリ)からも接続可能
サーバー構築後の導入については公式サイトでも述べられています。
併せてご覧ください。