今回はディレクトリごとにPHPバージョンを変更する方法をご紹介します。
目次
はじめに
エックスサーバーのサブドメイン環境を例にご紹介します。
PHPバージョンを変更する方法
PHPバージョンを変更したいディレクトリにphp.cgiファイルを作成します。
[sub.example.co.jp]$ vi php.cgi
php.cgiファイルには変更したいバージョンのPHPコマンドパスを記載します。
以下はエックスサーバーにてPHP8.3へ変更する場合の記載例です。
#!/usr/bin/sh
exec /usr/bin/php-fcgi8.3
作成したphp.cgiファイルのパーミッションを755へ変更します。
[sub.example.co.jp]$ chmod 755 php.cgi
PHPバージョンを変更したいディレクトリに.htaccessファイルを作成します。
[sub.example.co.jp]$ vi .htaccess
.htaccessファイルには先ほど作成したphp.cgiを参照する処理を記載します。
<FilesMatch "\.php$">
SetHandler php-script
Action php-script /php.cgi
</FilesMatch>
PHPバージョンが変わっていることを確認する
PHPバージョンを変更したいディレクトリにPHPファイルを作成します。
[sub.example.co.jp]$ vi test.php
PHPファイルには現在のPHPの設定情報を出力する処理を記載します。
<?php
echo phpinfo();
作成したPHPファイルにブラウザでアクセスします。
URL例:https://sub.example.co.jp/test.php/
実行中のPHP情報が表示されるので、php.cgiに記載したPHPバージョンへ変更されていることを確認します。
エラーはないがPHPバージョンが変わらないとき
作成したPHPファイルにブラウザでアクセスしたときに実行中のPHP情報が表示されるがバージョンが変わっていない場合、エックスサーバーにおいては「Xアクセラレータ」機能が影響していることがあります。
「Xアクセラレータ」機能を無効化して再度PHPバージョンが変わるか確認しましょう。
500エラーになるとき
手順中で作成したPHPファイルにブラウザでアクセスしてエラーメッセージなどが表示される場合、次のような原因が考えられます。
- php.cgiや.htaccessの記述ミス・パーミッション設定ミス
- メモリ不足
詳細はサーバーのエラーログを確認しましょう。
まとめ
今回はディレクトリごとにPHPバージョンを変更する方法をご紹介しました。
弊社ではホームページの作成や保守の一貫でサーバーの設定なども行っております。
サーバーの環境構築やトラブル対応などはお任せください。