テックブログ

PHP

接続元IPアドレスを見てPHPバージョンを切り替えたい

こんにちは、Qです。

バージョンが異なる複数の PHP/PHP-FPM をインストールするケースは多々ありますが、
今回は接続元のIPアドレスを見て PHP を切り替える方法のご紹介です。

■環境
AlmaLinux release 10.1

Apache/2.4.63 (appstream)

PHP 8.3.26 (appstream)
PHP 8.4.17 (remi-safe)
PHP 8.5.2  (remi-safe)

手順は割愛しますが PHP 8.3 はOS標準リポジトリから、
PHP8.4、PHP8.5 は remi-safe リポジトリからインストールします。

Apache インクルード用ファイルをリネームします。

/etc/httpd/conf.d/php.conf
/etc/httpd/conf.d/php84-php.conf ⇒ /etc/httpd/conf.d/php84-php.conf.org
/etc/httpd/conf.d/php85-php.conf ⇒ /etc/httpd/conf.d/php85-php.conf.org

Apache 再起動

psコマンドを叩くと php-fpm が起動しているはずです。

さて本題です。

同一ドキュメントルート配下で、以下のように 接続元IPアドレスに応じて
PHPバージョン を切り替えたい 。。。

① 接続元 172.16.0.1  PHP 8.4
② 接続元 192.168.0.1 PHP 8.5
③ 接続元 その他大勢  PHP 8.3

バーチャルホストの <Directory> ...</Directory> の中で
<If “-R ‘IP Address'”> ...</If> を使って接続元IPアドレスを判定し、
SetHandler で PHP を切り替えることができます。

複数のIPアドレスを指定したいときはこんな感じです。

活躍する場面は多くないと思いますが、PHPバージョン間の互換性を確認したいときなどに
重宝するのかな、と。

今回は以上です。
それでは。

この記事をシェアする

  • facebook
  • twitter
  • hatena
  • line
URLとタイトルをコピーする

実績数30,000件!
サーバーやネットワークなど
ITインフラのことならネットアシストへ、
お気軽にご相談ください