無料レンタルサーバーでNextcloudを使う。

## 今回の経緯
先日といっても結構前ですが、G SuiteからGoogle Workspaceへの完全移行が行われました。これにより今まで教育機関には無制限のGoogle Driveが割り当てられていましたが、Google Workspaceにより組織全体で100TBまでと制限されることとなりました。
これを受け、どこの地方公共団体の教育委員会とは言いませんが、
「生徒一人あたりの容量を1GBにします！！」
と言い出しました。
そこにキレれた私は、教育委員会に
「ざけんな！1GBたらんやろ！！ふざけんな！」
とメールを送ったのですが良い返事はいただけなかったので、学校の情報担当の先生に許可を取り、Nextcloudサーバーを構築することとなりました。今回は条件が良いシン・クラウドを利用することにしました。
(ちなみに、その時私が使っていた容量は約100GBだったので使用率10000％を突破していました)
## シン・クラウド for Freeとは
Xserverが進化してリスタートされたシン・レンタルサーバーの系列に当たり、Xserverの無料レンタルサーバーサービスのXfreeの後継サービスとしてリリースされた結構新しいサービスです。
簡単にWordPressなどのCMSを利用でき、無料で10GBを利用できるなかなかに太っ腹なサーバーです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125366/4e94380b-0811-5c62-ad56-d7d53b035e46.png)
> [シン・クラウド for Free](https://www.xfree.ne.jp/) より
## Nextcloudとは
> Nextcloudは、オンラインストレージの作成と使用のためのクライアント・サーバ型のソフトウェアである。機能的にはDropboxに似ているが、オフプレミスのオンラインストレージサービスは提供しない。Nextcloudはフリーかつオープンソースなので、誰でも自分のプライベートサーバにインストールして利用することができる。
> [Nextcloud \- Wikipedia](https://ja.wikipedia.org/wiki/nextcloud) より

オンラインストレージをセルフホストする際に多く使われます。オンラインストレージに限った利用以外にも、メールやオフィススイート、カレンダーなどありとあらゆるものを利用することができます。
またNextcloudは有志の方によってWebインストーラーが用意されているためssh機能がないレンタルサーバーでも利用することができます。
## 実際に導入してみよう！
### 本体のダウンロード
今回はこの記事のためにサブディレクトリに導入していくので、適宜読み替えてください。
まず、Nextcloudのダウンロードページに行きます。

https://nextcloud.com/install/#instructions-server:~:text=COMMUNITY%20PROJECTS-,Web%20installer,-The%20Web%20Installer

COMMUNITY SOFTWAREのWeb Installerをダウンロードします。ダウンロードしたファイルは後で使うので、わかるところに保存をしておいてください。
### ファイルサーバーにログインとファイルの設置
(ここでは事前にシン・クラウドのサーバーのセットアップが完了していることとします。できていない方は、手順どおりに導入してください。ドメインのセットアップにしばらく時間がかかるので、ゆっくりお茶でも飲んで待ちましょう。)

https://secure.wpx.ne.jp/wpxapanel/login/wpxserver/?request_page=cloudfree%2Findex

ログインしたあと、自分がNextcloudをインストールしたいサーバーのファイルサーバーを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125366/6534e2e1-444d-b21b-f332-7d2cb18f3221.png)
自分のサーバーのドメインのフォルダーの下にpublic_htmlがあるので、ルートにインストールしたい人はルートに、サブディレクトリーにインストールしたい人はディレクトリを作成して、先程ダウンロードしたファイル(setup-nextcloud.php)をアップロードしてください。
### データベースの設定
サーバー設定を選んで、データベースを作ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125366/eed5ad4b-1e33-48f6-0380-387c3857239f.png)
名前はサーバーID+任意の文字で作成してください。
出来上がったデータベースのユーザ設定を押し、ユーザーを追加を押します。
ユーザー名も名前も任意で入力してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125366/e1e7a262-8e29-a29d-8ec3-963fa36b81c1.png)
ここで、入力したデータベースの名前、ユーザー名、パスワードは覚えておいてください。
これで、サーバー管理側からは以上です。これからはWebサイト側から操作をします。
### Nextcloudのインストールをする
http://あなたのドメイン/setup-nextcloud.php
を開いてください。そうするとこのような画面になっているはずです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125366/816e4b0a-a905-a4aa-8dc4-31eee5ed08e8.png)
Nextを押してください。そうするとどのディレクトリにインストールしますか？と聞かれるので、ルートなら「.」インストールしたいディレクトリがある方は入力してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125366/cb2eb0d4-ec33-138b-f244-43a5dd9af9c5.png)

:::note warn
これは先程ファイルを設置したディレクトリではありません。
:::
そうするとインストーラーのインストールが始まります。もし、エラーを吐かれた場合はファイルマネージャーに戻り、実行権限を与えてください。

続行ボタンを押すとこのような画面が表示されます。管理者のユーザー名とパスワードを設定し、データディレクトリ(大抵はそのままでいい)を決めます。また、データベースの設定ではMySQL/MariaDBを選択し、ユーザ名、パスワード、データベース名を入力してください。データベースホストはそのままでいいです。最後に、Installを押してインストールを始めてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125366/18bc6a3c-5eee-0d93-a310-1638b170a792.png)
終わると下のような画面になります。推奨アプリをインストールしたい人はインストールしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125366/e740e666-5057-afc4-0fcd-9b5915a7741a.png)
### インストール完了
ホーム画面が表示されたら、成功です！お疲れさまでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3125366/d2c592cb-afa2-5945-ca6f-c622f12fe454.png)
## 現状の問題点
- Cronによるメンテナンスが正常に行なえない
- HTTPSによる正常な接続ができない/しずらい
- Nextcloudによるアップデートが正常に行えない
- ~~ExternalStrageアドオンが正常に機能しない~~
　9/27追記 Nextcloudの再インストールを行ったことで改善
## まとめ
学校でも自由に使えるサーバーを構築できてよかったです。ストレージもFTPやSMTP、個人のGoogle Driveなど、自由に拡張できるので自由度は相当高いと思います。
でも、やっぱり、私思うんです、生徒一人あたり1GBっておかしいです。