【PHP】【Apache】.htaccess で実行するPHPのバージョンを制御する方法

  • 2024年9月3日
  • PHP

 レンタルサーバー上で複数のWebサイトが稼働している場合や、一部プログラムのみPHPのバージョンを移行したい場合など、同じWebサーバーで異なるバージョンのPHPを動かしたくなることがしばしばあります。このような時に使える .htaccess を利用してPHPのバージョンを指定する方法を紹介します。より根元に近いwebサーバーそのものの設定を触れない時などで役に立ちやすいです。

 実際のコードが次です。

# PHP8.0で動作させるパターンの .htaccess
# / はドキュメントルート
Action myphp-script /xxx/php8.0.cgi
AddHandler myphp-script .php .html
#!/bin/sh
# php8.0.cgi
exec /usr/bin/php-fcgi8.0
# PHP8.3で動作させるパターンの .htaccess
# / はドキュメントルート
Action myphp-script /xxx/php8.3.cgi
AddHandler myphp-script .php .html
#!/bin/sh
# php8.3.cgi
exec /usr/bin/php-fcgi8.3

 任意のバージョンのPHPを動かすシェルスクリプトを用意し、.htaccess でそれを使うように Action と AddHandler を追加します。Actionディレクティブは名前とする処理を紐づける機能です。例のコードでは myphp-script という名前に php8.X.cgi を対応させています。AddHandler ディレクティブは指定した拡張子のファイルの処理をどれにさせるかを決められます。例のコードでは .php や .html がリクエストされたら myphp-script を呼ぶようにしています。

mod_actions – Apache HTTP サーバ バージョン 2.4
mod_mime – Apache HTTP サーバ バージョン 2.4#ディレクティブ

 こんな感じで .htaccess 影響下のPHPコードを実行するPHPのバージョンを指定できます。こうするとwebサイトの一部のみを新しいPHPバージョンに移行するなど柔軟なバージョン管理がやりやすくなります。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG