ownCloudの管理→一般に行くとこんな警告が出ます。
セキュリティ&セットアップ警告
- トランザクションによるファイルのロックは、既定の低速データベースによるロックではなく、メモリベースによるロックを使用するように構成する必要があります。詳細については、ドキュメント↗ を参照してください。
- HTTP ヘッダ の “Strict-Transport-Security” が少なくとも “15552000” 秒に設定されていません。 セキュリティを強化するため、セキュリティTipsを参照して、HSTS を有効にすることをおすすめします。
- メモリキャッシュが設定されていません。パフォーマンスを向上するために、可能であれば memcache を設定してください。 より詳しい情報については、を参照してください。
インストールガイド ↗をもう一度チェックして、ログ にあるエラーまたは警告について確認してください。
しかし、何をどうしろってのがよくわからないので調べました。
最初のトランザクションによるファイルのロックはマニュアルによると、 If your ownCloud server still has the File Locking app, you must visit your Apps page to verify that it is disabled; the File Locking app and Transactional File Locking cannot both operate at the same time. ということだけど、Appsに行ってもそんなもんはない。結局三つめのメモリキャッシュを設定したらなおりました。
二つめのStrict-Transport-Securityに関しては、https://doc.owncloud.com/server/10.4/admin_manual/configuration/server/harden_server.html#enable-http-strict-transport-security に従い、/etc/apache2/sites-enabled/default-ssl.conf の最後のほうに
<IfModule mod_headers.c>
Header always set Strict-Transport-Security “max-age=15552000; includeSubDomains”
</IfModule>
</VirtualHost>
</IfModule>
としてからapache2をリスタートして解決。
みっつめはとても苦労しました。PHP7.1とPHP7.3が混在してたこともややこしくしてたけど、とりあえずやったことを列挙しておきます。たぶん必要ないことも含め。基本のマニュアルは https://doc.owncloud.org/server/10.4/admin_manual/configuration/server/caching_configuration.html#memcached です。
sudo apt install php-apcu redis-server redis
sudo phpenmod apcu
sudo phpenmod redis
sudo systemctl restart apache2
ここで
sudo -u www-data php /var/www/owncloud/occ integrity:check-core
として何もエラーが出なければOK。あとは /var/www/owncloud/config/config.php の最後に
‘memcache.local’ => ‘\OC\Memcache\APCu’,
‘memcache.locking’ => ‘\OC\Memcache\Redis’,
‘redis’ => [
‘host’ => ‘localhost’,
‘port’ => 6379,
],
と追加しておけばいいです。そして再度apache2をリスタート。