有馬総一郎のブログ

(彼氏の事情)

2020年12月05日 17:11:16 JST - 3 minute read - Linux

Nextcloudインストール

去年あたりまで ownCloudを使っていたが、 Nextcloudに乗り換えた。その時の、遅蒔きながらメモ。基本はownCloudと同じ。

phpの更新・設定

Software Requirements :: ownCloud Documentation

ownCloudよりも、Nextcloudの方がphpのバージョンが高いのを求められる傾向がある気がする。7.2でも動くみたいに書かれているが、バージョンか設定か7.3以上でないと動かなかった。

sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update
sudo apt-get upgrade
update-alternatives --list php
sudo update-alternatives --config php

Apache PHPモージュルのバージョン切替

7.0→7.3

sudo a2dismod php7.0
sudo a2enmod php7.3

7.3→7.0

sudo a2dismod php7.3
sudo a2enmod php7.0

Nextcloudサーバーをダウンロード・展開

ここらへんはownCloudと同じ。

wget https://download.nextcloud.com/server/releases/nextcloud-16.0.3.zip
sudo unzip nextcloud-16.0.3.zip -d /var/www/
sudo chown -R www-data:www-data /var/www/nextcloud

Database configuration — Nextcloud latest Administration Manual latest documentation

Nextcloudの構築

ユーザー作成の際、@の境目でキチンとシングルコーテーションで括らないと正しく作成されないので注意する

mysql -u root -p
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS nextcloud;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON nextcloud.* TO 'username'@'localhost' IDENTIFIED BY 'password';
FLUSH privileges;

Apache設定ファイル作成

apache-web-server-configuration

/etc/apache2/sites-available/nextcloud.conf

Alias /nextcloud "/var/www/nextcloud/"

<Directory /var/www/nextcloud/>
  Require all granted
  Options FollowSymlinks MultiViews
  AllowOverride All
  SSLRequireSSL
  Header always set Strict-Transport-Security "max-age=15553000; includeSubDomains; preload"

 <IfModule mod_dav.c>
  Dav off
 </IfModule>

 SetEnv HOME /var/www/nextcloud
 SetEnv HTTP_HOME /var/www/nextcloud

</Directory>

リンクを張る

sudo ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

Nextcloudの保管場所作成

mkdir /mnt/hdd/next_data
sudo chown -R www-data:www-data /mnt/hdd/next_data
sudo chmod 770 /mnt/hdd/next_data

これで、Nextcloudの画面をブラウザ(https://サーバーのIPアドレス/nextcloud/)で開いて、管理者ユーザー設定、デーダフォルダのパス、データベースなどの設定をすれば、使えるようになる。

PHPメモリー不足というエラー

しかし、Nextcloudはメモリー食いなのか?使い始めてしばらくするとエラーが起きるようになった。

PHP Fatal error:  Allowed memory size of 2097152 bytes exhausted (tried to allocate 4096 bytes) in /var/www/nextcloud/3rdparty/composer/autoload_static.php on line 409

ownCloudを使っていたとき、メモリーの設定を変えずに普通に使えていたが、メモリー不足というエラーを吐かれた。そもそもPHPの設定ファイルどこあるの?

$ php --ini
Configuration File (php.ini) Path: /etc/php/7.3/cli
Loaded Configuration File:         /etc/php/7.3/cli/php.ini
Scan for additional .ini files in: /etc/php/7.3/cli/conf.d
Additional .ini files parsed:      /etc/php/7.3/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.3/cli/conf.d/10-opcache.ini,
・・・後略・・・

The PHP memory limit is below the recommended value of 512MB - support - Nextcloud community

/etc/php/7.3/cli

memory_limit = -1
↓
memory_limit = 1024M
~$ php -i | grep memory_limit
memory_limit => 1024M => 1024M

ちなみにアホな私は512MBとか1GBなどと B を付けてしまったがために、何度もメモリー不足が解消されず、無駄な時を過した…

OPcacheの設定は特にしてない。やるなら↓と記述。

/etc/php/7.3/cli/conf.d/10-opcache.ini

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

これでメモリー不足のエラーは解消された。

アプリが便利

出鼻こそ挫かれたものの、やはりNextcloudにして、良かったなぁと実感したのはアプリをインストールした時だ。たまにFirefox上からインストールが上手くいかない(表示されない)時があるが、最近は問題ない。

  • KeeWeb

    特に、ブラウザで KeePass Password Safeが閲覧、編集できる KeeWebは便利で、Nextcloud上のKeePassのデータベースファイルを選択すれば自動でそのままロードしてくれる。ChromebookとかFire Tabletなど、クライアントツールをインストールできず、ブラウザしかないので、ありがたい。

    Nextcloud KeeWeb
  • Talk

    簡易的メッセージアプリ。勿論、既製品には及ばないが、管理者が自分なので勝手にアカウント作って、パスワード設定してこれ使いましょう、とすれば、LINE、Messengerなどプライバシーを邪魔されたくないグループにメール以外の通信手段として、このアプリを提供するのは意外と悪くない。ただ、ファイル共有がダイレクトにできなったりと、機能が最低限すぎて不便だが。

    Nextcloud Talk

ただのクラウドストレージサービスに留まならないところがNextcloudの魅力でもある。