From 76a4a7874be14ac52e4cd32eb9833e2fd6118362 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 19 Jul 2026 15:13:51 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Composer=E3=83=87=E3=83=95=E3=82=A9?= =?UTF-8?q?=E3=83=AB=E3=83=88=E5=B0=8E=E5=85=A5=E5=85=88=E3=82=92=20/compo?= =?UTF-8?q?ser=20=E3=81=AB=E5=A4=89=E6=9B=B4=20(v8.5.6-c)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /var/www はWebルート /var/www/html の親ディレクトリのため、 ネストマウントの副産物としてPVCの composer サブパス内に 空の html/ ディレクトリが生成されていた。 デフォルトの composer.workingDir をWebルートと親子関係にない /composer に変更してネストマウント自体を解消。 - autoload読み込み: require_once '/composer/vendor/autoload.php'; (values.yaml のコメントにも明記) - PVCデータは同じ composer サブパスを使うため移行不要 - 旧Webルートからの自動移行機能(v8.5.6-b)は維持 Co-Authored-By: Claude Fable 5 --- CHANGELOG-8.5.6-c.md | 36 ++++++++++++++++++++++++++++++++++++ CLAUDE.md | 6 ++++++ Chart.yaml | 2 +- README.md | 9 +++++---- templates/deployment.yaml | 9 +++++---- values.yaml | 10 +++++++--- 6 files changed, 60 insertions(+), 12 deletions(-) create mode 100644 CHANGELOG-8.5.6-c.md 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