From 53f6898249c8dc387786e7da275b983a3f0d8c19 Mon Sep 17 00:00:00 2001 From: pieter Date: Fri, 21 Nov 2025 01:43:02 +0000 Subject: [PATCH] =?UTF-8?q?#=20WordPress=20with=20Nginx=20Helm=20Chart=20?= =?UTF-8?q?=20=E3=81=93=E3=81=AEHelm=E3=83=81=E3=83=A3=E3=83=BC=E3=83=88?= =?UTF-8?q?=E3=81=AF=E3=80=81Nginx=20+=20WordPress=20(PHP-FPM)=20=E6=A7=8B?= =?UTF-8?q?=E6=88=90=E3=82=92Kubernetes=E4=B8=8A=E3=81=AB=E3=83=87?= =?UTF-8?q?=E3=83=97=E3=83=AD=E3=82=A4=E3=81=97=E3=81=BE=E3=81=99=E3=80=82?= =?UTF-8?q?=20**bitnami/wordpress**=E3=81=AE=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E3=80=81=E3=83=87=E3=83=97=E3=83=AD=E3=82=A4=E5=BE=8C=E3=81=99?= =?UTF-8?q?=E3=81=90=E3=81=AB=E4=BD=BF=E7=94=A8=E5=8F=AF=E8=83=BD=E3=81=AA?= =?UTF-8?q?=E7=8A=B6=E6=85=8B=E3=81=A7=E8=B5=B7=E5=8B=95=E3=81=97=E3=81=BE?= =?UTF-8?q?=E3=81=99=E3=80=82=20=20##=20=E4=B8=BB=E3=81=AA=E6=A9=9F?= =?UTF-8?q?=E8=83=BD=20=20=E2=9C=85=20**=E8=87=AA=E5=8B=95=E3=82=A4?= =?UTF-8?q?=E3=83=B3=E3=82=B9=E3=83=88=E3=83=BC=E3=83=AB**:=20=E5=88=9D?= =?UTF-8?q?=E5=9B=9E=E3=83=87=E3=83=97=E3=83=AD=E3=82=A4=E6=99=82=E3=81=AB?= =?UTF-8?q?WordPress=E3=82=92=E8=87=AA=E5=8B=95=E3=82=BB=E3=83=83=E3=83=88?= =?UTF-8?q?=E3=82=A2=E3=83=83=E3=83=97=20=E2=9C=85=20**=E8=87=AA=E5=8B=95?= =?UTF-8?q?=E3=83=91=E3=82=B9=E3=83=AF=E3=83=BC=E3=83=89=E7=94=9F=E6=88=90?= =?UTF-8?q?**:=20=E7=AE=A1=E7=90=86=E8=80=85=E3=83=91=E3=82=B9=E3=83=AF?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=82=92=E6=8C=87=E5=AE=9A=E3=81=97=E3=81=AA?= =?UTF-8?q?=E3=81=84=E5=A0=B4=E5=90=88=E3=81=AF=E8=87=AA=E5=8B=95=E7=94=9F?= =?UTF-8?q?=E6=88=90=20=E2=9C=85=20**=E3=82=A2=E3=83=83=E3=83=97=E3=83=87?= =?UTF-8?q?=E3=83=BC=E3=83=88=E5=AF=BE=E5=BF=9C**:=20=E3=82=92=E5=89=8A?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...’自動セットアップ ✅ **自動パスワード生æˆ**: 管ç†è€…パスワードを指定ã—ãªã„å ´åˆã¯è‡ªå‹•ç”Ÿæˆ âœ… **アップデート対応**: | 298 ------------------ 1 file changed, 298 deletions(-) delete mode 100644 # WordPress with Nginx Helm Chart ã“ã®Helmãƒãƒ£ãƒ¼ãƒˆã¯ã€Nginx + WordPress (PHP-FPM) æ§‹æˆã‚’Kubernetes上ã«ãƒ‡ãƒ—ロイã—ã¾ã™ã€‚ **bitnami/wordpress**ã®ã‚ˆã†ã«ã€ãƒ‡ãƒ—ロイ後ã™ãã«ä½¿ç”¨å¯èƒ½ãªçŠ¶æ…‹ã§èµ·å‹•ã—ã¾ã™ã€‚ ## ä¸»ãªæ©Ÿèƒ½ ✅ **自動インストール**: åˆå›žãƒ‡ãƒ—ロイ時ã«WordPressを自動セットアップ ✅ **自動パスワード生æˆ**: 管ç†è€…パスワードを指定ã—ãªã„å ´åˆã¯è‡ªå‹•ç”Ÿæˆ âœ… **アップデート対応**: diff --git a/# WordPress with Nginx Helm Chart ã“ã®Helmãƒãƒ£ãƒ¼ãƒˆã¯ã€Nginx + WordPress (PHP-FPM) æ§‹æˆã‚’Kubernetes上ã«ãƒ‡ãƒ—ロイã—ã¾ã™ã€‚ **bitnami/wordpress**ã®ã‚ˆã†ã«ã€ãƒ‡ãƒ—ロイ後ã™ãã«ä½¿ç”¨å¯èƒ½ãªçŠ¶æ…‹ã§èµ·å‹•ã—ã¾ã™ã€‚ ## ä¸»ãªæ©Ÿèƒ½ ✅ **自動インストール**: åˆå›žãƒ‡ãƒ—ロイ時ã«WordPressを自動セットアップ ✅ **自動パスワード生æˆ**: 管ç†è€…パスワードを指定ã—ãªã„å ´åˆã¯è‡ªå‹•ç”Ÿæˆ âœ… **アップデート対応**: b/# WordPress with Nginx Helm Chart ã“ã®Helmãƒãƒ£ãƒ¼ãƒˆã¯ã€Nginx + WordPress (PHP-FPM) æ§‹æˆã‚’Kubernetes上ã«ãƒ‡ãƒ—ロイã—ã¾ã™ã€‚ **bitnami/wordpress**ã®ã‚ˆã†ã«ã€ãƒ‡ãƒ—ロイ後ã™ãã«ä½¿ç”¨å¯èƒ½ãªçŠ¶æ…‹ã§èµ·å‹•ã—ã¾ã™ã€‚ ## ä¸»ãªæ©Ÿèƒ½ ✅ **自動インストール**: åˆå›žãƒ‡ãƒ—ロイ時ã«WordPressを自動セットアップ ✅ **自動パスワード生æˆ**: 管ç†è€…パスワードを指定ã—ãªã„å ´åˆã¯è‡ªå‹•ç”Ÿæˆ âœ… **アップデート対応**: deleted file mode 100644 index 7743ad2..0000000 --- a/# WordPress with Nginx Helm Chart ã“ã®Helmãƒãƒ£ãƒ¼ãƒˆã¯ã€Nginx + WordPress (PHP-FPM) æ§‹æˆã‚’Kubernetes上ã«ãƒ‡ãƒ—ロイã—ã¾ã™ã€‚ **bitnami/wordpress**ã®ã‚ˆã†ã«ã€ãƒ‡ãƒ—ロイ後ã™ãã«ä½¿ç”¨å¯èƒ½ãªçŠ¶æ…‹ã§èµ·å‹•ã—ã¾ã™ã€‚ ## ä¸»ãªæ©Ÿèƒ½ ✅ **自動インストール**: åˆå›žãƒ‡ãƒ—ロイ時ã«WordPressを自動セットアップ ✅ **自動パスワード生æˆ**: 管ç†è€…パスワードを指定ã—ãªã„å ´åˆã¯è‡ªå‹•ç”Ÿæˆ âœ… **アップデート対応**: +++ /dev/null @@ -1,298 +0,0 @@ -# WordPress with Nginx Helm Chart - -ã“ã®Helmãƒãƒ£ãƒ¼ãƒˆã¯ã€Nginx + WordPress (PHP-FPM) æ§‹æˆã‚’Kubernetes上ã«ãƒ‡ãƒ—ロイã—ã¾ã™ã€‚ -**bitnami/wordpress**ã®ã‚ˆã†ã«ã€ãƒ‡ãƒ—ロイ後ã™ãã«ä½¿ç”¨å¯èƒ½ãªçŠ¶æ…‹ã§èµ·å‹•ã—ã¾ã™ã€‚ - -## ä¸»ãªæ©Ÿèƒ½ - -✅ **自動インストール**: åˆå›žãƒ‡ãƒ—ロイ時ã«WordPressを自動セットアップ -✅ **自動パスワード生æˆ**: 管ç†è€…パスワードを指定ã—ãªã„å ´åˆã¯è‡ªå‹•ç”Ÿæˆ -✅ **アップデート対応**: 既存ã®DBãŒã‚ã‚‹å ´åˆã¯åˆæœŸåŒ–をスキップ -✅ **ads.txt対応**: values.yamlã‹ã‚‰ ads.txt ã‚’é…ç½®å¯èƒ½ -✅ **本番環境対応**: セキュアãªSecret管ç†ã€HAæ§‹æˆ - -## アーキテクãƒãƒ£ - -- **Nginx**: リãƒãƒ¼ã‚¹ãƒ—ロキシãŠã‚ˆã³é™çš„ファイルé…ä¿¡ -- **WordPress (PHP-FPM)**: WordPressアプリケーション実行 -- **共有ボリューム**: Nginx 㨠WordPress é–“ã§ãƒ•ァイルを共有 - -## 剿æ¡ä»¶ - -- Kubernetes 1.19+ -- Helm 3.0+ -- PersistentVolume プロビジョナー(永続化を有効ã«ã™ã‚‹å ´åˆï¼‰ -- MySQL/MariaDB データベース(別途デプロイãŒå¿…è¦ï¼‰ - -## インストール方法 - -### 1. ãƒãƒ£ãƒ¼ãƒˆã®æº–å‚™ - -```bash -# ãƒãƒ£ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®ä½œæˆ -mkdir -p wordpress-nginx/templates - -# å¿…è¦ãªãƒ•ァイルをコピー -# Chart.yaml, values.yaml, templates/* -``` - -### 2. MySQLã®ãƒ‡ãƒ—ロイ(必è¦ãªå ´åˆï¼‰ - -```bash -# Helm を使用ã—㦠MySQL をデプロイ -helm repo add bitnami https://charts.bitnami.com/bitnami -helm install mysql bitnami/mysql \ - --set auth.rootPassword=rootpassword \ - --set auth.database=wordpress \ - --set auth.username=wordpress \ - --set auth.password=changeme -``` - -### 3. WordPressã®ãƒ‡ãƒ—ロイ - -```bash -# デフォルト値ã§ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ« -helm install my-wordpress ./wordpress-nginx - -# カスタム値ã§ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ« -helm install my-wordpress ./wordpress-nginx \ - --set wordpress.dbPassword=your-secure-password \ - --set service.type=LoadBalancer - -# values.yaml を使用 -helm install my-wordpress ./wordpress-nginx -f custom-values.yaml -``` - -## 設定パラメータ - -### 基本設定 - -| パラメータ | 説明 | デフォルト値 | -|-----------|------|-------------| -| `replicaCount` | レプリカ数 | `2` | -| `image.nginx.registry` | Nginxイメージレジストリ | `docker.io` | -| `image.nginx.repository` | Nginxイメージリãƒã‚¸ãƒˆãƒª | `nginx` | -| `image.nginx.tag` | Nginxイメージタグ | `1.29.3-alpine-perl` | -| `image.wordpress.registry` | WordPressイメージレジストリ | `docker.io` | -| `image.wordpress.repository` | WordPressイメージリãƒã‚¸ãƒˆãƒª | `wordpress` | -| `image.wordpress.tag` | WordPressイメージタグ | `6.8.3-php8.4-fpm-alpine` | - -### WordPress設定 - -| パラメータ | 説明 | デフォルト値 | -|-----------|------|-------------| -| `wordpress.dbHost` | データベースホスト | `mysql-service` | -| `wordpress.dbName` | データベースå | `wordpress` | -| `wordpress.dbUser` | データベースユーザー | `wordpress` | -| `wordpress.dbPassword` | データベースパスワード | `changeme` | -| `wordpress.tablePrefix` | テーブルプレフィックス | `wp_` | -| `wordpress.siteTitle` | サイトタイトル | `My WordPress Site` | -| `wordpress.siteUrl` | サイトURL | `http://localhost` | -| `wordpress.adminUser` | 管ç†è€…ユーザーå | `admin` | -| `wordpress.adminPassword` | 管ç†è€…パスワード(空=自動生æˆï¼‰ | `""` | -| `wordpress.adminEmail` | 管ç†è€…メール | `admin@example.com` | -| `wordpress.adsTxt.enabled` | ads.txtを有効化 | `false` | -| `wordpress.adsTxt.content` | ads.txtã®å†…容 | `""` | - -### Service設定 - -| パラメータ | 説明 | デフォルト値 | -|-----------|------|-------------| -| `service.type` | Serviceタイプ | `LoadBalancer` | -| `service.port` | Serviceãƒãƒ¼ãƒˆ | `80` | - -### Ingress設定 - -| パラメータ | 説明 | デフォルト値 | -|-----------|------|-------------| -| `ingress.enabled` | Ingressを有効化 | `false` | -| `ingress.className` | IngressClasså | `nginx` | -| `ingress.hosts` | ホスト設定 | `wordpress.example.com` | - -### 永続化設定 - -| パラメータ | 説明 | デフォルト値 | -|-----------|------|-------------| -| `persistence.enabled` | 永続化を有効化 | `true` | -| `persistence.storageClass` | StorageClass | `""` | -| `persistence.accessMode` | アクセスモード | `ReadWriteOnce` | -| `persistence.size` | ストレージサイズ | `10Gi` | - -## 使用例 - -### 基本的ãªã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ï¼ˆãƒ‘スワード自動生æˆï¼‰ - -```bash -helm install my-wordpress ./wordpress-nginx \ - --set wordpress.dbPassword=SecurePassword123 \ - --set wordpress.siteUrl=http://my-wordpress.example.com \ - --set wordpress.siteTitle="My Blog" \ - --set wordpress.adminEmail=admin@example.com - -# パスワードã®å–å¾— -kubectl get secret my-wordpress-wordpress-nginx-secret \ - -o jsonpath='{.data.admin-password}' | base64 -d -echo -``` - -### パスワードを指定ã—ã¦ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ« - -```bash -helm install my-wordpress ./wordpress-nginx \ - --set wordpress.dbPassword=SecurePassword123 \ - --set wordpress.adminPassword=AdminPass456 \ - --set wordpress.siteUrl=https://blog.example.com \ - --set wordpress.adminUser=myadmin -``` - -### ads.txt ã‚’é…ç½® - -```bash -helm install my-wordpress ./wordpress-nginx \ - --set wordpress.dbPassword=SecurePassword123 \ - --set wordpress.adsTxt.enabled=true \ - --set-string wordpress.adsTxt.content="google.com, pub-1234567890, DIRECT, f08c47fec0942fa0" -``` - -ã¾ãŸã¯ values.yaml ã«è¨˜è¿°ï¼š - -```yaml -wordpress: - adsTxt: - enabled: true - content: | - google.com, pub-1234567890, DIRECT, f08c47fec0942fa0 - adserver.com, 9876, RESELLER -``` - -### LoadBalancerã§ã®å…¬é–‹ - -```bash -helm install my-wordpress ./wordpress-nginx \ - --set service.type=LoadBalancer \ - --set wordpress.dbPassword=SecurePassword123 -``` - -### Ingressã§ã®å…¬é–‹ - -```bash -helm install my-wordpress ./wordpress-nginx \ - --set ingress.enabled=true \ - --set ingress.hosts[0].host=wordpress.example.com \ - --set ingress.hosts[0].paths[0].path=/ \ - --set ingress.hosts[0].paths[0].pathType=Prefix \ - --set service.type=ClusterIP -``` - -### リソース制é™ã®ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚º - -```bash -helm install my-wordpress ./wordpress-nginx \ - --set resources.nginx.limits.memory=1Gi \ - --set resources.wordpress.limits.memory=2Gi -``` - -## åˆæœŸåŒ–ã®å‹•作 - -### æ–°è¦ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«æ™‚ -1. WordPressファイルをコピー -2. wp-config.phpを生æˆï¼ˆã‚»ã‚­ãƒ¥ã‚¢ãª Salt キー自動生æˆï¼‰ -3. ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹æŽ¥ç¶šã‚’ç¢ºèª -4. テーブルãŒå­˜åœ¨ã—ãªã„å ´åˆï¼š - - WP-CLIを使用ã—ã¦WordPressをインストール - - 管ç†è€…ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’ä½œæˆ - - ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ãŒæœªæŒ‡å®šã®å ´åˆã¯16文字ã®ãƒ©ãƒ³ãƒ€ãƒ ç”Ÿæˆ -5. ads.txtãŒæœ‰åйãªå ´åˆã¯é…ç½® - -### アップデート/å†èµ·å‹•時 -1. 既存ã®wp-config.phpを検出 -2. データベーステーブルã®å­˜åœ¨ã‚’ç¢ºèª -3. テーブルãŒå­˜åœ¨ã™ã‚‹å ´åˆï¼š - - åˆæœŸåŒ–処ç†ã‚’スキップ - - コアãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®æ›´æ–°ç¢ºèª - - å¿…è¦ã«å¿œã˜ã¦ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚¹ã‚­ãƒ¼ãƒžã‚’アップデート -4. æ—¢å­˜ãƒ‡ãƒ¼ã‚¿ã‚’ä¿æŒã—ãŸã¾ã¾èµ·å‹• - -### 管ç†è€…パスワードã®ç¢ºèªæ–¹æ³• - -```bash -# Secretã‹ã‚‰å–å¾— -kubectl get secret -wordpress-nginx-secret \ - -o jsonpath='{.data.admin-password}' | base64 -d - -# ã¾ãŸã¯ initContainer ã®ãƒ­ã‚°ã‹ã‚‰ç¢ºèªï¼ˆåˆå›žã®ã¿ï¼‰ -kubectl logs -c wordpress-init -``` - -```bash -# 設定を変更ã—ã¦ã‚¢ãƒƒãƒ—グレード -helm upgrade my-wordpress ./wordpress-nginx \ - --set wordpress.dbPassword=NewPassword - -# values.yamlを使用ã—ã¦ã‚¢ãƒƒãƒ—グレード -helm upgrade my-wordpress ./wordpress-nginx -f custom-values.yaml -``` - -## アンインストール - -```bash -helm uninstall my-wordpress -``` - -## トラブルシューティング - -### åˆæœŸåŒ–ログã®ç¢ºèª - -```bash -# initContainer ã®ãƒ­ã‚°ã‚’ç¢ºèª -kubectl logs -c wordpress-init - -# メインコンテナã®ãƒ­ã‚° -kubectl logs -c nginx -kubectl logs -c wordpress -``` - -### 管ç†è€…パスワードã®å†ç¢ºèª - -```bash -# Secretã‹ã‚‰å–å¾— -kubectl get secret my-wordpress-wordpress-nginx-secret \ - -o jsonpath='{.data.admin-password}' | base64 -d && echo -``` - -### データベース接続ã®ç¢ºèª - -```bash -# WordPress コンテナ㧠WP-CLI を実行 -kubectl exec -it -c wordpress -- wp db check -kubectl exec -it -c wordpress -- wp db tables -``` - -### å†åˆæœŸåŒ–ãŒå¿…è¦ãªå ´åˆ - -```bash -# PVCを削除ã—ã¦å†ä½œæˆï¼ˆæ³¨æ„ï¼šãƒ‡ãƒ¼ã‚¿ãŒæ¶ˆãˆã¾ã™ï¼‰ -kubectl delete pvc -helm uninstall my-wordpress -helm install my-wordpress ./wordpress-nginx -``` - -### ads.txt ã®ç¢ºèª - -```bash -# Pod内ã§ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ç¢ºèª -kubectl exec -it -c nginx -- cat /var/www/html/ads.txt - -# ブラウザã¾ãŸã¯curlã§ã‚¢ã‚¯ã‚»ã‚¹ -curl http://your-site.com/ads.txt -``` - -## セキュリティ考慮事項 - -本番環境ã§ã¯ä»¥ä¸‹ã‚’å¿…ãšå®Ÿæ–½ã—ã¦ãã ã•ã„: - -1. **データベースパスワードã®ä¿è­·**: Kubernetes Secretを使用 -2. **HTTPS ã®æœ‰åŠ¹åŒ–**: cert-managerç­‰ã§TLS証明書を設定 -3. **リソース制é™ã®è¨­å®š**: é©åˆ‡ãªresources設定 -4. **定期的ãªãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—**: PVCã®ã‚¹ãƒŠãƒƒãƒ—ショット等 -5. **セキュリティアップデート**: イメージã®å®šæœŸçš„ãªæ›´æ–°