記事ディレクトリ
HestiaCPドメインごとにPHPテンプレートを手動で変更していませんか?このチュートリアルでは、カスタムPHP-FPMテンプレートを作成し、ワンクリックですべてのWebサイトに適用する方法をステップバイステップで解説します。完全な設定コードと自動化されたバッチスクリプトが提供されるため、繰り返し作業を回避し、サーバーのパフォーマンスを効率的に最適化できます。
痛みとは何か?それは、HestiaCPパネルで数十ものウェブサイトのPHPテンプレートを一つずつ修正しているとき、タイピングで指が痺れ、見つめすぎて目が痛くなるけれど、これはただの終わりのない反復作業だと心の中で分かっているときだ。
真の達人は、そのような機械的な作業に時間を費やすことは決してないだろう。
この記事は、この問題を完全に解決することを目的としており、スクリプトを使用してワンクリックでバッチ切り替えを完了し、検出レポートを自動的に生成することで、効率を新たなレベルに引き上げます。

⚠️ HestiaCP のデフォルトの PHP-FPM テンプレートが上書きされます。
HestiaCPでは、システムアップデート時にデフォルトのPHP-FPMテンプレートが上書きされます。
つまり、デフォルトのテンプレートを直接変更した場合、次回のアップデートでその変更内容が消去される可能性があるということです。
したがって、最善の方法は、デフォルトのテンプレートをコピーしてカスタムバージョンを作成することです。例えば、次のようになります。
custom-PHP8_4.tplcustom-PHP8_5.tpl
こうすることで、設定は長期的に保持され、上書きされることはありません。
HestiaCPの公式ドキュメントによると、テンプレートメカニズムを使用すると、ユーザーは... /usr/local/hestia/data/templates/web/php-fpm/ このパスの下で、カスタムテンプレートを自由に作成および管理できます(出典:HestiaCP公式ドキュメント)。
🛠️ カスタムテンプレートを準備中
デフォルトのテンプレートをコピーして、パラメータを変更する必要があります。
HestiaCPのデフォルトシステムでは、PHPの最新バージョンを選択することをお勧めします。これは、自動アップデート後にシステムが自動的に古いバージョンを選択してしまうことを防ぐためです。
ログインパネル → 右上隅の歯車アイコン → サーバー設定 → システムPHPバージョン(最新バージョン推奨)
デフォルトテンプレートをコピーするコマンド:
cp /usr/local/hestia/data/templates/web/php-fpm/default.tpl \ /usr/local/hestia/data/templates/web/php-fpm/custom-default-PHP.tpl cp /usr/local/hestia/data/templates/web/php-fpm/PHP-8_5.tpl \ /usr/local/hestia/data/templates/web/php-fpm/custom-PHP8_5.tpl cp /usr/local/hestia/data/templates/web/php-fpm/PHP-8_4.tpl \ /usr/local/hestia/data/templates/web/php-fpm/custom-PHP8_4.tpl
コピーしたテンプレートは変更できます。
- リスニングソケット異なるバージョン間の競合を避けるため。
- ログパス各バージョンのログを個別に保存します。
- プロセス番号構成サイトへのアクセス状況に応じて調整してください。
このようにして、各サイトは適切なPHP環境で動作させることができる。
PHP-FPMバックエンドテンプレートを変更するためのコマンドは以下のとおりです。 v-change-web-domain-backend-tpl USER DOMAIN TPL。
システムのデフォルトのバックエンドテンプレートに復元した後で実行できます。 v-change-web-domain-backend-tpl admin chenweiliang.com default。
特定のバージョンまたはカスタムテンプレートを指定した場合に実行されます v-change-web-domain-backend-tpl admin chenweiliang.com PHP-8_5-custom。
📜 バッチテンプレート切り替えスクリプト
もしあなたが12個、あるいは数十個ものウェブサイトを所有しているなら、テンプレートを一つずつ切り替えるのは大変な作業です。
解決策はシェルスクリプトを作成することです。
#!/bin/bash
# 批量切换站点到 PHP8.4 模板
sites_php84=("site1.com" "site2.com")
for domain in "${sites_php84[@]}"; do
v-change-web-domain-template admin $domain custom-PHP8_4.tpl
done
# 批量切换站点到 PHP8.5 模板
sites_php85=("site3.com" "site4.com")
for domain in "${sites_php85[@]}"; do
v-change-web-domain-template admin $domain custom-PHP8_5.tpl
done
说明:
adminそれはユーザーアカウントです。ご自身のアカウントに置き換える必要があります。site1.com、site2.com切り替えるドメイン名は…v-change-web-domain-templateこれはHestiaCPが提供するコマンドラインツールです。
この方法なら、人為的なミスを回避しながら、一括で切り替え作業を完了できる。
🖥️ パネルで確認してください
切り替えが完了したら、HestiaCPパネルにログインする必要があります。
- 開く ウェブ → ドメインの編集。
- PHP-FPMテンプレートが切り替えられているかどうかを確認してください。
custom-PHP8_4.tpl或custom-PHP8_5.tpl。
この手順では、スクリプトが異常なく実行されることを確認するために、手動による検証を行います。
⚙️ 設定が有効であることを確認してください。
バッチ切り替え後には、サービスの状態も確認する必要があります。
systemctl status php8.4-fpm
systemctl status php8.5-fpm
サービスが正常に動作している場合、テンプレートの切り替えは成功したことを意味します。
同時に、サイトにアクセスして、500エラーや空白画面がないことを確認してください。
📊 自動検出スクリプト
効率をさらに向上させるために、自動検出スクリプトを作成することもできます。
バッチ切り替え後、各サイトをチェックして、対応するテンプレートが正しく適用されているかどうかを確認し、レポートを生成します。
#!/bin/bash
USER="admin"
sites_php84=("site1.com" "site2.com")
sites_php85=("site3.com" "site4.com")
for domain in "${sites_php84[@]}"; do
v-change-web-domain-template $USER $domain custom-PHP8_4.tpl
done
for domain in "${sites_php85[@]}"; do
v-change-web-domain-template $USER $domain custom-PHP8_5.tpl
done
REPORT="/root/hestia-template-report.txt"
echo "HestiaCP 模板检测报告 - $(date)" > $REPORT
echo "===================================" >> $REPORT
for domain in "${sites_php84[@]}" "${sites_php85[@]}"; do
TEMPLATE=$(v-list-web-domain $USER $domain | grep "TPL:" | awk '{print $2}')
echo "$domain 当前模板: $TEMPLATE" >> $REPORT
done
echo "✅ 检测完成,报告已生成:$REPORT"
実行後、各サイトで現在使用されているテンプレートを一覧表示した明確なレポートが表示されます。
この方法を使えば、切り替えが成功したかどうかを一目で明確に確認できます。
📖 使用方法
スクリプトを保存します:
nano /root/switch-and-check.sh内容を貼り付けて保存してください。
権限を付与する:
chmod +x /root/switch-and-check.shスクリプトを実行します。
./root/switch-and-check.shレポートを見る:
cat /root/hestia-template-report.txt
このレポートには、各サイトのテンプレート申請状況が表示されます。
📌概要
カスタムPHP-FPMテンプレートの一括切り替えに関するベストプラクティスは以下のとおりです。
- カスタムテンプレートを準備する →
- バッチ切り替えスクリプト →
- パネル確認 →
- 自動テストレポート。
このアプローチは、アップデートが上書きされるのを防ぐだけでなく、複数のサイトが異なるPHPバージョンで安定して動作することを保証します。
💡結論
デジタル時代においては、効率性が競争力となる。
もしあなたがまだサイトの設定を一つずつ変更しているとしたら、それはまるでそろばんで量子コンピューターに対抗しようとしているようなものです。
バッチスクリプトと自動検出機能を使えば、面倒な作業をワンクリックで実行できるようになり、より価値のあることに時間を費やすことができます。
真の達人とは、大量のコードを書ける人ではなく、複雑なプロセスを極限まで簡素化できる人のことである。
さあ、行動を起こして、この一連の運用ガイドラインをサーバーに適用し、運用と保守のスキルを瞬時に全く新しいレベルに引き上げましょう。
これこそがテクノロジーの力であり、同時にシステムを制御する知恵でもある。
複雑なシステムをマスターするには、力任せに攻めるのではなく、簡素化の知恵を身につけることが重要だ。
微調整の方法を学ぶ pm.max_children、pm.start_servers、pm.max_requests これらの主要パラメータは、安定性と同時負荷容量を向上させます。
👉続きを読む:HestiaCP PHP-FPMテンプレートパラメータ設定方法 — HestiaCP PHP-FPMは過負荷状態ですか?動的ウェブページで500エラーが発生していますか?この最適化方法ならすぐに効果が現れます!▼
クリックして今すぐご覧ください。これらのテクニックを習得すれば、運用・保守業務を事後対応型の緊急対応から、事前最適化型の業務へと変革できます。
Chen Weiliang氏のブログ(https://www.chenweiliang.com/ )で公開されている記事「HestiaCPカスタムPHP-FPMテンプレートの一括自動切り替え:手動での1つずつのクリックにさよなら(スクリプト付き)」が、皆様のお役に立てば幸いです。
この記事のリンクはご自由に共有してください:https://www.chenweiliang.com/cwl-34438.html

