Help us understand the problem. What is going on with this article?

Nextcloud15.0.0をCentOS7にインストールしてお手軽に体験してみる

はじめに

Nextcloudは、自前のサーバを使って手軽にセキュアなファイル共有環境を実現できるオンラインストレージです。
まずは多くの方にこれを知っていただきたく、最低限に動く環境を構築する手順をまとめてみました。

今回構築する環境

構成イメージ

こんな感じで、いたってシンプルです。まずはインターネットに出ない環境で試してみます。
image.png

利用するOS、ミドルウェア

サーバOS(CentOS)

今回はCentOS7を利用します。VirtualBoxやVagrantなどで準備いただいても問題ありません。
ここで展開している手順の環境は以下のとおりです。

$ cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
$ uname -a
Linux localhost.localdomain 3.10.0-862.2.3.el7.x86_64 #1 SMP Wed May 9 18:05:47 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Nextcloud本体

もちろんこれがないとNextcloudが使えません。
Nextcloudのバージョンはいろいろありますが、2019/1/2時点の最新版である 15.0.0 を使います。

Webサーバ(Apache)

NextcloudはWebベースで動作しますので、Webサーバが動作する環境が必要です。今回はApacheを使います。
ここで展開している手順でのApacheのバージョンは以下のとおりです。

$ httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Nov  5 2018 01:47:09

PHP

NextcloudはPHPで動作します。
ここで展開している手順でのPHPのバージョンは以下のとおりです。

$ php -v
PHP 7.2.12 (cli) (built: Nov 11 2018 14:54:16) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.12, Copyright (c) 1999-2018, 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 

②システムを最新状態にアップデートします。

$ 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
$ systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-12-31 20:06:50 JST; 7s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 13808 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─13808 /usr/sbin/httpd -DFOREGROUND
           ├─13809 /usr/sbin/httpd -DFOREGROUND
           ├─13810 /usr/sbin/httpd -DFOREGROUND
           ├─13811 /usr/sbin/httpd -DFOREGROUND
           ├─13812 /usr/sbin/httpd -DFOREGROUND
           └─13813 /usr/sbin/httpd -DFOREGROUND

Dec 31 20:06:50 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Dec 31 20:06:50 localhost.localdomain httpd[13808]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using loca... message
Dec 31 20:06:50 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

⑥Nextcloudの動作に必要なPHPモジュールをインストールします。

$ sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
$ sudo yum install -y php72w php72w-cli php72w-common php72w-curl php72w-gd php72w-mbstring php72w-mysqlnd php72w-process php72w-xml php72w-zip php72w-opcache php72w-pecl-apcu php72w-intl php72w-pecl-redis

⑦Nextcloudパッケージ本体とチェックサムファイル(Nextcloudパッケージ本体が正しくダウンロードされているかをチェックするためのファイル)をダウンロードします。

$ wget https://download.nextcloud.com/server/releases/nextcloud-15.0.0.tar.bz2
$ wget https://download.nextcloud.com/server/releases/nextcloud-15.0.0.tar.bz2.md5

⑧チェックサムファイルを利用してNextcloudパッケージが正しくダウンロードされているか確認します。

$ md5sum -c nextcloud-15.0.0.tar.bz2.md5 < nextcloud-15.0.0.tar.bz2
nextcloud-15.0.0.tar.bz2: OK

⑨ダウンロードしたNextcloudパッケージを展開します。

$ tar xf nextcloud-15.0.0.tar.bz2
$ ll
total 35344
drwxr-xr-x 14 vagrant vagrant     4096 Dec 10 19:26 nextcloud
-rw-rw-r--  1 vagrant vagrant 36181234 Dec 10 19:27 nextcloud-15.0.0.tar.bz2
-rw-rw-r--  1 vagrant vagrant       59 Dec 10 19:27 nextcloud-15.0.0.tar.bz2.md5

⑩展開したNextcloudをWebサーバのドキュメントルートにコピーします。

$ sudo cp -R nextcloud/ /var/www/html/
$ ll /var/www/html/
total 4
drwxr-xr-x 14 root root 4096 Jan  1 00:24 nextcloud

⑪Nextcloudのデータディレクトリを作成します。

$ sudo mkdir /var/www/html/nextcloud/data
$ ls /var/www/html/nextcloud
3rdparty  AUTHORS  console.php  core      data        index.php  occ           ocs           public.php  resources   settings    themes   version.php
apps      config   COPYING      cron.php  index.html  lib        ocm-provider  ocs-provider  remote.php  robots.txt  status.php  updater

⑫Nextcloudのディレクトリ全体で読み書きができるように所有者情報を変更します。

$ sudo chown -R apache:apache /var/www/html/nextcloud
$ ll /var/www/html/nextcloud
total 108
drwxr-xr-x 32 apache apache  4096 Jan  1 00:24 3rdparty
drwxr-xr-x 39 apache apache  4096 Jan  1 00:24 apps
-rw-r--r--  1 apache apache 12063 Jan  1 00:24 AUTHORS
drwxr-xr-x  2 apache apache    48 Jan  1 00:24 config
-rw-r--r--  1 apache apache  3650 Jan  1 00:24 console.php
-rw-r--r--  1 apache apache 34520 Jan  1 00:24 COPYING
drwxr-xr-x 18 apache apache  4096 Jan  1 00:24 core
-rw-r--r--  1 apache apache  4979 Jan  1 00:24 cron.php
drwxr-xr-x  2 apache apache     6 Jan  1 00:29 data
-rw-r--r--  1 apache apache   156 Jan  1 00:24 index.html
-rw-r--r--  1 apache apache  3172 Jan  1 00:24 index.php
drwxr-xr-x  6 apache apache   125 Jan  1 00:24 lib
-rw-r--r--  1 apache apache   283 Jan  1 00:24 occ
drwxr-xr-x  2 apache apache    23 Jan  1 00:24 ocm-provider
drwxr-xr-x  2 apache apache    55 Jan  1 00:24 ocs
drwxr-xr-x  2 apache apache    23 Jan  1 00:24 ocs-provider
-rw-r--r--  1 apache apache  2969 Jan  1 00:24 public.php
-rw-r--r--  1 apache apache  5139 Jan  1 00:24 remote.php
drwxr-xr-x  4 apache apache   107 Jan  1 00:24 resources
-rw-r--r--  1 apache apache    26 Jan  1 00:24 robots.txt
drwxr-xr-x 12 apache apache   248 Jan  1 00:24 settings
-rw-r--r--  1 apache apache  2232 Jan  1 00:24 status.php
drwxr-xr-x  3 apache apache    35 Jan  1 00:24 themes
drwxr-xr-x  2 apache apache    43 Jan  1 00:24 updater
-rw-r--r--  1 apache apache   363 Jan  1 00:24 version.php

⑬Apacheを再起動します。

$ sudo systemctl restart httpd.service
$ systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-01-01 00:33:01 JST; 5s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 14349 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 14353 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─14353 /usr/sbin/httpd -DFOREGROUND
           ├─14354 /usr/sbin/httpd -DFOREGROUND
           ├─14355 /usr/sbin/httpd -DFOREGROUND
           ├─14356 /usr/sbin/httpd -DFOREGROUND
           ├─14357 /usr/sbin/httpd -DFOREGROUND
           └─14358 /usr/sbin/httpd -DFOREGROUND

Jan 01 00:33:01 localhost.localdomain systemd[1]: Stopped The Apache HTTP Server.
Jan 01 00:33:01 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Jan 01 00:33:01 localhost.localdomain httpd[14353]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using loca... message
Jan 01 00:33:01 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

⑭ブラウザで http://(サーバのIPアドレス)/nextcloud にアクセスします。下のような画面が出ればOKです。
image.png
⑮ユーザー名、パスワードを決めて入力します。終わったら「セットアップを完了します」をクリックします。
image.png
⑯こんな画面が出ればNextcloudが動作しています。おめでとうございます!
image.png

あとがき

Nextcloudはサーバー1つあれば気軽に試せますので、使い勝手とかいろいろ試してみてください。
今後も不定期ですが、いろいろなケースのNextcloudの構築手順を展開してみます。
次回は、データベースやインメモリキャッシュといった、本格的に運用することを想定した構築手順を展開する予定です。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away