diff --git a/CHANGELOG-8.5.6-g.md b/CHANGELOG-8.5.6-g.md new file mode 100644 index 0000000..6f5bd98 --- /dev/null +++ b/CHANGELOG-8.5.6-g.md @@ -0,0 +1,46 @@ +# Changelog - Version 8.5.6-g + +## 修正 + +### /etc/msmtprc をPHP-FPMワーカーから読めない問題を修正 + +v8.5.6-f で `/etc/smtp-secrets/password`(SMTPパスワード)の権限を修正しましたが、 +`/etc/msmtprc` 自体にも同様の問題が残っており、以下のエラーでメール送信が失敗していました。 + +``` +ignoring system configuration file /etc/msmtprc: Permission denied +ignoring user configuration file /home/www-data/.msmtprc: No such file or directory +falling back to default account +msmtp: account default not found: no configuration file available +exit:78 +``` + +**原因**: 起動スクリプト(rootで実行)が `/etc/msmtprc` を作成した後、`chmod 600` していたため、 +PHP-FPMワーカー(`www-data` 等の非root)から読めませんでした。 + +**対応**: `templates/deployment.yaml` の `chmod 600 /etc/msmtprc` を `chmod 644` に変更しました。 +`msmtprc` には実パスワードは含まれず(`passwordeval` で別ファイルから取得する設計)、 +ホスト名・ポート・ユーザー名などの設定のみのため、読み取り権限を広げても実害はありません。 + +## アップグレード手順 + +```bash +helm repo update +helm upgrade <リリース名> cafepieters/phpfpm --version 8.5.6-g -f values.yaml +``` + +Pod再起動後、SMTP経由のメール送信が正常に動作するようになります。 + +### 動作確認 + +```bash +kubectl exec -n -c php-fpm -- su -s /bin/sh www-data -c \ + 'printf "To: test@example.com\r\nFrom: noreply@example.com\r\nSubject: test\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\n\r\nbody\r\n" | /usr/bin/msmtp -t --debug; echo "exit:$?"' +``` + +`exit:0` で成功です。 + +--- + +**リリース日**: 2026-07-19 +**担当**: プロサーバーエンジニア(Claude) diff --git a/CLAUDE.md b/CLAUDE.md index ffd85c6..ae42cdd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -22,6 +22,12 @@ Raspberry Pi などのベアメタルで稼働することを想定した、Kube ## チャート改修履歴 +### /etc/msmtprc の権限を0600→0644に修正(2026-07-19, v8.5.6-g) + +v8.5.6-f のフォローアップ。`/etc/smtp-secrets/password` の権限修正だけでは不十分で、起動スクリプトが `cp` 後に `chmod 600` していた `/etc/msmtprc` 自体もrootのみ読み取り可のままだった(msmtp: account default not found, exit:78)。`chmod 644` に変更。msmtprcには平文パスワードは含まれない(passwordeval経由で別ファイル参照)ため実害なし。 + +**対象ファイル**: `templates/deployment.yaml`, `Chart.yaml`, `CHANGELOG-8.5.6-g.md` + ### 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内にしか存在しないファイルのため許容範囲)。 diff --git a/Chart.yaml b/Chart.yaml index fa6bdad..93ada2a 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-f +version: 8.5.6-g 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 c67937c..2547ef9 100644 --- a/templates/deployment.yaml +++ b/templates/deployment.yaml @@ -179,8 +179,12 @@ spec: echo "Configuring SMTP for mail sending..." # msmtprc設定ファイルをコピー + # msmtpはPHP-FPMワーカー(www-data等の非root)から実行されるため、 + # rootが作成するこのファイルも読み取り可にする必要がある + # (実パスワードはpasswordeval経由で別ファイルから取得するため、 + # msmtprc自体に平文パスワードは含まれない) cp /etc/smtp-config/msmtprc /etc/msmtprc - chmod 600 /etc/msmtprc + chmod 644 /etc/msmtprc # PHP設定をphp.ini.d/に作成 cat > /usr/local/etc/php/conf.d/99-smtp.ini << 'PHP_SMTP_EOF'