Dropboxのようにファイルを保存できて、各種アプリ(プラグイン)で様々な機能を拡張できるOSS、Nextcloudをインストールしました。
このエントリーで行うこと
- nextcloud用のphpモジュールを入れる
- nextcloudに即したデータベースを入れる
- apache設定ファイルを作成する
- 設定反映を行い、初期画面を出す。
インストールしたハードウェア
この、2台目のChuwi Herobox Proです。redmineのデータ同期サーバのデータをマウントするために選びました。
前提
以下が導入済みです。
- Ubuntu 20.04
- Apache 2.4 (2.4.41)
- mysql 80 (8.0.30)
- php 7.4 (7.4.32)
- nextcloud用のドメインを設定していること
- サーバ証明書 (Let's Encryptワイルドカードを用いました)
手順
全て管理者権限で実施しました。
phpの追加モジュールをインストールします。
sudo apt install php7.4-{opcache,pdo,bcmath,calendar,ctype,fileinfo,ftp,gd,intl,json,ldap,mbstring,mysqli,posix,readline,sockets,bz2,tokenizer,zip,curl,iconv,phar,xml}
systemctl restart apache2
データベースを作成します。
mysql -u root -p
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'パスワード';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
ファイルをダウンロードして配置します。
導入したサーバは/homeディレクトリを別SSDにマウントしているため、以下のようにしました。
wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip /home/www-data
chown -R www-data:www-data /home/www-data/nextcloud
設定ファイルを作成します。
mkdir /var/log/apache2/nextcloud
chown -R www-data:www-data /var/log/apache2/nextcloud
vi /etc/apache2/sites-available/nextcloud.conf
設定ファイルの内容
<VirtualHost _default_:80>
ServerName [公開するドメイン名]
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
CustomLog /var/log/apache2/nextcloud/access.log combined
ErrorLog /var/log/apache2/nextcloud/error.log
</VirtualHost>
<VirtualHost _default_:443>
ServerName [公開するドメイン名]
CustomLog /var/log/apache2/nextcloud/ssl_access.log combined
ErrorLog /var/log/apache2/nextcloud/ssl_error.log
SSLEngine on
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
SSLProtocol All -SSLv2 -SSLv3 -TLSv1
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLCertificateFile /etc/certs/ssl.crt
# 証明書のファイルパス
SSLCertificateKeyFile /etc/private/ssl.key
# 秘密鍵のファイルパス
DocumentRoot /home/www-data/nextcloud
<Directory /home/www-data/nextcloud>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
設定を反映します。
a2ensite nextcloud.conf
apache2ctl configtest
# Syntax ok を確認します
systemctl restart apache2
起動確認
ブラウザから設定したドメインにアクセスします。
アクセス後、ガイドに従い
- 管理者アカウント
- パスワード
- データベース情報
を設定後、以下の画面が出てくれば成功です。