diff --git a/CHANGELOG-8.5.6-f.md b/CHANGELOG-8.5.6-f.md new file mode 100644 index 0000000..139da86 --- /dev/null +++ b/CHANGELOG-8.5.6-f.md @@ -0,0 +1,29 @@ +# Changelog - Version 8.5.6-f + +## 修正 + +### SMTPパスワードファイルをPHP-FPMワーカーから読めない問題を修正 + +`smtp.auth.enabled: true` でSMTP送信メールを設定した際、msmtpが以下のエラーで認証情報を取得できず、メール送信に失敗する問題を修正しました。 + +``` +cat: can't open '/etc/smtp-secrets/password': Permission denied +``` + +**原因**: `/etc/smtp-secrets/password` を投影するSecretボリュームの `mode` が `0600`(所有者=rootのみ読み取り可)になっていました。msmtp は PHP の `mail()` 呼び出し経由で **PHP-FPMワーカー(`www-data` 等の非rootユーザー)** として実行されるため、rootのみ読み取り可のファイルを読めませんでした。 + +**対応**: `templates/deployment.yaml` の `smtp-secrets` ボリュームの `mode` を `0644`(全ユーザー読み取り可)に変更しました。このファイルはPod内にのみ存在し外部からアクセスできないため、許容できるトレードオフです。 + +## アップグレード手順 + +```bash +helm repo update +helm upgrade <リリース名> cafepieters/phpfpm --version 8.5.6-f -f values.yaml +``` + +Pod再起動後、SMTP経由のメール送信が正常に動作するようになります。 + +--- + +**リリース日**: 2026-07-19 +**担当**: プロサーバーエンジニア(Claude) diff --git a/CLAUDE.md b/CLAUDE.md index dd197ca..ffd85c6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -22,6 +22,12 @@ Raspberry Pi などのベアメタルで稼働することを想定した、Kube ## チャート改修履歴 +### SMTPパスワードSecretの権限を0600→0644に修正(2026-07-19, v8.5.6-f) + +`smtp-secrets` ボリュームの `mode: 0600` が原因で、rootではなく `www-data`(PHP-FPMワーカー)として動く msmtp が `/etc/smtp-secrets/password` を読めず、SMTP認証に失敗する不具合を修正。`0644` に変更(Pod内にしか存在しないファイルのため許容範囲)。 + +**対象ファイル**: `templates/deployment.yaml`, `Chart.yaml`, `CHANGELOG-8.5.6-f.md` + ### PVCルートを /var/www にマウント + /composer を使い捨て化(2026-07-19, v8.5.6-e) php-fpm コンテナのマウントを「`html` サブパスのみ」から「PVCルート → `/var/www`」に変更。`html/` は公開フォルダ、それ以外(`/var/www/<任意>`)は非公開ファイルの格納先として使える。nginx は `html` サブパスのみマウントするため非公開分は公開されない。あわせて `/composer` のPVC永続化マウントを廃止し、Pod再起動ごとにクリーン再構築される使い捨て領域とした(マルウェア混入対策、ユーザー要望)。永続化したい場合は `workingDir` に `/var/www/composer` 等を指定。 diff --git a/Chart.yaml b/Chart.yaml index 655d743..fa6bdad 100644 --- a/Chart.yaml +++ b/Chart.yaml @@ -2,6 +2,6 @@ apiVersion: v2 name: phpfpm description: Nginx + PHP-FPM Helm Chart with external DB and optional Selenium support type: application -version: 8.5.6-e +version: 8.5.6-f appVersion: "8.5.6" icon: https://upload.wikimedia.org/wikipedia/commons/thumb/2/27/PHP-logo.svg/330px-PHP-logo.svg.png diff --git a/templates/deployment.yaml b/templates/deployment.yaml index 6bc597c..c67937c 100644 --- a/templates/deployment.yaml +++ b/templates/deployment.yaml @@ -287,6 +287,9 @@ spec: items: - key: password path: password - mode: 0600 + # 0600だとSecretボリュームの所有者はroot、 + # msmtpはPHP-FPMワーカー(www-data等の非root)から実行されるため読めない + # → 全ユーザー読み取り可にする(ボリュームはPod内にしか存在しないため許容範囲) + mode: 0644 {{- end }} {{- end }} \ No newline at end of file