Nextcloud 個人用オンラインストレージをSynology DS918+で構築。

目次

Nextcloud

構築環境は、Synology DS918+になります。実質無制限のオンラインストレージを手に入れてみましょう。前提条件として、ドメインを取得していること。Synologyから無料で提供されるドメインでもいいですし、既にお持ちになっているドメインでもかまいません。

Nextcloud 構築準備

構築に必要な各種アプリケーションをDSMへログインし、パッケージセンターからインストールします。DSMは先日Synologyから提供された最新版のDSM7.0になります。

Synology WebStation
  • 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
Synology PHP設定

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

PHP 拡張設定

Synology PHP 拡張

個人的に有効にしているものです。その他に必要な拡張があれば有効にしてください。

  • bcmath
  • curl
  • exif
  • gd
  • gmp
  • iconv
  • imagick
  • intl
  • mysqli
  • openssl
  • pdo_mysql
  • zip
  • zlib

Web Station

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

ドキュメントルートはお使いの環境に合わせて設定してください。

Let’s Encrypt SSL証明書

Synology SSL

ポート解放が正常にできていれば、外部からのアクセスはドメインを入力すればアクセスできると思います。内部(ローカルネットワーク)からのアクセスとなると、ドメインを入力してもルータへアクセスするのみ。名前の解決ができないので、DNSサーバーを構築。または、hostファイルを編集する必要があります。

DNSサーバーを構築するのがいいのですが、面倒な方はhostファイルを編集してください。SSL証明書の取得は、外部からアクセスできれば発行してもらえます。

Nextcloud インストール

DSMのFileStationをクリックし、webを選択。(Web Stationをインストールすると作成されます)

Synology File StationSynology File Station

webの中に、Nextcloud公式からダウンロードした本体を圧縮のままアップロード。解凍は、File Stationで行います。解凍すると、web直下にnextcloudフォルダができているはずです。

所有権 パーミッション

解凍したフォルダ・ファイルの所有権とパーミッションを変更します。SSHからアクセスするのもいいですが、DSMのタスクから変更するのが簡単だと思います。

コントロールパネルから、タスクスケジューラーを選択。「作成」 → 「予約タスク」→「ユーザー指定のスクリプト」

Synology タスクスケジューラー

全般 タブ

  • ユーザー:root

スケジュール タブ

  • 次の日に実行 (繰り返さない)

タスク タブ

  • ユーザー指定のスクリプト:下記のコードをコピペ
chown -R http:http /volume1/web/nextcloud
chmod -R 0770 /volume1/web/nextcloud

ここから下記の設定は、DNSサーバーなどを構築し内部(ローカルネットワーク)からドメイン名を解決できることが前提で進めます。

ブラウザのアドレスバーに登録したドメインを入力してNextcloudの初期セットアップを行います。

https://登録したドメイン/nextcloud
nextcloudインストール

管理者アカウントを作成します。ユーザー名とパスワードを入力します。データフォルダーは、Web Stationで登録したアドレスを入力します。

/volune1/web/nextcloud

データベースの情報を登録。データベースホストは、下記を入力

localhost:/run/mysqld/mysqld10.sock
Nextcloud

もし、インストール途中で「504 この要求を処理している間にエラーが発生しました。」と表示された場合は、少しまってから再読み込みしてみて下さい。ログイン画面が表示されるはずです。

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

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

セキュリティ&セットアップ警告 で表示されている警告を修正していきます。

  • 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>

.htaccessの保存先ですが、nextcloudフォルダ内の.htaccessではありません。webフォルダ直下に保存してください。

デフォルトの電話地域とメモリーキャッシュは、nextcloudフォルダのconifg/config.phpに下記を追加。

'default_phone_region' => 'JP',
'memcache.local' => '\OC\Memcache\APCu',

再度、セキュリティ&セットアップ警告を表示して警告が消えているか確認してみましょう。

Nextcloud エラー警告修正

修正に間違いがなければ、すべてのチェックに合格しました。と表示されます。

慣れてしまえば簡単に構築できるのですが、初めての方は大変だと思います。出来上がるまでの過程をお楽しみください。

上記の通り修正しても、合格しない場合はブラウザのキャッシュを削除してみて下さい。または、現在お使いのブラウザとは別のブラウザを使ってみて下さい。

Nextcloud

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!

コメント

コメントする

目次