Nextcloud18.0.4 を CentOS8 にインストールしてお手軽に体験してみる


はじめに

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: 初版。