XserverでディレクトリごとにPHPバージョンを変更する方法

2023.07.05

どうもこんにちは、Web職人と呼ばれたい塚本です。

新しく入社した新人になります!
ほのぼのしたハジメラボですが、技術者らしく技術的な記事を投下していこうと思います!

さて、本題に入ります。
今回はXserverを使う方々の周知の悩みであるディレクトリ毎のPHPバージョン変更について備忘録を残していこうと思います。

サブドメインのみPHP7.4、本ドメインは古いサイトだから5.6のままで...

そんなシーンもこの手法で解決可能です。

手順

おおまかな手順は以下の4つです。

  1. エックスアクセラレータの無効化
  2. ディレクトリのパーミッション変更
  3. 必要ファイルの設置
  4. 待つ

1. エックスアクセラレータの無効化

  • 設定をしたいドメインに対して、エックスアクセラレータを無効化してください。
  • サーバーキャッシュを無効化してください。
  • ブラウザキャッシュを無効化してください。

2. ディレクトリのパーミッション変更

  • 該当ディレクトリのパーミッションを755に変更してください。

3. 必要ファイルの設置

該当ディレクトリに以下の2ファイルを設置してください。

※ 注意点

改行コードはCR+LFではなく、LFにしてください。

.htaccess

パーミッションはデフォルトのままでOKです。
※ パスは場所によって合わせてください。

AddHandler myphp-script .php .fphp
Action myphp-script "/php.fcgi"

php.fcgi

パーミッションは755に変更してください。
使いたいPHPバージョンに合わせてください。

#!/usr/bin/sh
exec /usr/bin/php-fcgi5.6

※ 以下の詳細をクリックするとPHPバージョンのパス一覧が確認できます。

PHPのパス一覧

詳細

PHPバージョンパス
PHP 8.2.x(CGI)/usr/bin/php8.2-cgi 又は /usr/bin/php-fcgi8.2
PHP 8.2.x(CLI)/usr/bin/php8.2
PHP 8.1.x(CGI)/usr/bin/php8.1-cgi 又は /usr/bin/php-fcgi8.1
PHP 8.1.x(CLI)/usr/bin/php8.1
PHP 8.0.x(CGI)/usr/bin/php8.0-cgi 又は /usr/bin/php-fcgi8.0
PHP 8.0.x(CLI)/usr/bin/php8.0
PHP 7.4.x(CGI)/usr/bin/php7.4-cgi 又は /usr/bin/php-fcgi7.4
PHP 7.4.x(CLI)/usr/bin/php7.4
PHP 7.3.x(CGI)/usr/bin/php7.3-cgi 又は /usr/bin/php-fcgi7.3
PHP 7.3.x(CLI)/usr/bin/php7.3
PHP 7.2.x(CGI)/usr/bin/php7.2-cgi 又は /usr/bin/php-fcgi7.2
PHP 7.2.x(CLI)/usr/bin/php7.2
PHP 7.1.x(CGI)/usr/bin/php7.1-cgi 又は /usr/bin/php-fcgi7.1
PHP 7.1.x(CLI)/usr/bin/php7.1
PHP 7.0.x(CGI)/usr/bin/php7.0-cgi 又は /usr/bin/php-fcgi7.0
PHP 7.0.x(CLI)/usr/bin/php7.0
PHP 5.6.x(CGI)/usr/bin/php5.6-cgi 又は /usr/bin/php-fcgi5.6
PHP 5.6.x(CLI)/usr/bin/php5.6
PHP 5.5.x(CGI)/usr/bin/php-fcgi5.5
PHP 5.5.x(CLI)/usr/bin/php5.5
PHP 5.4.x(CGI)/usr/bin/php-fcgi5.4
PHP 5.4.x(CLI)/usr/bin/php5.4
PHP 5.3.x(CGI)/usr/bin/php-fcgi5.3
PHP 5.3.x(CLI)/usr/bin/php5.3
PHP 5.1.x(CGI)/usr/bin/php-fcgi5.1
PHP 5.1.x(CLI)/usr/bin/php5.1

4. 待つ

すぐにバージョンが変わらない場合があります。
5分ほど、コーヒーでも飲んで待ってみてください。

まとめ

ディレクトリごとにPHPバージョンを変える方法については過去に色々と試していました。
ただ、挙動が不安定でWordPressの管理画面では効かない…みたいなことがありました。

今回の手法では、WordPressの管理画面でもきちんとバージョンが変わっており、不具合もなく動いてくれました。

以下にソースコードを共有しますのでうまくいかない方は参考にしてみてください。

GitHub - Hajimecreate/Switch-PHP-ver-of-Xserver-by-directory: XserverのPHPバージョンをディレクトリごとに変える方法
XserverのPHPバージョンをディレクトリごとに変える方法. Contribute to Hajimecreate/Switch-PHP-ver-of-Xserver-by-directory development by creati...

🏢 株式会社ハジメクリエイトについて

この記事は、 株式会社ハジメクリエイト のエンジニアが執筆しました。


💻 Webシステム開発のプロフェッショナル

私たちは、ビジネスの成長をサポートするため、 PHPを用いたオーダーメイドのシステム開発 を提供しています。
お客様一人ひとりのニーズに応じたカスタムシステムを、 企画から開発・運用まで一貫してサポート
さらに、 React Nativeを活用したiOS/Android対応のアプリ開発 も得意としています。

単に「作る」だけでなく、
課題の本質に向き合い、最適な解決策を提案する のがハジメクリエイトのスタイルです。


🧑‍💻 一緒に働く仲間を探しています!

株式会社ハジメクリエイトでは、 自ら考え行動できるエンジニア を募集しています。
「私はこれがしたい!」という想いを持つあなた、一緒にモノづくりを楽しみませんか?

  • 技術で人の役に立ちたい
  • 意見が通る小さなチームで働きたい
  • フロントエンドもバックエンドも、いろいろ挑戦してみたい
  • お客さんと一緒にプロジェクトを育てたい

そんな気持ちがある方なら、きっと居心地のいい環境だと思います。
正社員はもちろん、パートタイムでの参加も歓迎中! 柔軟な関わり方で、あなたらしく働いてください。

👉 採用情報を見る
👉 お問い合わせはこちら


ちょっとでも「この会社、気になるな」と思ったら、ぜひお気軽にご連絡ください📩
最後まで読んでいただきありがとうございました!

  • PHP
  • Web技術
  • Xserver

この記事を書いた人

Sho Tsukamoto

Chief Engineer Sho Tsukamoto

2023年4月入社。Web職人のたまごです。 最近はもっぱらコーディングすることは少なく、LaravelやReact Nativeを用いたシステム開発をメインとしています。

Sho Tsukamotoの書いた記事一覧へ

ハジメクリエイトでは一緒に働く仲間を募集しています!

関連記事