Несколько версий PHP на Windows машине

в 14:33, , рубрики: Apache, php, php5, php7

Весьма актуальная задача: Иметь возможность по клику мыши менять версию PHP на Windows машине. Ранее была подобная статья, в которой создаётся 3 копии httpd.conf. Зачем? Когда есть наипростейшее решение.

Скачиваем архив с Apache HTTPd и распаковываем его в папку, например, C:aapache. В папке C:aapacheconf создаём два файла конфигурации…

php5.conf

LoadModule php5_module "c:/a/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "c:/a/php"

php7.conf

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:

php56.bat

@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

php70.bat

@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

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js