Весьма актуальная задача: Иметь возможность по клику мыши менять версию PHP на Windows машине. Ранее была подобная статья, в которой создаётся 3 копии httpd.conf. Зачем? Когда есть наипростейшее решение.
Скачиваем архив с Apache HTTPd и распаковываем его в папку, например, C:aapache. В папке C:aapacheconf создаём два файла конфигурации…
LoadModule php5_module "c:/a/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "c:/a/php"
LoadModule php7_module "c:/a/php/php7apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "c:/a/php"
… и добавляем строку:
Include conf/php.conf
В файл C:aapacheconfhttpd.conf после всех LoadModule.
Создаём символическую ссылку php.conf <===> php5.conf
mklink c:aapacheconfphp.conf c:aapacheconfphp5.conf
Скачиваем необходимые версии PHP…
… и распаковываем их в папки C:aphp56 и C:aphp70 соответственно.
Ранее, в конфигах Apache, мы указали, что PHP следует цеплять из директории C:aphp, по-этому создаём символическую ссылку php <===> php56:
mklink /d c:aphp c:aphp56
Теперь инсталируем сервис…
c:aapachebinhttpd -k install -n ApacheHTTPd
c:aapachebinhttpd -k start -n ApacheHTTPd
… и создаём bat'ники для выбора версии PHP:
@echo off
c:aapachebinhttpd -k stop -n ApacheHTTPd
del c:aapacheconfphp.conf
rd c:aphp
mklink /d c:aphp c:aphp56
mklink c:aapacheconfphp.conf c:aapacheconfphp5.conf
c:aapachebinhttpd -k start -n ApacheHTTPd
@echo off
c:aapachebinhttpd -k stop -n ApacheHTTPd
del c:aapacheconfphp.conf
rd c:aphp
mklink /d c:aphp c:aphp70
mklink c:aapacheconfphp.conf c:aapacheconfphp7.conf
c:aapachebinhttpd -k start -n ApacheHTTPd
Теперь, для удобства, создаём ярлыки для bat'ников, и указываем в свойствах каждого «Запуск от имени администратора».
Спасибо за внимание!
Автор: andrium