Posted at

Windows環境で複数バージョンのPHPをインストール


Apacheのインストール

まずは、Windows用のApacheをhttp://www.apachelounge.com/download/からダウンロードする。

そして、配置したいディレクトリにzipを解凍してconf\httpd.confのServerRootやDocumentRootなどを設定する。


httpd.conf

# D:\Server\Apache-2.4

ServerRoot "D:\Server\Apache-2.4"


PHPのインストール

Windows用のPHPをhttp://www.php.net/からダウンロードする。

そして、配置したいディレクトリにzipを解凍してphp.iniのextension_dirやinclude_pathを設定する。


php.ini

# D:\Server\PHP-7.2

include_path = ".;D:\Server\PHP-7.2\includes"
extension_dir = "D:\Server\PHP-7.2\ext"


ApacheでPHPバージョンの切り分ける

バージョンごとにApacheのhttpd.confhttpd-php.confD:\Server\Apache-2.4\conf\php-[version]\に作成してインクルードでconfを読み込む。


httpd.conf

# D:\Server\Apache-2.4\conf\php-7.2

Include D:\Server\Apache-2.4\conf\httpd.conf
Include D:\Server\Apache-2.4\conf\ext\httpd-*.conf
Include D:\Server\Apache-2.4\conf\php-7.2/httpd-*.conf
Include D:\Server\Apache-2.4\conf\vhosts\*.conf

バーチャルホストの設定はディレクトリを分けておくとPHPバージョンが変わっても共通にできるので便利。


httpd-php.conf

# D:\Server\Apache-2.4\conf\php-7.2

LoadFile "D:\Server\PHP-7.2\php7ts.dll"
LoadModule php7_module "D:\Server\PHP-7.2\php7apache2_4.dll"
<IfModule mime_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
PHPIniDir "D:\Server\PHP-7.2\"
</IfModule>


ApacheをWindowsのサービスに登録する

サービスを登録する場合

httpd.exe -k install -n "Apache24-php72" -f "D:\Server\Apache-2.4\conf\php-7.2\httpd.conf"

サービスを削除する場合

httpd.exe -k uninstall -n "Apache24-php72"