はじめに
Nextcloudは、自前のサーバを使って手軽にセキュアなファイル共有環境を実現できるオンラインストレージです。
ここでは、CentOS8 の環境で最低限に動く環境を構築する手順をまとめてみました。
今回構築する環境
構成イメージ
こんな感じで、いたってシンプルです。インターネットに出ない環境で試してみます。
利用するOS、ミドルウェア
サーバOS(CentOS)
今回はCentOS8を利用します。VirtualBoxやVagrantなどで準備いただいても問題ありません。
ここで展開している手順の環境は以下のとおりです。
$ cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
$ uname -a
Linux localhost.localdomain 4.18.0-147.el8.x86_64 #1 SMP Wed Dec 4 21:51:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Nextcloud本体
もちろんこれがないとNextcloudが使えません。
Nextcloudのバージョンはいろいろありますが、2020/4/24時点の最新版である 18.0.4 を使います。
Webサーバ(Apache)
NextcloudはWebベースで動作しますので、Webサーバが動作する環境が必要です。今回はApacheを使います。
ここで展開している手順でのApacheのバージョンは以下のとおりです。
$ httpd -v
Server version: Apache/2.4.37 (centos)
Server built: Dec 23 2019 20:45:34
PHP
NextcloudはPHPで動作します。
ここで展開している手順でのPHPのバージョンは以下のとおりです。
$ php -v
PHP 7.4.5 (cli) (built: Apr 14 2020 12:54:33) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.5, Copyright (c), by Zend Technologies
データベース(SQLite)
Nextcloudではデータベースを利用します。本格的な運用ではMariaDB/MySQLといったデータベースを利用することが推奨されますが、今回はお手軽に使ってみるためSQLiteを使います。
ここで展開している手順でのSQLiteのバージョンは以下のとおりです。
$ sqlite3 --version
3.26.0 2018-12-01 12:34:55 bf8c1b2b7a5960c282e543b9c293686dccff272512d08865f4600fb58238alt1
構築手順
ほぼほぼNextcloud公式ドキュメントにのっている内容です。これに基づいて進めていきます。
①インストール作業に必要なパッケージをインストールします。
sudo dnf install dnf-utils unzip curl wget bash-completion -y
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
②システムを最新状態にアップデートします。
sudo dnf upgrade -y
③Webサーバ(Apache)をインストールします。
sudo dnf install -y httpd
④Apacheの追加設定ファイルを作成します。
sudo vi /etc/httpd/conf.d/nextcloud.conf
※内容※
<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName (サーバのIPアドレス)
<Directory "/var/www/html/">
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
</VirtualHost>
⑤Apacheを自動起動するように設定し、Apacheを起動します。
sudo systemctl enable httpd.service
sudo systemctl start httpd.service
⑥Nextcloudの動作に必要なPHPモジュールをインストールします。
sudo dnf install http://rpms.famillecollet.com/enterprise/remi-release-8.rpm -y
sudo dnf module install php:remi-7.4 -y
sudo dnf install php-gd php-mysqlnd php-process php-opcache php-pecl-apcu php-intl php-pecl-redis php-pecl-zip php-pear -y
⑦Nextcloudパッケージ本体とチェックサムファイル(Nextcloudパッケージ本体が正しくダウンロードされているかをチェックするためのファイル)をダウンロードします。
wget https://download.nextcloud.com/server/releases/nextcloud-18.0.4.tar.bz2
wget https://download.nextcloud.com/server/releases/nextcloud-18.0.4.tar.bz2.md5
⑧チェックサムファイルを利用してNextcloudパッケージが正しくダウンロードされているか確認します。
md5sum -c nextcloud-18.0.4.tar.bz2.md5 < nextcloud-18.0.4.tar.bz2
※nextcloud-18.0.4.tar.bz2: OK
または ``nextcloud-18.0.4.tar.bz2: 完了` と表示されれば OK です
⑨ダウンロードしたNextcloudパッケージを展開します。
tar xf nextcloud-18.0.4.tar.bz2
⑩展開したNextcloudをWebサーバのドキュメントルートにコピーします。
sudo cp -R nextcloud/ /var/www/html/
⑪Nextcloudのデータディレクトリを作成します。
sudo mkdir /var/www/html/nextcloud/data
⑫Nextcloudのディレクトリ全体で読み書きができるように所有者情報を変更します。
sudo chown -R apache:apache /var/www/html/nextcloud
⑬Apacheを再起動します。
sudo systemctl restart httpd.service
⑭SELINUX を無効にします。
sudo setenforce 0
sudo sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config
⑮ブラウザからアクセスできるように、ファイアウォールの設定を変更します。
sudo firewall-cmd --permanent --zone public --add-service http
sudo firewall-cmd --reload
⑯ブラウザで http://(サーバのIPアドレス)/nextcloud にアクセスします。下のような画面が出ればOKです。
⑰初期ユーザー名、パスワードを決めて入力します。さらに「推奨アプリをインストール」のチェックは外しておきます。終わったら「セットアップを完了します」をクリックします。
⑱こんな画面が出ればNextcloudが動作しています。おめでとうございます!
あとがき
Nextcloudはサーバー1つあれば気軽に試せますので、使い勝手とかいろいろ試してみてください。
更新履歴
- 2020/4/25: 初版。