去年あたりまで 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など、クライアントツールをインストールできず、ブラウザしかないので、ありがたい。
-
Talk
簡易的メッセージアプリ。勿論、既製品には及ばないが、管理者が自分なので勝手にアカウント作って、パスワード設定してこれ使いましょう、とすれば、LINE、Messengerなどプライバシーを邪魔されたくないグループにメール以外の通信手段として、このアプリを提供するのは意外と悪くない。ただ、ファイル共有がダイレクトにできなったりと、機能が最低限すぎて不便だが。
ただのクラウドストレージサービスに留まならないところがNextcloudの魅力でもある。