Xserverで特定ディレクトリのみPHPバージョンを切り替える方法

Xserverで特定ディレクトリのみPHPバージョンを切り替える方法

エックスサーバーでは、ドメイン単位でしか PHP バージョン切り替え画面がありませんが、CGI ラッパー(php.cgi)+.htaccess を使うことで、特定ディレクトリのみ別バージョンを適用できます。本記事では、特定ディレクトリのみPHPバージョンを切り替える方法について、具体的な手順とコード例を詳しく解説します。

手順1: Xアクセラレータを無効化

サーバーパネル → 「高速化」→「Xアクセラレータ」を該当ドメインで OFF にします。
キャッシュが有効のままだとうまく反映されないことがあるためです。

手順2:ディレクトリのパーミッションを 755 に設定

対象ディレクトリ(例:/contact-form/)のパーミッションを 755 に変更します

手順2: PHPバージョン確認用info.phpの作成

まず、対象ディレクトリ(例:/contact-form/)の直下に info.php を作成し、現在のPHPバージョンを確認します。以下のコードを使用してください。

<?php phpinfo(); ?>

例:

手順3: php.cgiの作成とパーミッションの変更

PHP の CGI パスを確認

サーバーパネル → 「サーバー情報」→「コマンドパス一覧」から、利用したい PHP の CGI パスを確認。

php.cgi作成

以下のようなファイルを contact-form/php.cgi としてアップロードし、パーミッションを 705 に設定します。

#!/usr/bin/sh
exec /usr/bin/php8.0-cgi

手順4: .htaccess を作成・アップロード

同ディレクトリに以下を記述した .htaccess を置きます(パーミッションはデフォルト)。

Action myphp-script /contact-form/php.cgi
AddHandler myphp-script .php

Action のパスはドキュメントルートからの相対パスに書き換えてください

動作確認

対象ディレクトリの info.php にアクセスして、PHPバージョンが切り替わっているか確認します。

まとめ

この方法により、全ドメインに一括適用されることなく、対象ディレクトリのみ希望するPHPバージョンを利用できます。設定後は必ず動作確認を行い、info.phpは削除するようにしてください。これにより、セキュリティも確保できます。

この記事をシェアする

どなたでもコメントや質問をどうぞ

スパム対策のため、承認作業を行うまでは表示されません。ご了承ください。

CAPTCHA


関連記事