もくじ
概要
クラウドストレージサーバー 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 (デフォルト)
入力が完了したら「セットアップを完了します」を押下します。
下記の画面が表示されたらインストール完了です。