Весьма актуальная задача: Иметь возможность по клику мыши менять версию PHP на Windows машине. Ранее была подобная статья, в которой создаётся 3 копии httpd.conf. Зачем? Когда есть наипростейшее решение.
Скачиваем архив с Apache HTTPd и распаковываем его в папку, например, C:\a\apache. В папке C:\a\apache\conf создаём два файла конфигурации…
… и добавляем строку:
В файл C:\a\apache\conf\httpd.conf после всех LoadModule.
Создаём символическую ссылку php.conf <===> php5.conf
Скачиваем необходимые версии PHP…
… и распаковываем их в папки C:\a\php56 и C:\a\php70 соответственно.
Ранее, в конфигах Apache, мы указали, что PHP следует цеплять из директории C:\a\php, по-этому создаём символическую ссылку php <===> php56:
Теперь инсталируем сервис…
… и создаём bat'ники для выбора версии PHP:
Теперь, для удобства, создаём ярлыки для bat'ников, и указываем в свойствах каждого «Запуск от имени администратора».
Спасибо за внимание!
UPD:
По подсказке gewisser сделал немного иначе:
В папке C:\a\apache\conf создал два конфигурационных файла:
… для PHP 5.6
… для PHP 7.0
… а из файла httpd.conf удалил строку
И поменял bat'ники для запуска:
… для PHP 5.6
… для PHP 7.0
P.S.
Этот способ не является каким-то ноу-хау или чем-то ещё, чем будут пользоваться миллионы, это всего лишь ответ на пост как наиболее удобный вариант.
Многие знакомы с многочисленными WAMP-комплектами, однако, судя по тому, что подобных статей не мало, можно сделать вывод, что не все хотят ими пользоваться.
Если общество не против, пишите в комменты ссылки на подобные комплекты и подобные статьи, я их прикреплю к своей статье.
Спасибо!
Скачиваем архив с Apache HTTPd и распаковываем его в папку, например, C:\a\apache. В папке C:\a\apache\conf создаём два файла конфигурации…
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:\a\apache\conf\httpd.conf после всех LoadModule.
Создаём символическую ссылку php.conf <===> php5.conf
Скрытый текст
mklink c:\a\apache\conf\php.conf c:\a\apache\conf\php5.conf
Скачиваем необходимые версии PHP…
… и распаковываем их в папки C:\a\php56 и C:\a\php70 соответственно.
Ранее, в конфигах Apache, мы указали, что PHP следует цеплять из директории C:\a\php, по-этому создаём символическую ссылку php <===> php56:
Скрытый текст
mklink /d c:\a\php c:\a\php56
Теперь инсталируем сервис…
Скрытый текст
c:\a\apache\bin\httpd -k install -n ApacheHTTPd
c:\a\apache\bin\httpd -k start -n ApacheHTTPd
… и создаём bat'ники для выбора версии PHP:
php56.bat
@echo off
c:\a\apache\bin\httpd -k stop -n ApacheHTTPd
del c:\a\apache\conf\php.conf
rd c:\a\php
mklink /d c:\a\php c:\a\php56
mklink c:\a\apache\conf\php.conf c:\a\apache\conf\php5.conf
c:\a\apache\bin\httpd -k start -n ApacheHTTPd
php70.bat
@echo off
c:\a\apache\bin\httpd -k stop -n ApacheHTTPd
del c:\a\apache\conf\php.conf
rd c:\a\php
mklink /d c:\a\php c:\a\php70
mklink c:\a\apache\conf\php.conf c:\a\apache\conf\php7.conf
c:\a\apache\bin\httpd -k start -n ApacheHTTPd
Теперь, для удобства, создаём ярлыки для bat'ников, и указываем в свойствах каждого «Запуск от имени администратора».
Спасибо за внимание!
UPD:
По подсказке gewisser сделал немного иначе:
В папке C:\a\apache\conf создал два конфигурационных файла:
… для PHP 5.6
LoadModule php5_module "c:/a/php56/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "c:/a/php56"
Include "c:/a/apache/conf/httpd.conf"
… для PHP 7.0
LoadModule php7_module "c:/a/php70/php7apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "c:/a/php70"
Include "c:/a/apache/conf/httpd.conf"
… а из файла httpd.conf удалил строку
Include conf/php.conf
И поменял bat'ники для запуска:
… для PHP 5.6
@echo off & title Apache HTTPd with PHP 5.6
c:\a\apache\bin\httpd -k stop -n ApacheHTTPd
c:\a\apache\bin\httpd -k uninstall -n ApacheHTTPd
c:\a\apache\bin\httpd -k install -n ApacheHTTPd -f "c:/a/apache/conf/php56.conf"
c:\a\apache\bin\httpd -k start -n ApacheHTTPd
… для PHP 7.0
@echo off & title Apache HTTPd with PHP 7.0
c:\a\apache\bin\httpd -k stop -n ApacheHTTPd
c:\a\apache\bin\httpd -k uninstall -n ApacheHTTPd
c:\a\apache\bin\httpd -k install -n ApacheHTTPd -f "c:/a/apache/conf/php70.conf"
c:\a\apache\bin\httpd -k start -n ApacheHTTPd
P.S.
Этот способ не является каким-то ноу-хау или чем-то ещё, чем будут пользоваться миллионы, это всего лишь ответ на пост как наиболее удобный вариант.
Многие знакомы с многочисленными WAMP-комплектами, однако, судя по тому, что подобных статей не мало, можно сделать вывод, что не все хотят ими пользоваться.
Если общество не против, пишите в комменты ссылки на подобные комплекты и подобные статьи, я их прикреплю к своей статье.
Спасибо!