と、これでめでたくApacheからNginxに移行できたのだけど、Nextcloudの設定 -> 概要画面を見るといくつか警告が表示されていた。ただ、これらはNginxに乗り換えたからというより、今までが FastCGI が有効化されてなかったからな気がする。看板に偽りありだが、ご容赦願いたい。
警告内容
セットアップに関して警告がいくつかあります。
- PHPのシステム環境変数が正しく設定されていないようです。getenv(“PATH”) コマンドでテストして何も値を返さないことを確認してください。 PHP設定の注意事項と php-fpmを利用する場合のサーバー向け設定をインストールドキュメント↗で確認してください。
- PHPのメモリ制限が推奨値の512MB以下です。
- “Strict-Transport-Security” HTTPヘッダが最低でも “15552000” 秒に設定されていません。セキュリティを強化するには、セキュリティTips ↗で解説しているHSTSを有効にすることを推奨します。
- このインスタンスには推奨されるPHPモジュールがいくつかありません。 パフォーマンスの向上と互換性の向上のために、それらをインストールすることを強くお勧めします。
imagick
PHPのメモリ制限が推奨値の512MB以下です。
/etc/php/7.4/apache2/php.ini
でなく/etc/php/7.4/fpm/php.ini
の方を修正すれば良い。
; Maximum amount of memory a script may consume
; http://php.net/memory-limit
-memory_limit = 128M
+memory_limit = 1024M
落とし穴?なのがsudo systemctl restart nginx.service
では反映されなくて FastCGI の設定なのでsudo systemctl status php7.4-fpm
とすることで、反映される。
PHPのシステム環境変数が正しく設定されていないようです。
コメントアウトされているPATHの部分を有効化すれば良いだけ。 php-fpm configuration notesに詳細が記述されている。
/etc/php/7.4/fpm/pool.d/www.conf
-;env[PATH] = /usr/local/bin:/usr/bin:/bin
+env[PATH] = /usr/local/bin:/usr/bin:/bin
“Strict-Transport-Security” HTTPヘッダが最低でも “15552000” 秒に設定されていません。
これはnginx
の設定ファイルでlocation ^~ /nextcloud
ブロックでadd_header Strict-Transport-Security "max-age=31536000; includeSubDomains;";
を追記すれば解消される。
imagickモジュールのインストールを推奨
sudo apt install php7.4-imagick
とインストールすればOK。
以上で、警告が出なくなった。