エックスサーバで特定のディレクトリだけ異なるバージョンのPHPを動作させる。

今回はいろいろわけあって、特定のディレクトリ配下だけのphpバージョンを変えたいということでやってみます!

もともとシステムが動いている。新しいシステムも入れたいということで、あんまりよくないけどできるだけバージョンは上げておいた方がいいんでね。

ほな、特定のディレクトリ配下だけバージョンをあげてみる。

php.cgiを置く

CGIプログラムファイルの設置例←も参考にしてみましょう。

ではスタート~

使いたいバージョンのphpがまずあるのかどうかを確認します。

$ ls /usr/bin/php*

/usr/bin/php /usr/bin/php-fcgi5.3 /usr/bin/php-fcgi5.6 /usr/bin/php-fcgi7.2 /usr/bin/php-fcgi8.0 /usr/bin/php5.4 /usr/bin/php5.6-cgi /usr/bin/php7.1 /usr/bin/php7.2-cgi /usr/bin/php7.4 /usr/bin/php8.0-cgi
/usr/bin/php-cgi /usr/bin/php-fcgi5.4 /usr/bin/php-fcgi7.0 /usr/bin/php-fcgi7.3 /usr/bin/php5.1 /usr/bin/php5.5 /usr/bin/php7.0 /usr/bin/php7.1-cgi /usr/bin/php7.3 /usr/bin/php7.4-cgi /usr/bin/phpize
/usr/bin/php-fcgi5.1 /usr/bin/php-fcgi5.5 /usr/bin/php-fcgi7.1 /usr/bin/php-fcgi7.4 /usr/bin/php5.3 /usr/bin/php5.6 /usr/bin/php7.0-cgi /usr/bin/php7.2 /usr/bin/php7.3-cgi /usr/bin/php8.0

まあこんな感じで大量に出てくるはず。

そしたら、利用したいphpのバージョンを探す。今回はphp7.4です。

うしろにcgiってのがついているやつを利用するらしい。

/usr/bin/php7.4-cgi

そしたら対象のディレクトリにcgiファイルを作ります。

例として以下

/home/test/{配下のバージョンを変更したいディレクトリ}/php.cgi

ここにファイルを作って中身はこんな感じ。

#!/usr/bin/sh
exec /usr/bin/php7.4-cgiCode language: JavaScript (javascript)

ここで利用したいバージョンのパスを指定するわけですね。

一旦権限を確認してください。

$ ls -la php.cgi

権限が755じゃない場合は変更が必要です。

$ chmod 755 php.cgi

ほい!これで大丈夫ですね!!!!!

ここはこれでok

.htaccessの作成

ではphp.cgiと同じ階層に.htaccessを追加、もしくは無い場合は作成します。

内容は以下

.htaccess

Action myphp-script /test/php.cgi
AddHandler myphp-script .php .html

ファイル、フォルダは環境に合わせて変更。

確認

test配下にphpinfo()を置いて確認してみましょう。

test/test.php

<?php phpinfo(); ?>
Code language: HTML, XML (xml)

まとめ

なんかすごく戸惑ったけど、問題がcgiファイルのファイル属性が755になっていなかった!というのがありました。

手順とか探した時に一番やったらダメなのが、流し読みですな。

しっかり飛ばさずに一度やってみるべし。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA