PHP

さくらのレンタルサーバーでディレクトリ毎に異なるバージョンのPHPを使う方法:設定手順と注意点

Web開発においてPHPは欠かせない言語の一つです。しかし、プロジェクトによっては古いバージョンのPHPを使わざるを得ない場合があります。

さくらのレンタルサーバーのコントロールパネルではPHPのバージョンを選択できますが全体のPHPバージョンとして適用されるのでディレクトリ毎の設定はできません。
今回は、さくらのレンタルサーバーでディレクトリ毎に異なるバージョンのPHPを利用する方法について解説します。

なぜ古いバージョンのPHPが必要なのか

古いバージョンのPHPが必要となる主な理由は以下の通りです。

  • 互換性:既存のプロジェクトやシステムが古いバージョンに依存している場合
  • コスト:新しいバージョンへの移行には時間やコストがかかる
  • プラグイン/ライブラリ:新しいバージョンでは動作しない古いプラグインやライブラリを使用している場合

セキュリティや脆弱性などの危険性、注意点

古いバージョンのPHPを使用する際には、セキュリティリスクを理解しておく必要があります。古いバージョンは脆弱性が発見されても修正が提供されないことが多く、攻撃者に悪用される可能性があります。そのため、古いバージョンを使う場合は、セキュリティ対策を徹底することが重要です。

設定手順

.htaccessの設定

まず、.htaccessファイルを開き、以下の内容を追加します。

Action myphp-script /pver/phpv53.cgi
AddHandler myphp-script .php

 
この設定は、.php拡張子を持つファイルが実行されるときに、phpv53.cgiスクリプトを介して処理されるように指定します。phpv53の部分は利用したいPHPのバージョンに応じて変更してください。

文字コードと改行コード:
.htaccessファイルは、UTF-8文字コードで保存します。改行コードは、サーバーのOSに合わせて「LF」(UNIX系)または「CRLF」(Windows系)を使用します。

cgiファイルの設定

次に、phpv53.cgiファイルを作成し、以下の内容を記述します。

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

 
このスクリプトは、PHPの実行ファイルへのパスを指定しています。バージョンやパスはサーバーの設定に応じて適宜変更してください。

文字コードと改行コード:
cgiファイルはシェルスクリプトとして実行されるため、文字コードは通常UTF-8改行コードは「LF」を使用します。

ファイルのパーミッション設定

.htaccessとphpv53.cgiのパーミッションを適切に設定します。一般的には、644が推奨されます。

phpinfoでバージョンの確認

PHPのバージョンを確認するために、phpinfo()関数を使用します。以下の内容を含むPHPファイルを作成し、サーバーにアップロードしてブラウザからアクセスしてください。

<?php
phpinfo();
?>

 
文字コードと改行コード:
PHPファイルは、通常UTF-8文字コードで保存します。改行コードは、サーバーのOSに合わせて「LF」または「CRLF」を使用します。
表示される情報の中でPHPバージョンが期待通りであることを確認します。

メリット

  • 既存のプロジェクトやシステムをそのまま利用できる
  • 移行にかかる時間やコストを節約できる

デメリット

  • セキュリティリスクが高まる
  • 新しい機能や改善が利用できない
  • 長期的にはメンテナンスが困難になる

まとめ

さくらのレンタルサーバーでディレクトリ毎に異なるバージョンのPHPを利用する方法を解説しました。セキュリティのリスクを理解し、必要な場合のみ古いバージョンを使用するようにしてください。また、できるだけ早めに新しいバージョンへの移行を検討することをお勧めします。ファイルの文字コードと改行コードにも注意して、正しく設定することが重要です。

 
※流用される場合は自己責任でお願いします。

この記事の運営者(IT部長)からのお知らせ

PCトラブルは解決しましたか?

もし「会社のPCが全部遅い」「Office 365のエラーが多発する」「ネットワークが不安定」といった、調べても解決しない「会社全体」のお悩みがありましたら、ぜひご相談ください。

「Windows11 高速化」といったお悩み検索で毎月1,200人以上が訪れる、
このサイトの運営者
(建設会社IT部長)が、
川崎・横浜・東京城南エリアの法人様限定で
「無料ITお困りごと診断」を行っています。

※無理な営業は一切いたしません。