はじめに
Nextcloudは、自前のサーバを使って手軽にセキュアなファイル共有環境を実現できるオンラインストレージです。
まずは多くの方にこれを知っていただきたく、最低限に動く環境を構築する手順をまとめてみました。
今回構築する環境
構成イメージ
こんな感じで、いたってシンプルです。まずはインターネットに出ない環境で試してみます。
利用するOS、ミドルウェア
サーバOS(CentOS)
今回はCentOS7を利用します。VirtualBoxやVagrantなどで準備いただいても問題ありません。
ここで展開している手順の環境は以下のとおりです。
$ cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
$ uname -a
Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 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.6 (CentOS)
Server built: Aug 8 2019 11:41:18
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.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
構築手順
ほぼほぼNextcloud公式ドキュメントにのっている内容です。これに基づいて進めていきます。
①インストール作業に必要なパッケージをインストールします。
sudo yum install -y epel-release yum-utils unzip curl wget bash-completion bzip2
②システムを最新状態にアップデートします。
sudo yum update -y
③Webサーバ(Apache)をインストールします。
sudo yum 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 yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm -y
sudo yum install --enablerepo=remi,remi-php74 php php-fpm php-cli php-common php-curl php-gd php-mbstring php-mysqlnd php-process php-xml 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つあれば気軽に試せますので、使い勝手とかいろいろ試してみてください。
更新履歴
- 2019/1/2: 初版。
- 2020/4/25: CentOS7 + Apache2.4 + PHP7.4 + Nextcloud 18 の環境に即した修正、他こまごま修正。