Nextcloud
構築環境は、Synology DS918+になります。実質無制限のオンラインストレージを手に入れてみましょう。前提条件として、ドメインを取得していること。Synologyから無料で提供されるドメインでもいいですし、既にお持ちになっているドメインでもかまいません。
Nextcloud 構築準備
構築に必要な各種アプリケーションをDSMへログインし、パッケージセンターからインストールします。DSMは先日Synologyから提供された最新版のDSM7.0になります。

- Web Station
- Apache HTTP Server 2.4
- PHP 7.3 (※ phpMyAdminを使用する場合に必要になります。)
- PHP 7.4
- phpMyAdmin
- MariaDB 10
- ポート解放 (80番/443番)
- Nextcloud (公式サイトよりダウンロード)
MariaDB 10はインストールの際にrootパスワードの入力を求められます。複雑なパスワードを登録しておきましょう。phpMyAdminへログインする際に必要になるので、メモしておきます。
phpMyAdminへのログイン方法
http://DSMのIPアドレス/phpMyAdmin
ログインIDに「 root 」パスワード「 MariaDB 10 インストールの再に登録したパスワード」
Nextcloud用のデータベース登録は、割愛します。ネットで調べていただければ出てくると思います。
データベースの登録が終わったら、パッケージセンターからphpMyAdminをアンインストール。または無効にしておいた方がいいでしょう。
PHP設定
PHPの各種設定は、WebStationから行います。スクリプト言語の設定を選択。作成をクリックしてPHPプロファイルを新規作成します。
- プロファイル名:PHP7.4 Nextcloud (※なんでもかまいません)
- 説明:Nextcloud用 (※なんでもかいません)
- PHPバージョン:PHP 7.4

PHP キャッシュを有効にするにチェックをいれておきましょう。
PHP 拡張設定

個人的に有効にしているものです。その他に必要な拡張があれば有効にしてください。
- bcmath
- curl
- exif
- gd
- gmp
- iconv
- imagick
- intl
- mysqli
- openssl
- pdo_mysql
- zip
- zlib
Web Station

- 名前ベースを選択
- ホスト名:取得済みのドメイン
- ポート:80/443にチェック
- ドキュメントルート:/volume1/web
- HTTPS 設定:HSTSにチェック
- HTTP バックエンドサーバー:Apache HTTP Server 2.4
- PHP:PHP7.4 NextCloud
- アクセスコントロールプロファイル:未構成
Let’s Encrypt SSL証明書

ポート解放が正常にできていれば、外部からのアクセスはドメインを入力すればアクセスできると思います。内部(ローカルネットワーク)からのアクセスとなると、ドメインを入力してもルータへアクセスするのみ。名前の解決ができないので、DNSサーバーを構築。または、hostファイルを編集する必要があります。
DNSサーバーを構築するのがいいのですが、面倒な方はhostファイルを編集してください。SSL証明書の取得は、外部からアクセスできれば発行してもらえます。
Nextcloud インストール
DSMのFileStationをクリックし、webを選択。(Web Stationをインストールすると作成されます)

webの中に、Nextcloud公式からダウンロードした本体を圧縮のままアップロード。解凍は、File Stationで行います。解凍すると、web直下にnextcloudフォルダができているはずです。
所有権 パーミッション
解凍したフォルダ・ファイルの所有権とパーミッションを変更します。SSHからアクセスするのもいいですが、DSMのタスクから変更するのが簡単だと思います。
コントロールパネルから、タスクスケジューラーを選択。「作成」 → 「予約タスク」→「ユーザー指定のスクリプト」

全般 タブ
- ユーザー:root
スケジュール タブ
- 次の日に実行 (繰り返さない)
タスク タブ
- ユーザー指定のスクリプト:下記のコードをコピペ
chown -R http:http /volume1/web/nextcloud
chmod -R 0770 /volume1/web/nextcloud
ブラウザのアドレスバーに登録したドメインを入力してNextcloudの初期セットアップを行います。
https://登録したドメイン/nextcloud

管理者アカウントを作成します。ユーザー名とパスワードを入力します。データフォルダーは、Web Stationで登録したアドレスを入力します。
/volune1/web/nextcloud
データベースの情報を登録。データベースホストは、下記を入力
localhost:/run/mysqld/mysqld10.sock

セキュリティ&セットアップ警告

セキュリティ&セットアップ警告 で表示されている警告を修正していきます。
- PHPのメモリ制限が推奨値の512MB以下です。
- Webサーバーで ”/.well-known/webfinger” が解決されるように正しく設定されていません。
- Webサーバーで ”/.well-known/nodeinfo” が解決されるように正しく設定されていません。
- Webサーバーで ”/.well-known/caldav” が解決されるように正しく設定されていません。
- Webサーバーで ”/.well-known/carddav” が解決されるように正しく設定されていません。
- ご使用のシステムには、デフォルトの電話地域が設定されていません。これは、国コードなしでプロファイル設定の電話番号を検証するために必要です。国コードなしで番号を許可するには、地域のそれぞれのISO3166-1コードとともに “default_phone_region” を設定ファイルに追加してください。
- メモリーキャッシュが構成されていません。パフォーマンスを向上させるために、可能な場合はmemcacheを構成してください。
PHPのメモリ制限は、WebStationで修正します。新規で作成した(目次1-3)PHPプロファイルのコアから「 memory_limit 」の数値を512Mに変更して保存。
Webサーバーで~の項目は、File Stationから修正します。Nextcloudをインストールしたwebフォルダへ移動し、ファイルを一つ追加します。パッケージセンターから「テキストエディタ」をインストールしましょう。
テキストエディタを起動させて、下記をコピペ。保存の再のファイル名は「.htaccess」になります。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^\.well-known/host-meta /nextcloud/public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /nextcloud/public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/webfinger /nextcloud/index.php%{REQUEST_URI} [R=301,L]
RewriteRule ^\.well-known/nodeinfo /nextcloud/index.php%{REQUEST_URI} [R=301,L]
RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]
</IfModule>
デフォルトの電話地域とメモリーキャッシュは、nextcloudフォルダのconifg/config.phpに下記を追加。
'default_phone_region' => 'JP',
'memcache.local' => '\OC\Memcache\APCu',
再度、セキュリティ&セットアップ警告を表示して警告が消えているか確認してみましょう。

修正に間違いがなければ、すべてのチェックに合格しました。と表示されます。
慣れてしまえば簡単に構築できるのですが、初めての方は大変だと思います。出来上がるまでの過程をお楽しみください。
コメント