owncloudで構築しようとしたが結局nextcloudにした話

写真とか動画が結構たまってるので無料クラウドストレージじゃ容量不足で、有料契約も家族分となったら負担も大きくなります。
自鯖をクラウドストレージ構築をどっちでもよかったけど
よく聞くowncloudで構築してみようと思ったのだが・・・

##owncloud
###nginx
```bash:console
$ sudo vi /etc/yum.repos.d/nginx.repo
```
```bash:vi-nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
```
```bash:console
$ sudo yum install nginx

バージョン確認
$ nginx -v
nginx version: nginx/1.11.10

nginx起動
$ sudo systemctl start nginx
$ sudo systemctl status nginx
```

###PHP
owncloudをyumでインストールするので、不足があれば依存関係で解消してくれるからPHPは最小限

```bash:console
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ sudo yum install --enablerepo=remi,remi-php71 php-fpm php-mbstring php-mysqli

バージョン確認
$ rpm -qa | grep php
php-json-7.1.1-2.el7.remi.x86_64
php-fpm-7.1.1-2.el7.remi.x86_64
php-common-7.1.1-2.el7.remi.x86_64
php-pdo-7.1.1-2.el7.remi.x86_64
php-mbstring-7.1.1-2.el7.remi.x86_64
php-mysqlnd-7.1.1-2.el7.remi.x86_64

サービス有効化
$ sudo systemctl start php-fpm
$ sudo systemctl status php-fpm
```
###MariaDB

```bash:console
$ sudo vi /etc/yum.repos.d/MariaDB.repo
```

```bash:vi
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
```

```bash:console
$ sudo yum install mariadb-server

バージョン確認
$ rpm -qa | grep -i mariadb
MariaDB-common-10.1.21-1.el7.centos.x86_64
MariaDB-client-10.1.21-1.el7.centos.x86_64
MariaDB-shared-10.1.21-1.el7.centos.x86_64
MariaDB-server-10.1.21-1.el7.centos.x86_64

mariadb起動
$ sudo systemctl start mariadb
$ sudo systemctl status mariadb
```

###owncloud
[公式](https://download.owncloud.org/download/repositories/stable/owncloud/)の記載通りに実行

```bash:console
$ sudo rpm --import https://download.owncloud.org/download/repositories/stable/CentOS_7/repodata/repomd.xml.key

$ sudo wget http://download.owncloud.org/download/repositories/stable/CentOS_7/ce:stable.repo -O /etc/yum.repos.d/ce:stable.repo
$ sudo yum clean expire-cache
$ sudo yum install owncloud

結果(だいぶ省略してるけどエラー続出)
エラー: php-mysql conflicts with php-mysqlnd-7.1.1-2.el7.remi.x86_64
エラー: パッケージ: owncloud-deps-php5-9.1.4-1.1.noarch (ce_stable)
             要求: php-zip
            利用可能: php-common-5.4.16-42.el7.x86_64 (base)
                php-zip
            インストール: php-common-7.1.1-2.el7.remi.x86_64 (@remi-php71)
                見つかりません
エラー: パッケージ: php-ldap-5.4.16-42.el7.x86_64 (base)
             要求: php-common(x86-64) = 5.4.16-42.el7
            インストール: php-common-7.1.1-2.el7.remi.x86_64 (@remi-php71)
                php-common(x86-64) = 7.1.1-2.el7.remi
            利用可能: php-common-5.4.16-42.el7.x86_64 (base)
                php-common(x86-64) = 5.4.16-42.el7

```

PHPの不足分を個別に実行しても最後まで解消することがなかったので、
めんどくさいので、PHP全部消して後でバージョンを上げることにします。

```bash:console
PHP削除
$ sudo yum remove php*

改めてowncloudインストール
$ sudo yum install owncloud
インストール中:
 owncloud                noarch      9.1.4-1.1             ce_stable      5.0 k

PHP7.1にバージョンアップ
$ sudo yum install --enablerepo remi-php71 php-fpm

$ rpm -qa | grep php
php-mysqlnd-7.1.1-2.el7.remi.x86_64
php-fpm-7.1.1-2.el7.remi.x86_64
php-pecl-zip-1.13.5-2.el7.remi.7.1.x86_64
owncloud-deps-php5-9.1.4-1.1.noarch
php-common-7.1.1-2.el7.remi.x86_64
php-pdo-7.1.1-2.el7.remi.x86_64
php-cli-7.1.1-2.el7.remi.x86_64
php-pecl-mysql-1.0.0-0.15.20160812git230a828.el7.remi.7.1.x86_64
php-mbstring-7.1.1-2.el7.remi.x86_64
php-xml-7.1.1-2.el7.remi.x86_64
php-gd-7.1.1-2.el7.remi.x86_64
php-json-7.1.1-2.el7.remi.x86_64
php-7.1.1-2.el7.remi.x86_64
php-ldap-7.1.1-2.el7.remi.x86_64
php-process-7.1.1-2.el7.remi.x86_64
```

###nginxの設定
あとは普通にnginxの設定でphpを使えるようにして
ドキュメントルートをデフォルト値「/var/www/html/owncloud」に設定

```bash:console
sudo vi /etc/nginx/conf.d/default.conf
```

```bash:default.conf
	root	/var/www/html/owncloud
	あとはPHPのコメントアウト
```

###結果
WEBページで以下のメッセージが表示されて詰み

This version of ownCloud is not compatible with PHP 7.1.
You are currently running 7.1.1. Please use at least ownCloud 10.0.0.

要約するとPHP7.1は互換性ないからownCloud 10.0.0にしろってことらしい
ownCloud 10.0.0ってあるのか調べたらnextcloudを発見したのでそっちも試してみます。
まぁ素直にPHP5を使えって話やけどね

##nextcloud
とりあえず下手なことをせずに素直に[公式](https://docs.nextcloud.com/server/11/admin_manual/installation/source_installation.html)の通りに進めていきます。

```bash:console
PHPインストール
$ sudo yum install --enablerepo remi-php71 php-gd php-json php-mysql php-curl php-mbstring php-intl php-mcrypt php-imagick php-xml php-zip

nextcloudインストール
$ sudo wget https://download.nextcloud.com/server/releases/nextcloud-11.0.1.tar.bz2
$ sudo wget https://download.nextcloud.com/server/releases/nextcloud-11.0.1.tar.bz2.sha256
$ sudo wget https://download.nextcloud.com/server/releases/nextcloud-11.0.1.tar.bz2.asc
NextcloudのGPG公開鍵
$ sudo wget https://nextcloud.com/nextcloud.asc

SHA256チェックサム
$ sudo sha256sum -c nextcloud-11.0.1.tar.bz2.sha256 < nextcloud-11.0.1.tar.bz2
GPG Signature

$ sudo gpg --import nextcloud.asc
$ sudo gpg --verify nextcloud-11.0.1.tar.bz2.asc nextcloud-11.0.1.tar.bz2

bz2解凍の用
$ sudo yum -y install bzip2

$ sudo tar -xjf nextcloud-11.0.1.tar.bz2
nginxのルートへコピー
$ sudo cp -r nextcloud /usr/share/nginx/html/
nginxのルート設定
$ sudo vi /etc/nginx/conf.d/default.conf
```

```bash:default.conf
　root　/usr/share/nginx/html/nextcloud
```

これでHPへのアクセスはできました。
あとはパーミッションを設定せよとのことなので[公式](https://docs.nextcloud.com/server/11/admin_manual/installation/installation_wizard.html#setting-strong-directory-permissions)を適宜入れ替えて実行します。

#結果
まぁowncloudがPHP7ですんなりいかなかったので、途中でダレた感じですけど、
セキュリティ云々なしでとりあえずすんなり動くかどうかの確認でした。
そのうちnextcloudの公式に沿ってきちんと手順踏んでいきます。