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

概要

クラウドストレージサーバー NextCloud をインストールします。
なお、以下は、本稿作成時点で最新の NextCloud 20.0.7 のインストールと設定を例示しています。

最新の状態にする

apt-get update
apt-get upgrade

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

パッケージのインストール

apt install apache2 mysql-server php php-xml php-cgi php-cli php-mysql php-mbstring php-gd php-curl php-zip

PHPの設定

Nextcloudにアップロード出来るファイルのサイズを設定します。

vi /etc/php/7.4/cli/php.ini


メモリ使用量の上限、最大ファイルサイズは環境により適宜設定してください

;メモリ使用量の上限
memory_limit = 512M
 
;POSTデータの最大サイズ ※合計サイズ
post_max_size = 100M
 
;1ファイルあたりの最大アップロードサイズ
upload_max_filesize = 100M

apache をリスタートします。

systemctl restart apache2

MySQLの設定

/etc/mysql/mysql.conf.d/mysqld.cnfに以下二行を追加します

vi /etc/mysql/mysql.conf.d/mysqld.cnf
skip-grant-tables
plugin-load-add = auth_socket.so

データベースの設定をしていきます。

sudo systemctl stop mysql
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo /usr/sbin/mysqld --skip-grant-tables &

Nextcloud で使用するデータベースをMySQLに事前に作成します。
ここでは、以下の値を設定します。

データベース名 : nextcloud
ユーザ名 : root
パスワード : password

$ mysql -u root -h localhost
 
mysql> CREATE DATABASE nextcloud;
Query OK, 1 row affected (0.00 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
 
mysql> USE mysql;
Database changed
 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.06 sec)
 
mysql> exit
Bye

一度再起動します。

reboot

SSL/TLSの設定

SSL/TLS サーバー証明書をお持ちの方は設定してください。

SSLストア とかでも安く買えるので興味があるかたはどうぞ。

SSLの設定

vi /etc/apache2/sites-available/default-ssl.conf
# 3行目:管理者アドレス変更
ServerAdmin webmaster@srv.world
 
# 32,33行目:[1] で取得した証明書に変更
SSLCertificateFile      /etc/letsencrypt/live/www.srv.world/cert.crt
SSLCertificateKeyFile   /etc/letsencrypt/live/www.srv.world/privkey.key
 
# 42行目:コメント解除して [1] で取得したチェインファイルに変更
SSLCertificateChainFile /etc/letsencrypt/live/www.srv.world/chain.crt
a2ensite default-ssl
a2enmod ssl
systemctl reload apache2

HTTPS へリダイレクト

HTTP リクエストも全て HTTPS へリダイレクトして Always on SSL とする場合はホスト定義にリダイレクトの設定を追記します。

vi /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>内に下記の3行を追記

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
<VirtualHost *:80>
    DocumentRoot /var/www/virtual.host
    ServerName www.virtual.host
    ServerAdmin webmaster@virtual.host
    ErrorLog /var/log/apache2/virtual.host.error.log
    CustomLog /var/log/apache2/virtual.host.access.log combined
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
a2enmod rewrite
systemctl restart apache2

NextCloudのインストール

最新の Nextcloud は、https://nextcloud.com/install/#instructions-server よりダウンロードします。
ダウンロードしたファイルを展開して、Apache のドキュメントルートに 展開した Nextcloud を置き、ディレクトリのオーナーとグループをApache(www-data)に変更します。

wget https://download.nextcloud.com/server/releases/nextcloud-20.0.7.zip -P /var/www/
unzip /var/www/nextcloud-20.0.7.zip -d /var/www/html/
sudo chown -R www-data:www-data /var/www/html/nextcloud/

WebブラウザでセットアップしたサーバにアクセスするとNextcloudの設定画面が現れます。

https://サーバのIPアドレス or ホスト名/nextcloud/

下記の画面が表示されたらインストールは成功です。

NextCloudの初期設定

下記の情報を画面に入力します。

ユーザ名 : 任意
パスワード : 任意
データフォルダー : /var/www/html/nextcloud/
データベースのユーザ名 : root
データベースのパスワード : password
データベース名 : nextcloud
データベースのホスト名: localhost (デフォルト)

入力が完了したら「セットアップを完了します」を押下します。

下記の画面が表示されたらインストール完了です。