xamppのドキュメントルートhtdocsフォルダを、phpのバージョンで切り替える方法

前回、windows版xamppで作ったテスト環境を、php5.6とphp7.2のバージョンのどちらかを選択して起動出来る様に改造しました。

今回は、phpのバージョン違いでphpファイルが実行出来たり出来なかったりと不具合も多いので、htdocsフォルダもphp5.6とphp7.2のバージョンで分けて読み込む様にします。

xampp環境

xamppのインストールフォルダは、c:\xamppとします。

下準備

「htdocs」フォルダを複製

xamppのインストールフォルダ

phpのバージョンで住み分けするように、本家xamppの「htdocs」フォルダを2つコピーして、それぞれ「htdocs72」フォルダと「htdocs56」フォルダとリネームしておきます。

本家があると間違って本家を読み込んだ時に気がつかないので、「htdocs」を別名に「htdocs_org」とでもしておきます。

コピーする場所はhtdocsフォルダと同じにしておくので、最終的に
C:\xampp\htdocs_org
C:\xampp\htdocs72
C:\xampp\htdocs56
となります。

Apacheの設定ファイルも複製

Apacheの設定ファイル

設定ファイルをphpのバージョン毎に作ることによって、Apache起動時にhtdocsを選択できるようにします。

まず、「C:\xampp\apache\conf」にある「httpd.conf」を同じフォルダに2つコピーして「httpd72.conf」、「httpd56.conf」とリネームします。

次に「C:\xampp\apache\conf\extra」にある「httpd-xampp.conf」と「httpd-ssl.conf」も、それぞれ2つコピーして、「httpd-xampp72.conf」「httpd-xampp56.conf」「httpd-ssl72.conf」「httpd-ssl56.conf」とリネームします。

「httpd.conf」のDocumentRootを書き換え

まず、「httpd72.conf」と「httpd56.conf」をテキストエディタで開き、「htdocs」を検索する。
以下の2ヶ所があるので、書き換えます。

DocumentRoot "C:/xampp/htdocs"
<Directory "C:/xampp/htdocs">

httpd72.confは

DocumentRoot "C:/xampp/htdocs72"
<Directory "C:/xampp/htdocs72">

と書き換えます。

httpd56.confは

DocumentRoot "C:/xampp/htdocs56"
<Directory "C:/xampp/htdocs56">

と書き換えます。

「httpd.conf」のIncludeを書き換え


次に
「Include “conf/extra/httpd-xampp.conf”」

「Include conf/extra/httpd-ssl.conf」
を探して、

httpd72.confは
「Include “conf/extra/httpd-xampp72.conf”」

「Include conf/extra/httpd-ssl72.conf」
に書き換えます。

httpd56.confは
「Include “conf/extra/httpd-xampp56.conf”」

「Include conf/extra/httpd-ssl56.conf」
に書き換えます。

「httpd-xampp.conf」を書き換え

「C:\xampp\apache\conf\extra」フォルダに作った「httpd-xampp.conf」のコピーファイルを書き換えます。

<Directory "C:/xampp/htdocs/xampp">


「httpd-xampp72.conf」は、

<Directory "C:/xampp/htdocs72/xampp">

「httpd-xampp56.conf」は、

<Directory "C:/xampp/htdocs56/xampp">

「httpd-ssl.conf」を書き換え

「C:\xampp\apache\conf\extra」フォルダに作った「httpd-ssl.conf」のコピーファイルを書き換えます。

DocumentRoot "C:/xampp/htdocs"


「httpd-xampp72.conf」は、

DocumentRoot "C:/xampp/htdocs72"

「httpd-xampp56.conf」は、

DocumentRoot "C:/xampp/htdocs56"

Apacheの起動オプション-fを付けてバッチファイルから起動

Apacheを起動するためにバッチファイルを作り、

「apache\bin\httpd.exe -f conf/httpd56.conf」と書けばドキュメントルートが「C:/xampp/htdocs56」
のxamppになり、

「apache\bin\httpd.exe -f conf/httpd72.conf」と書けばドキュメントルートが「C:/xampp/htdocs72」
xamppになります。

phpのバージョン切り替えて起動と合わせると、xamppを二つインストールして無駄にディスク容量を消費すること無く、php5.6とphp7.2の両方のテスト環境が手に入ります。

詳しいバッチファイルの作り方はこちらの記事に書いています。
XAMPPで複数のPHPを切り替えて起動する方法(シンボリックリンクを使わない方法)