Nextcloud on Lollipop rental server

ロリポップは月440円のライトプランでも、200Gの容量がある。3年契約なら、月220円と格安。
WordPressにしか使っていなかったが、nextcloudをインストールするとクラウドとして快適に使える。

サブディレクトリを作成し、サブドメインの設定、独自SSL証明書導入、WAFオフ、海外アタックガードオフ。phpはCGI版を選択。モジュール版では、memory limitが変更できない。
https://nextcloud.comにアクセス。Get Nextcloud、Server pak php.iniを編集し、php_value, php_flagを利用可能にするages、Web Installerからsetup-nextcloud.phpをダウンロード。
ロリポップのサブディレクトリにアップロード。
https://SUBDOMAIN/setup-nextcloud.phpにアクセスするとインストールが始まる。
インストールするディレクトリは、ピリオド。
管理者アカウントの情報を入力して、MySQLを選択。データベースは、1つしか作成できないので、既存のものを使用。MySQL5で、WordPressとも共用になるが、接頭語がつくので問題なさそう。

管理者アカウント、Settings、Administrations、メール設定。
SMTP mode, Encryption SSL/TLS, Method login。
ユーザアカウントを作成。

Nextcloud Hub II (23.0.1)がインストールできたが、Administration、Overviewで確認すると、下記のエラーが出ている。
The PHP memory limit is below the recommended value of 512MB.
phpのcgi版では、php.iniの編集で”php_value, php_flagを利用可能にする”をonにして、.htacccessを編集して、”php_value memory_limit 512M”を追記すると解消する。.user.iniに、memory_limit = 512Mを追記する場合は、php_value, php_flagを利用可能にする必要はない。
.htaccessはアップデートで更新されてしまい、.user.iniもメジャーアップデートで初期化されてしまう。
Administration, Systemでphpの設定が確認できる。
モジュール版では対応できない。

The PHP OPcache module is not properly configured.
ロリポップのメニューからphp.iniを編集して、opcahe.enableをonにする。
モジュール版では対応できない。

Your installation has no default phone region set.
./config/config.phpに’default_phone_region’ => ‘JP’, を追加する。

The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. 
./config/config.phpに’trusted_proxies’ => array ( 0 => ‘xxx.xxx.xxx.xxx’,),を追加して、サーバーのIPをセットする。

The “Strict-Transport-Security” HTTP header is not set to at least “15552000” seconds.
phpのモジュール版では、.htaccessに下記を加えると解消するが、phpがcgi版では効果がない。
Header set Strict-Transport-Security “max-age=31536000; includeSubDomains;preload”

ほかにも下記の警告が出ているが、とりあえず動いている。
MySQL is used as database but does not support 4-byte characters. 
No memory cache has been configured.
The PHP modules “gmp” and/or “bcmath” are not enabled. 
MySQL version “5.6.23-log” is used. 

Androidでは、nextcloudのアプリをインストールすると便利だが、同期機能はないので、必要なら別ソフトのインストールが必要。
Windowsのアプリは同期ができる。

管理者のAppsメニューで、Edit Files with LibreOfficeを有効にすると、ファイルのドロップダウンメニューにLibreOfficeによる編集が追加される。ローカルにLibreOfficeがあれば、ダウンロードすることなくWebDAV経由で直接オフィスファイルを編集できるので、少しレスポンスは下がるがとても便利。
Windowsでも利用できるが、Debian 11ではLibreOfficeのバージョンが古いので対応していない。
OnlyOfficeのサーバを立てれば、ブラウザでの直接編集が可能になるようだが、サーバーのスペック要求は大きいようだ。

httpのアクセスになると面倒なので、.htaccessにhttpsへのリダイレクトを追記。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

Administration settings, Overview, Open updaterでアップデートできる。
memory_limitを512Mに変更していないと、23.0.2から23.0.6へのupdateに失敗した。
memory_limitを変更後に、./data/updater-xxxのフォルダを削除してやり直す。
その後24.0.2までupdateした。
update channelは、Stableだと頻回に更新があるので、Enterpriseの方が保守的で良さそう。
アップデートをせずに放置していたら、phpのバージョンアップでエラーが発生。
nextcloud 24はunsupportedになっているので、慌てて、順番に24.0.12, 25.0.7,26.0.2, 27.0.0までアップデート。
php 8.2モジュール版でも無事にアップデートできた。
とりあえず、一つ前のバージョンに止めておく。

アップデート後のデータベース修復にはoccの実行が必要。
ライトプランだとsshが使えないので、cronを利用してoccを実行し、結果はメールで確認する。
phpもoccも絶対パスを使用する。
#!/bin/sh
/usr/local/bin/php8.0 /home/users/2/doman-user/web/SUBDOMAIN/occ db:add-missing-indices
echo y | /usr/local/bin/php8.2 /home/users/2/doman-user/web/SUBDOMAIN/occ db:convert-filecache-bigint
必要に応じて、yesを自動入力させる。
memory limit below 512Mのエラーが表示されるが正常終了できる。
NextcloudのApp、ToolsにOCC WebというOCC実行環境があるが、Version 23までしか対応していない。db:add-missing-indicesはnextcloud 26までは実行できたが、27ではダメであった。

ロリポップのphp初期設定。
8.1 module, Version: 8.1.8
Memory limit: 300 MB, Max execution time: 120, Upload max size: 100 MB
8.1 CGI, Version: 8.1.8; 8.0 CGI, Version: 8.0.21; 7.4 CGI, Version: 7.4.30
Memory limit: 128 MB, Max execution time: 3600, Upload max size: 20 MB
8.2 module, Version: 8.2.7
Memory limit: 314.6 MB, Max execution time: 120, Upload max size: 104.9 MB
Extensions: Core, date, libxml, openssl, pcre, sqlite3, zlib, bcmath, bz2, calendar, ctype, curl, dom, hash, fileinfo, filter, ftp, gd, gettext, json, iconv, SPL, intl, session, mbstring, standard, mysqlnd, exif, mysqli, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, random, Reflection, imap, SimpleXML, soap, sockets, sodium, tidy, tokenizer, xml, xmlreader, xmlwriter, xsl, zip, apache2handler, imagick, OAuth, xmlrpc, Zend OPcache

WAFを使用すると、FileなどのDetailsが表示されず、Error while loading the file dataのエラーとなる。

PHPのCGI版を使用すると、WebDAVでのアクセスができない。モジュール版なら問題ないが前述のようにmemory_limitを変更できないので、updateでエラーが起こる。
Edit Files with LibreOfficeが便利なので、update以外の時はモジュール版で使用するのが当面便利。

Nextcloudのユーザパスワードを変更すると、Edit Files with LibreOfficeを利用する際に、LibreOffice側で保持しているパスワードが更新できない。
Tools, Options, Security, Passwords for Web Connectionsで、connectionsをクリアして、再設定する。

Backgroud jobsをcronにして、ロリポップでcron設定
直接phpを実行できないので、スクリプトで実行させる。
#!/bin/sh
PP=/home/users/2/ACCOUNT/web/
/usr/local/bin/php8.2 ${PP}nextcloud/cron.php

コメント