diff --git a/CHANGELOG-8.5.6-c.md b/CHANGELOG-8.5.6-c.md new file mode 100644 index 0000000..4a58433 --- /dev/null +++ b/CHANGELOG-8.5.6-c.md @@ -0,0 +1,36 @@ +# Changelog - Version 8.5.6-c + +## 変更点 + +### Composerデフォルト導入先を `/var/www` から `/composer` に変更 + +v8.5.6-a で導入先をWebルート外の `/var/www` に変更しましたが、`/var/www` はWebルート `/var/www/html` の親ディレクトリであるため、ネストマウントの副産物としてPVCの `composer` サブパス内に空の `html/` ディレクトリが生成されていました(マウントポイント作成による正常動作だが紛らわしい)。 + +**対応**: デフォルトの `composer.workingDir` をWebルートと親子関係にない `/composer` に変更しました。これによりネストマウントが解消され、空フォルダは一切生成されなくなります。 + +## PHPコードでの利用 + +```php +require_once '/composer/vendor/autoload.php'; +``` + +※ `values.yaml` のコメントにも読み込み方法を明記しています。 + +## アップグレード手順 + +```bash +helm repo update +helm upgrade <リリース名> cafepieters/phpfpm --version 8.5.6-c -f values.yaml +``` + +## 互換性 + +- **注意**: v8.5.6-a/b で `/var/www/vendor/autoload.php` を参照するようにPHPコードを更新済みの場合は、`/composer/vendor/autoload.php` への再修正が必要です。 +- PVC上のデータは同じ `composer` サブパスを使用するため、既に移行済みの `composer.json` / `vendor/` はそのまま新しいマウント先(`/composer`)に引き継がれます。 +- 旧Webルート(`/var/www/html`)からの自動移行機能(v8.5.6-b)はそのまま動作します。 +- PVC上に残った空の `composer/html/` ディレクトリは、Pod再起動後は再作成されなくなるため、手動で削除すれば以後復活しません。 + +--- + +**リリース日**: 2026-07-19 +**担当**: プロサーバーエンジニア(Claude) diff --git a/CLAUDE.md b/CLAUDE.md index 6e1e2a8..b9168e5 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -22,6 +22,12 @@ Raspberry Pi などのベアメタルで稼働することを想定した、Kube ## チャート改修履歴 +### Composerデフォルト導入先を /composer に変更(2026-07-19, v8.5.6-c) + +`/var/www` はWebルート `/var/www/html` の親のため、ネストマウントでPVCの `composer` サブパス内に空の `html/` が生成されていた。デフォルトをWebルートと親子関係にない `/composer` に変更してネストを解消。autoloadは `require_once '/composer/vendor/autoload.php';`(values.yaml のコメントにも明記)。 + +**対象ファイル**: `values.yaml`, `templates/deployment.yaml`, `README.md`, `Chart.yaml`, `CHANGELOG-8.5.6-c.md` + ### 旧composer.jsonの自動移行 + mbstring依存の自動追加(2026-07-19, v8.5.6-b) v8.5.6-a のフォローアップ。起動時に `workingDir` に `composer.json` が無く旧Webルート `/var/www/html` にある場合、`composer.json` / `composer.lock` / `vendor/` を自動移行する。また `additionalPhpExtensions` に `mbstring` 指定時、ビルドに必要な `oniguruma-dev` を自動追加(GDと同じ仕組み)。 diff --git a/Chart.yaml b/Chart.yaml index 3755b97..735e21d 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-b +version: 8.5.6-c 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/README.md b/README.md index 3576990..ca61a5a 100644 --- a/README.md +++ b/README.md @@ -122,7 +122,7 @@ kubectl logs -l app.kubernetes.io/name=phpfpm -c nginx | パラメータ | 説明 | デフォルト | |-----------|------|-----------| | `composer.enabled` | Composer有効化 | `false` | -| `composer.workingDir` | Composer導入先ディレクトリ(`{workingDir}/vendor/autoload.php`) | `"/var/www"` | +| `composer.workingDir` | Composer導入先ディレクトリ(`{workingDir}/vendor/autoload.php`) | `"/composer"` | | `composer.packages` | インストールパッケージ | `[]` | | `composer.useComposerJson` | composer.json使用 | `false` | | `composer.composerJson` | composer.json内容 | `""` | @@ -239,12 +239,13 @@ persistence: ``` > **📌 Composerの導入先について** -> Composerパッケージはデフォルトで**Webルート外**の `/var/www` に導入されます(`composer.workingDir` で変更可能)。 +> Composerパッケージはデフォルトで**Webルート外**の `/composer` に導入されます(`composer.workingDir` で変更可能)。 > `vendor/` や `composer.json` がWeb経由で公開されないため、情報漏洩などのセキュリティリスクを回避できます。 +> また、Webルート(`/var/www/html`)と親子関係にないパスのため、ネストマウントによる空フォルダも生成されません。 > > PHPコードからは以下のように読み込みます: > ```php -> require_once '/var/www/vendor/autoload.php'; +> require_once '/composer/vendor/autoload.php'; > ``` > > 旧バージョン(Webルート直下 `/var/www/html` に導入)と同じ動作に戻す場合は `composer.workingDir: "/var/www/html"` を指定してください。 @@ -344,7 +345,7 @@ resources: **PHPコード例**: ```php