Nextcloudのインストール

DropboxやGoogle Driveのようなオンラインストレージを構築できるownCloudのフォークであるNextcloudをソースコードからインストールする。

Nextcloudはかなり高機能なソフトのため,これをインストールできれば,Google CalendarやGoogle Contact,Gmail, Skypeなど非常に多くのWebサービスを自前で扱うことが可能になる。

インストール手順

インストール情報
項目 説明
配布元 Nextcloud
リポジトリー nextcloud/server: ☁️ Nextcloud server, a safe home for all your data
手順
依存情報
依存先 (必須)
  • Webサーバー (Apache HTTP Server)
  • PHP 7.0+
  • PHP module (ctype, curl, dom, GD, iconv, JSON, libxml 2.7.0+,
    mbstring, openssl, posix, session, SimpleXML, XMLReader, XMLWriter, zip, zlib)
  • PHP DBコネクター (pdo_sqlite, pdo_mysql, pdo_pgsql (PostgreSQL 9.0+)のどれか)
依存先 (任意)
依存元
sh -eux <<-"EOT"
LOCAL=~/.local PKG=nextcloud VER=15.0.6 TAG=v$VER
mkdir -p "$LOCAL/var/www/html"
cd "$LOCAL/var/www/html"

if command -v git >/dev/null; then [ -e $PKG ] || git clone --depth 1 https://github.com/nextcloud/server $PKG cd $PKG git fetch --depth 1 origin tag $TAG git checkout -f $TAG
git submodule update --init --depth 1 --progress
else [ -e $PKG-$VER ] || wget https://download.nextcloud.com/server/releases/$PKG-$VER.tar.bz2 tar -xf $PKG-$VER.* mv $PKG-$VER $PKG cd $PKG fi

php occ maintenance:install --admin-user "admin" --admin-pass "admin" --database "sqlite" # php occ maintenance:install --admin-user "admin" --admin-pass "admin" \ # --database "mysql" --database-name "nextcloud" --database-user "root" --database-pass "password"
EOT

インストール例
日付 バージョン OS 依存関係
2019-04-28 15.0.6 Ubuntu 18.04 PHP 7.3.4, Apache HTTP Server 2.4.39

必須のPHPの拡張機能が多数存在するが,cURL, GD, mbstring, OpenSSL, zip, zlibがあればNextcloud 16.0.0のインストールはできた。

なお,2019-04-28時点での最新バージョン (16.0.0, 15.0.7) だと付属するアプリが少なかった。そのため,最新の1個前のバージョンを使うのがよいだろう。

~/.local/var/www/html/DocumentRootとして,その下にNextcloudをインストールした。なお,ユーザー権限で動作させるために待機ポートは8080としている (参考: Apache HTTP Serverの起動設定)。

データベースにsqlite以外を使う場合,--databaseオプションでデータベース種類 (sqlite, mysql, pgsql, oci) を指定し,--database-name, --database-user, --database-passで対応するデータベース名,ユーザー名,パスワードを指定する。

コマンドラインでインストールしない場合,コマンドの代わりにhttp://localhost:8080/nextcloud/にアクセスして,管理ユーザーのユーザー名とパスワードやデータベースの項目を画面に入力することでインストールする。

URL設定

デフォルトだと,アクセス時のURLが「https://example.org/nextcloud/index.php/s/Sv1b7krAUqmF8QQ」のようにindex.phpが間に入ってしまう。これを取り除く。

Apacheのmod_envとmod_rewriteが有効であり,.htaccessが書き込み可能であることが前提となる。

mod_envとmod_rewriteが有効であることは,以下のコマンドの応答で確認できる。

apachectl -M | grep -e env_module -e rewrite_module
 env_module (shared)
 rewrite_module (shared)

何も表示されない場合,mod_envもmod_rewriteも有効になっていない。その場合,httpd.confで以下の記述のコメントアウトを解除するか,この内容を記述する。

LoadModule env_module modules/mod_env.so
LoadModule rewrite_module modules/mod_rewrite.so

最後に以下のコマンドでApacheを再起動する。

apachectl restart

URLの変更のために,config/config.phpに'overwrite.cli.url''htaccess.RewriteBase'の項目を指定する。'overwrite.cli.url'にNextcloudのURLを指定し,'htaccess.RewriteBase'にリダイレクト先のURLを指定する。

  'overwrite.cli.url' => 'http://localhost:8080/nextcloud',
  'htaccess.RewriteBase' => '/nextcloud',

URLがサブディレクトリーではなくドメインの場合,以下のように直下にリダイレクト先を変更する。

  'overwrite.cli.url' => 'http://localhost:8080/',
  'htaccess.RewriteBase' => '/',

設定後,nextcloud/直下で以下のコマンドにより.htaccessに内容を反映させる。

php occ maintenance:update:htaccess

起動確認

最後に,Webブラウザーでアクセスし,ログインできることを確認する。

インストールしたURL (例: http://localhost:8080/nextcloud/ )にアクセスする。

Nextcloudのログイン画面

[Username]と[Password]に,インストール時に指定した内容 (例: [admin]) を入力して[Log in]を選択する。

Nextcloudのログイン後画面

無事にログインできればNextcloudのインストールは完了となる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です