nextcloud

Nextcloud 入れてみる

前回 ownCloud の導入に挑戦したところ残念な結果に終わってしまったので、今度は ownCloud のフォークである Nextcloud のセットアップにチャレンジしたいと思いまっす。

余談だけど、こういう技術系の記事は今後ちょくちょく書いていこうと思っているんでヨロシク。誰かの役に立つかもしれないしね。

前提条件

  • Arch Linux
  • Nginx
  • PHP 7
  • MariaDB

Ubuntu とか CentOS じゃなくてすまんね。

インストール

Arch Wiki には AUR と書いてあったが、どうやら pacman で普通にインストールできるようだ。

# sudo pacman -S nextcloud

成功すれば Arch Linux の場合 /usr/share/webapps/nextcloud というディレクトリができているはず。ここが Nextcloud のホームなので覚えておこう。

パーミッションとかの設定

早速嫌な単語が出てきましたね。まだ引き返せるよ?

さきほど作成された Nextcloud のホームディレクトリはワケあってパーミッションの設定が適切じゃなかったり、必要なサブディレクトリが無かったりするみたい。で、その辺を全部適当にやってくれるスクリプトが用意されているのでそれを実行する。

# sudo sh /usr/bin/set-nc-perms runtime
Creating possible missing Directories
chmod Files and Directories
chown Directories
chmod/chown .htaccess
chmod/chown .user.ini

すごく簡単。

データベースの準備

Nextcloud さんが使うデータベースとアカウントを準備する。

# mysql -u root -p
mysql> CREATE DATABASE `nextcloud` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
mysql> CREATE USER `nextcloud`@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON `nextcloud`.* TO `nextcloud`@`localhost`;
mysql> \q

password の部分は適当な文字列に置き換えてくださいね。

ウェブサーバーの設定

あとは一般的なウェブサイトとほぼ同じように Nginx を設定します。
重要なポイントとしては、

  • ドキュメントルートとして Nextcloud のホームディレクトリを指定する
  • フル SSL にする(ポート 443 のみを使う)

といった感じでしょうか。Nextcloud の公式ドキュメントの例がほぼそのまま使えると思います。俺は自分なりにカスタマイズしてるけどね。

問題は SSL 証明書なんだけど、Let’s Encrypt という便利なモノがある。まあこれについては後ほど。

PHP のモジュール追加

Nextcloud は PHP で動作しているのだけれど、いくつか追加で必要なモジュールがある。ここでまとめてインストールしてしまおう。

# sudo pacman -S php-gd php-intl php-mcrypt php-apcu

で、こいつら有効化しなきゃならないので、PHP の設定ファイル: /etc/php/php.ini を開いて以下の行を探し、行頭に # があったら # を消す。

extension=gd.so
extension=iconv.so
extension=xmlrpc.so
extension=zip.so
extension=pdo_mysql.so
extension=bz2.so
extension=curl.so
extension=intl.so
extension=mcrypt.so

すごくめんどくさい。

あとは大丈夫だよね

Nginx を再起動し、自分で設定した URL にブラウザでアクセスしてみよう。自分で好きなユーザー名とパスワードを決めて、今回作成したデータベースの情報を正しく入力すればこのような表示になる。


今回はとりあえず最低限アプリが動作する状態にすることを目標に解説してみました。本当はセキュリティやパフォーマンスのためにもうちょっとチューニングが必要なんだけど、それはまた後日ってことで。

Leave a comment - コメントを残す