有馬総一郎のブログ

(彼氏の事情)

2021年11月03日 01:54:46 JST - 2 minute read - Linux

ApacheからNginxに乗り換えたらNextcloudで警告が出たので修正する

と、これでめでたく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。

以上で、警告が出なくなった。