さくらのレンタルサーバ ドメイン・ディレクトリごとにPHPのバージョンを変える方法

目次

さくらのレンタルサーバでは、PHPのバージョンをコントロールパネルで1つしか選べず、同じサーバーのすべてのサイトに同じバージョンが使われます。それでも、フォルダー(ディレクトリ)に2つのファイルを置くと、そのフォルダーの中だけPHPのバージョンを上げられます。本番のサイトは今のバージョンのまま、新しいPHPで動くWordPressのテスト環境を同じサーバーに作れる方法です。

2026年10月に発表されたPHPの脆弱性を受けてPHPを上げたいものの、サイトが新しいバージョンで動くかを確かめる場所がない、という方も多いと思います。この記事では、当サービスが2026年10月24日に実際のさくらのレンタルサーバで確かめた手順を紹介します。さくらインターネットの公式のサポート外の方法ですが、実際に動作した事を確認しています。

当サイト記事 難易度表記について

  • 難易度:簡単WordPressの管理画面だけでできる・すぐ試せること
  • 難易度:普通少し手間がかかる(念のため、事前にバックアップを取りましょう)
  • 難易度:やや難しいFTPや設定ファイルへの操作が必要(これらが分からない場合や、不慣れな場合は実施するかは慎重に検討ください)
  • 難易度:難しい専門の知識が必要。場合によっては致命的なトラブルにもなりかねませんので自信がない場合は専門家へご相談を

はじめに:この記事で分かること

  • フォルダーだけPHPのバージョンを上げる仕組みと、その使い道
  • php.cgi と .htaccess を置く手順と、500エラーになったときの直し方
  • 表示の速さの測定結果と、速くする設定

さくらのコントロールパネルでは、サイトごとにPHPのバージョンを選べない

さくらのレンタルサーバのPHPのバージョンは、サーバーコントロールパネルの「スクリプト設定」→「言語バージョン設定」で選びますが、ドメインやフォルダーごとの設定はありません。

この記事でご紹介する方法では、フォルダーに php.cgi(指定したバージョンのPHPを呼び出す2行のファイル)を置き、そのフォルダーの .php ファイルを php.cgi で動かすよう .htaccess で指定します。設定が効くのは、置いたフォルダーとその中のフォルダーだけです。当サービスで確かめたサーバーでも、サーバー全体はPHP 7.4のまま、ファイルを置いたフォルダーだけが8.3で動きました。

フォルダーだけPHPのバージョンを上げる使い道

本番のサイトに影響を与えずに新しいPHPを試せるため、次のような使い方ができます。

  • 新しいPHPで動くWordPressのテストができる
    • テスト環境や別のサーバーを用意できないとき(※)でも、同じサーバーのテスト用のフォルダーにWordPressを入れて、新しいPHPでの表示や動きを確かめられます。フォルダーにファイルマネージャーの「パスワード制限」を付けておけば、関係のない人や検索エンジンに見られる事もありません。
    • ※緊急時などに万全の状況で対応できない場合を想定しています。とはいえ、本番サーバーでテストする事は相応にリスクがあります。基本的には本番環境とは隔離されたテスト環境を用意するのが定石です。
  • リニューアル用の新しいサイトを、新しいPHPで作り始める
    • 今のサイトを動かしたまま、別のフォルダーで新しいサイトを8.3で作り、公開の日にサーバー全体を切り替えます。
  • 自作のプラグインやテーマを新しいPHPで試す
    • 開発中のプラグインやテーマが新しいPHPで警告やエラーを出さないかを、本番と同じサーバーの環境で確かめられます。
  • サーバー全体を切り替えた後も、古いサイトだけ前のバージョンに残す
    • 8.3で動かないサイトを直すまでの間、そのサイトのフォルダーだけ7.4で動かします。サポートの終わったバージョンには今後も新しい脆弱性が見つかる可能性があるため、期限を決めて使います。

ただし、この方法で動くPHPは、後で紹介する測定のとおり表示が遅くなりやすく、さくらインターネットのサポートも受けられません。テストや開発の間だけこの方法を使い、実運用し落ち着いた段階でコントロールパネルの設定を変更して正式に最新版PHPを動作させるのが良いでしょう。

php.cgi を置く前に確かめる3つのこと

  1. ファイルを置くフォルダー
    • テスト用のフォルダーは、www やドメインのWeb公開フォルダーの中に新しく作ります(https://example.jp/test/ で開くなら test)。今ある独自ドメインのサイトに置く場合は、コントロールパネルの「ドメイン/SSL」で対象のドメインの「設定」→「基本設定」にある「Web公開フォルダー」が置き場所です。
    • www フォルダーそのもの(初期ドメインのサイトなど)に置くと、設定が中にあるほかのドメインのフォルダーにも効き、そのドメインのサイトを表示できなくなるおそれがあります。この場合は無理に進めずご相談ください。
  2. WordPressのバージョン
  3. バックアップ
    • 今あるサイトのフォルダーに置く場合は、サイトのファイルとデータベースをバックアップし、書き換える前の .htaccess を手元に控えます。

php.cgi と .htaccess を置く手順難易度:やや難しい

PHP 8.3に切り替える例で説明します。

.htaccess や php.cgi の書き間違いで、そのフォルダーのサイトが500エラーで表示できなくなることがあります。今あるサイトに置く場合は、アクセスの少ない時間帯に作業し、うまくいかなければ後で説明する方法で元に戻してください。

1. php.cgi を作る

ローカルのテキストエディターで、次の2行だけのファイルを作り、php.cgi という名前で保存します。

#!/bin/sh
exec /usr/local/php/8.3/bin/php-cgi

2行目の 8.3 が、使うバージョンです。7.4で動かすときは、/usr/local/php/7.4/bin/php-cgi のように数字だけを替えます。当サービスでは、8.3と7.4で動くことを確かめました。

保存するときは、改行コードを「LF」にします。Windowsの改行コード(CRLF)のまま置くと、サーバーがファイルを正しく読めず、500エラーになります。

2. フォルダーにアップロードし、権限を705にする

php.cgi を、FTPソフトかさくらのファイルマネージャーで、切り替えるフォルダーへアップロードします。WordPressのサイトなら、wp-config.php と同じ場所です。

アップロードしたら、php.cgi の権限(パーミッション)を705に変えます。php.cgi はサーバーがプログラムとして実行するファイルのため、実行の権限が必要です。ファイルマネージャーでは、php.cgi を選んで上部の操作から「プロパティ」を開き、属性を705にして「OK」をクリックします。当サービスで確かめたときも、アップロードしたままの権限では500エラーになり、705に変えると動きました。

3. .htaccess に2行を書き足す

同じフォルダーにある .htaccess の先頭に、次の2行を書き足します(.htaccess がなければ、この2行だけで作ります)。

Action phpcgi83 /test/php.cgi
AddHandler phpcgi83 .php

1行目の /test/php.cgi には、サーバーの中のフォルダーの場所ではなく、ブラウザでそのフォルダーを開くときのURLのうち、ドメインより後ろの部分を書きます。

  • https://example.jp/test/ のように、フォルダーで開くテスト環境やサイトの場合: /test/php.cgi
  • 独自ドメインのサイト(https://example.jp/)で、Web公開フォルダーに php.cgi を置いた場合: /php.cgi

WordPressのサイトでは、.htaccess にURLの設定(# BEGIN WordPress から # END WordPress まで)がすでに書かれています。2行はその上に書き足します。BEGIN と END の間は、パーマリンクの設定を保存するたびにWordPressが書き直すため、中に入れると消えることがあります。

ファイルマネージャーの「パスワード制限」の設定も .htaccess に書かれます。手元で作った .htaccess で上書きするとURLの設定やパスワード制限が消えるため、サーバーにある .htaccess を開いて書き足してください(ファイルマネージャーなら「編集」で開けます)。

4. 切り替わったかを確かめる

WordPressの管理画面で「ツール」→「サイトヘルス」を開き、「情報」タブの「サーバー」を開きます。「PHP バージョン」が選んだバージョン(8.3なら 8.3.36 など)になり、「PHP SAPI」が「cgi-fcgi」になっていれば成功です。

最後に、同じサーバーのほかのサイトも開き、表示が変わっていないことを確かめます。

500エラーになったとき、元に戻すとき

手順の後に「500 Internal Server Error」と表示されたら、php.cgi の次の3点を確かめます。

  • 権限が705になっているか
    ファイルマネージャーの「プロパティ」で、今の権限を確かめられます。
  • 改行コードがLFか
    CRLFで保存していた場合は、LFで保存し直してアップロードし、もう一度705にします。
  • 2行目のパスに書き間違いがないか
    /usr/local/php/8.3/bin/php-cgi の、数字と「/」の位置を見直します。

「404 Not Found」と表示される場合は、.htaccess の1行目(/test/php.cgi の部分)が、フォルダーのURLと合っていない可能性があります。

直らないときや急いで元に戻したいときは、.htaccess に書き足した2行を消して保存すれば、コントロールパネルで選んでいるバージョンに戻ります。使わなくなった php.cgi も消しておきます。500エラーのほかの原因は、WordPressの500エラー(Internal Server Error)の原因と直し方で解説しています。

フォルダーごとのPHP設定時 表示速度の違いについて

念のため、フォルダーごとにPHPバージョンを変えた場合の動作速度についても観測してみました。

動かし方PHPを起動するだけWordPress本体のファイルの読み込み
サーバー全体の設定(7.4、モジュールモード)0.09秒0.09秒
フォルダーごとの設定(7.4)0.13秒0.56秒
フォルダーごとの設定(8.3)0.14秒0.73秒
フォルダーごとの設定(8.3)+ファイルキャッシュ0.15秒0.21秒

※2026年10月24日、当サービスで確かめたさくらのレンタルサーバで、ページを開いてから応答が返り始めるまでの時間を15回ずつ測った中央値です(通信の約0.08秒を含みます)。「WordPress本体のファイルの読み込み」は、WordPress 7.1 が毎回読み込む本体のファイル273個(約8MB)を、処理は動かさずに読み込ませた時間で、テーマ・プラグイン・データベースの処理は含みません。

サーバー全体の設定では、一度読み込んだPHPのファイルを覚えておく仕組み(OPcache)が効くため、本体のファイルの読み込みにはほとんど時間がかかりません。フォルダーごとの設定では、ページを開くたびにPHPが起動し直して本体のファイルを読み直すため、約0.5〜0.6秒遅くなりました。プラグインやテーマのファイルが多いサイトほど、この差は大きくなります。

表示を速くしたいとき(OPcacheのファイルキャッシュ)難易度:やや難しい

表の一番下は、OPcacheが覚えた内容をファイルに保存する設定(ファイルキャッシュ)を足した結果です。2回目に開いたときから、遅れは約0.1秒で済みました。最初の1回はキャッシュを作るため、設定しないときと同じくらいかかります。

使うときは、ブラウザから見えない www の外(www と同じ階層)に、キャッシュを置くフォルダー(例: opcache83)を作り、php.cgi を次のように書き換えます。「アカウント名」は、ご自身のものに替えてください。

#!/bin/sh
exec /usr/local/php/8.3/bin/php-cgi -d opcache.enable=1 -d opcache.file_cache=/home/アカウント名/opcache83 -d opcache.file_cache_only=1

この方法をやめるときは、php.cgi と一緒に、キャッシュのフォルダーも消します。

公式のサポート外の方法を使うときの注意

さくらの公式ヘルプでは、利用者が設置したCGI・PHPプログラムの不具合の修正や調査はできないとしています。また、php.cgi が呼び出す /usr/local/php/ のPHPは、さくらインターネットがサーバーに用意しているものです。置き場所が変わったり、そのバージョンの提供が終わったりすると、そのフォルダーは500エラーで表示できなくなります。この方法を使ったフォルダーと指定したバージョンを控えておき、さくらからPHPのお知らせが出たら確かめてください。

テスト環境でエラーが出たら

テスト環境で表示が崩れたり「このサイトで重大なエラーが発生しました」と表示されたりする場合は、WordPress本体・テーマ・プラグインのどれかが新しいPHPに対応していない可能性があります。何年もアップデートしていないサイトでは、本体を段階的にアップデートする必要もあります(何年もアップデートをしていないWordPressをアップデートするには(対応事例))。

自社で進めるのが難しい場合は、古いWordPressのアップデート代行をご覧のうえ、ご相談ください。次の情報を添えていただくと、どこから手を付けるかと、おおよその作業の量をお伝えしやすくなります。

  • サイトのURL
  • WordPressのバージョンと、今のPHPのバージョン(サイトヘルスの「情報」タブで確かめられます)
  • 同じサーバーで運用しているサイトの数
  • 新しいPHPで試したときに表示された画面の文言や、エラーログの内容

よくある質問

  • WordPressをサブフォルダーに入れて、トップページから表示しています。どこに置けばよいですか。
    • トップページを表示する index.php のあるフォルダー(ルート)に置きます。PHPのバージョンは、ブラウザが開いたファイルのあるフォルダーの設定で決まるため、WordPressのフォルダーだけに置くと、管理画面だけが切り替わる仕組みです。ルートに置いた設定は、中のWordPressのフォルダーにも効きます。ルートが www フォルダーの場合は、「php.cgi を置く前に確かめる3つのこと」の1つ目の注意に当たります。
  • サーバー全体を8.3に切り替えたら、置いたファイルはどうなりますか。
    • 当サービスで確かめたサーバーでは、サーバー全体の設定よりフォルダーの .htaccess が優先されたため、置いた設定がそのまま残ります。8.3を試すために置いたフォルダーは、2行と php.cgi を消してコントロールパネルの設定に戻すと、表示も速くなります。
  • PHP 8.4や8.5にできますか。
    • 使えるのは、さくらインターネットがサーバーに用意しているバージョンだけです。2026年10月22日のさくらのお知らせでは、コントロールパネルで選べる最も新しいPHPは8.3です。

まずは、www の中にテスト用のフォルダーを1つ作り、php.cgi と .htaccess を置いて、新しいPHPで動くかを確かめるところから始めてみてください。

※ 本記事は一般的な対処方法の解説です。WordPressやサーバーの構成によって手順や結果は異なります。ファイルやデータベースの操作は、誤るとサイトが表示できなくなることがあるため、作業前に必ずバックアップを取り、ご自身の判断と責任の範囲で行ってください。無理に進めず、専門スタッフや保守契約担当者にご相談ください。ご相談先がない場合は、当サイトへお気軽にご相談ください。

今すぐ相談する(ご相談無料)