【お役立ち情報】Xserverで特定のサブドメインだけPHPのバージョンの変える方法

Xserver(エックスサーバー)では対象のドメインで使用するPHPのバージョンをカンタンに切り替えることができます。

Xserverコントロールパネルの「PHP Ver.切替」メニュー
サーバーのコントロールパネルから・・・
バージョン切替画面
バージョン変更が可能

ただし、切り替えができるのはドメイン単位になってしまい、特定のサブドメインだけを変更することができません。

そこで、「.fcgi」ファイルと「.htaccess」を使って特定のサブドメイン(ディレクトリ)だけPHPバージョンを変更する方法を解説します。

例えば、メインドメインでPHPのバージョン変更をすると、サイトの表示崩れやエラーの可能性があってやりたくないという場合に使うと役に立ちます。

注意

この方法は「Xアクセラレータ」が『Xアクセラレータ Ver.2』だと効きません。

php.fcgiファイルの準備

テキストエディタを開いて内容を以下のように記述します。

#!/usr/bin/sh
exec  /usr/bin/php-fcgi8.3

その後、ファイル名を「php.fcgi」として保存します。

テキストエディタのキャプチャ

上記は、PHP8.3を利用する場合です。

他のバージョンでどのような記述をするかは、Xserverのコントロールパネルから確認できます。

「サーバー情報」-「コマンドパス一覧」を開くと以下のように一覧が開きますので、必要なバージョンのパスを入力してください。

コマンドパス一覧

ファイルのアップロードとパーミッション設定

作成したファイルはFTPやファイルマネージャーを使って、サーバーにアップロードします。

アップロードするのは、PHPのバージョンを切り替えたいディレクトリです。

WordPressで使用する場合は、通常、index.php や .htaccess がある「サイトのルートディレクトリ」となります。

例えば、「sub.sample.com」というサブドメインのバージョンを切り替えたいのであれば、そのドメイン直下のディレクトリです。

アップロードをしたらファイルのパーミッションを755に変更します。

パーミッションとはアクセス権のことで、これを変更しないと設定が読み込まれず反映しません。

検証の結果、『705』でも動作する場合もありましたが、サーバーによっては反映されず、その場合『755』にすることで即反映しました。

私が使用しているFTPソフト(Transmit)の場合は、ファイルを選択して「8進数」を変更して[適用]をクリックするという方法で変更しています。

Transmitでのパーミッション変更

.htaccessファイルの変更

php.fcgiを置いたディレクトリにある「.htaccess」をテキストエディタで開きます。

ファイルの先頭に以下の記述を追記して保存します。

Action myphp-script /php.fcgi
AddHandler myphp-script .php .html

ここで指定するファイル名が「php.fcgi」で、先に作成したファイル名と一致していないと設定は反映しません。

設定から反映までは少し時間がかかります。

私の場合は反映まで1〜3分ほどかかりましたので、「反映しないな?」と思ったらしばらく待ってみてください。

反映したかどうかは以下の方法で確認ができます。↓↓↓

PHPのバージョン確認

php.fcgiを置いたディレクトリに「info.php」というファイルを作成することで、そのディレクトリで動作しているPHPのバージョンを確認できるようになります。

テキストエディタで以下の内容を入力します。

<?php
phpinfo();
?>

ファイル名を「info.php」として保存し、php.fcgiを置いたディレクトリ(サイトのルートディレクトリ)に置きます。

ブラウザで「ドメイン名/info.php」と入力すると以下の画面が表示され、動作しているPHPバージョンを確認できます。

例)https://sub.sample.com/info.php

info.phpを開き、PHPバージョンを確認

ちなみに、info.phpを作成しなくてもWordPressがインストールされている環境であれば、管理画面からも確認ができます。

「ツール」-「サイトヘルス」を開きます。

管理画面の「ツール」-「サイトヘルス」メニュー

「情報」タブをクリックして、「サーバー」を展開した中の「PHP バージョン」を確認します。

サイトヘルスのサーバー内のPHPバージョン

待ってもバージョンが変わらないときは

設定が反映しないときは、どこかしら間違っている可能性があります。

以下の内容についてチェックしてみてください。

Xアクセラレータの設定

冒頭でも書きましたが、XアクセラレータがVer.2の場合は、この方法は使えません。

Xserverのコントロールパネルから「Xアクセラレータ」で該当のドメインの設定を確認してみてください。

Xアクセラレータの設定画面

php.fcgiの記述

記述に間違いがあったり、存在しないコマンドパスを書いていないか確認してみてください。

ファイルのアップロード先

ファイルは「サイトのルートディレクトリ」に置く必要があります。

WordPressならindex.php や .htaccessファイル、wp-contentディレクトリが置いてある階層です。

.htaccessの記述

「/」が抜けていないか、ファイルの場所とパスの指定が合っているか確認してください。

「/php.fcgi」の場合、ルートディレクトリ直下の「php.fcgi」ファイルを指定しています。

例えば、ルートディレクトリ配下に「sample」ディレクトリを作成してその中に置いている場合は、「/sample/php.fcgi」となります。

まとめ

Xserver(エックスサーバー)で、特定のサブドメイン(ディレクトリ)だけPHPのバージョンを変更する方法を解説しました。

この方法を知っていれば、親ドメインや別のサブドメインと異なるPHPバージョンでサーバーを動かせるため、環境構築の幅が広がります。

方法もファイルを作成して、サーバーにアップロードするだけでカンタンなので、必要な際は試してみてください。

もし、ここに書かれている内容がよくわからないけど、同じことをしなくちゃいけない。。。

そんな特殊な立場に立たされているのであれば、、、

知っている人や詳しい人に聞きながら進めるのが間違いないと思います!

IT関係の問題は専門用語も多く出てきて、説明を読んでもチンプンカンプンといったことはよくあります。

言葉の意味もわからずに設定してもうまく動かなかったり、間違った設定をしてしまう可能性もゼロではありません。

もし、安全に短時間で問題を解決したいと感じられたら、弊社のITサポートのご利用をご検討ください。

お客様の声

今なら通常5500円(税込)のところ1100円(税込)でサポートがご利用いただけます。
※割引料金でご利用いただく場合は、バナーをクリックして表示されるサポート申し込みページからお申し込みください。

WordPress

Posted by hiro