エックスサーバー(Xserver)でサブドメイン毎に異なるバージョンのPHPを設定して動作させる方法
- エックスサーバーならサブドメイン毎に違うバージョンのPHPの設定が可能
- エックスサーバーのサーバーパネルからPHPのバージョン変更可能な範囲は
- FastCGIとは
- エックスサーバーで、特定のサブドメインに違うバージョンのPHPを設定する方法
- 設定1. 拡張子fcgi(cgi)のファイルを用意
- 設定2. .htaccessに記述を追加
- 設定3. php.ini(.user.ini)について
- PHP7.4.xの設定ファイルをアップロード
エックスサーバーならサブドメイン毎に違うバージョンのPHPの設定が可能
現在、とあるサイトをエックスサーバーで運用していまして、Xserverの管理画面(サーバーパネル/ServerPanel)から、ドメイン全体のPHPのバージョンを7.0系に設定している状態。
クライアントの依頼で新しい(または古い)PHPのバージョンでの動作検証などを行う場合、検証用に作成した特定のサブドメインだけ、別バージョンのPHPを使いたい(例えばPHP5.6系やPHP7.4系)といった時に有効な方法をご紹介します。
エックスサーバーならサブドメイン毎に違うバージョンのPHPの設定が可能です!
さくらインターネットでも似たような設定ができるようですが、この辺もエックスサーバーを使う際に魅力的に感じる部分ですね(できればサーバーパネルから設定出来るようになると、とっても嬉しい...)
エックスサーバーのサーバーパネルからPHPのバージョン変更可能な範囲は
エックスサーバーでは、サーバーパネル(コントロールパネル)からドメイン毎に違うバージョンのPHPの設定が可能ですが、サーバーパネルからはサブドメイン毎の異なるPHPのバージョン設定は出来ません。
ドメイン毎のPHPバージョン変更方法は、マニュアルサイトのPHPのバージョンについてページをご確認ください。
PHPのバージョン切り替え方法|エックスサーバー
特定のサブドメインに対して異なるバージョンのPHPを使うには、少し面倒ですが、FastCGIでPHPを実行する方法を使います。
FastCGIとは
FastCGIとは、Webサーバ上でユーザプログラムを動作させるためのインタフェース仕様のひとつで、プロセス初回実行時に該当プロセスを一定時間サーバー内に保持、次回以降のプロセスの起動/終了を省略することで、プログラムの高速化とCPU負荷の軽減を実現。モジュール版PHPと同等の処理能力を持つ動作方式との事です。
詳細はエックスサーバーの公式サイトをご確認ください。
FastCGIについて|レンタルサーバー【エックスサーバー】
エックスサーバーで、特定のサブドメインに違うバージョンのPHPを設定する方法
エックスサーバーの領域内に設定したサブドメインに、今回はPHPバージョン7.4を設定します。
PHP各バージョンのコマンドパス確認方法
PHPを設定するためには、使用したいPHPバージョンの「 コマンドパス 」が必要になります。
(コマンドパスとは、PHPを実行するためのブログラムの格納場所とお考えください)
各PHPバージョンのパスは、バージョンによって異なります。
Xserverの管理画面からコントロールパネル(サーバーパネル/ServerPanel)にログインして「サーバー情報」→「コマンドパス一覧」から確認するか、公式マニュアルサイト「プログラム言語・コマンドパス」ページの「コマンドパス一覧」から確認できます。
プログラム言語・コマンドパス|エックスサーバー
PHPの設定に必要なファイルは以下の3つです。
- php74.fcgi(ファイル名は適宜。拡張子は.cgiでも可)
- .htaccess
- .user.ini(必要に応じて使用します)
設定1. 拡張子fcgi(cgi)のファイルを用意
PHP7.4系を使用するので、コマンドパスは、PHP7.4.x(CGI)の「 /usr/bin/php-fcgi7.4 」を使用します。
テキストエディタで「 php74.fcgi 」を新規作成し、その中にコマンドパスを記述します。
ファイル名はphp7.4を設定するので、分かりやすいようにphp74.fcgiにしました。
拡張子は.cgiでも良いです。
#!/usr/bin/sh exec /usr/bin/php-fcgi7.4
このファイルをFTPでアップロードする際、cgiのパーミッションを「 705 」に設定してください。(パーミッションが正しくない場合500エラーが表示されます)
設定2. .htaccessに記述を追加
.htaccessファイルを作成します。
すでにサブドメインの領域に.htaccessがある場合は、そのファイルをダウンロードして以下の設定を追加してください。
php74.fcgi はファイル名です。設定1で作成したファイル名を記述しててください。
Action myphp-script /php74.fcgi AddHandler myphp-script .php .html
設定3. php.ini(.user.ini)について
フォルダ内の「.user.ini」というファイルが、php.iniファイルとして機能します。
.user.iniには今回以下の設定を追加します。他に必要な設定は適宜追加してください。
upload_max_filesize = 50M display_errors = On
php.iniの設定が不要な場合は、このファイルはアップロードしなくても良いです。
PHP7.4.xの設定ファイルをアップロード
PHPを設定したいサブドメインのルートディレクトリに、設定1〜3で作成した3つのファイルをFTPでアップロードします。
その後ブラウザでphpinfoを表示して、PHPのバージョンが7.4.xになっているか、
.user.iniで指定した設定が反映されているか確認しましょう。
500エラーが出る場合は、cgiファイルのパーミッションの数値が正しいか確認してみてください。
問題なく表示されたら作業は完了です。
今回は以下の記事を設定の参考にさせていただきました。ありがとうございました。
エックスサーバーでフォルダ毎にPHPのバージョンをかえる方法 | UNIFASブログ
MovableType/WordPressを使ったホームページ制作、機能追加や設置代行などの改修、システム開発、サイトの保守を手掛けております。
アナタが実現させたい機能、やりたい事をお聞かせいただけませんか? そのイメージを一緒に実現しましょう!
お問い合わせは以下のページから!!