Зачем переключаться между версиями PHP, когда вы можете использовать несколько версий PHP одновременно с одной установкой xampp ? С одной установкой xampp у вас есть 2 варианта:
Запустите старую версию PHP только для каталога вашего старого проекта:
это будет служить цели большую часть времени, у вас может быть один или два старых проекта, которые вы намереваетесь запустить с более старой версией PHP. Просто настройте xampp для запуска более старой версии PHP только для этих каталогов проекта.
Запустите старую версию PHP на отдельном порту xampp: иногда вы можете обновить старый проект до последней версии PHP, когда вам нужно запустить один и тот же проект на новой и старой версии PHP туда-сюда. Затем вы можете установить более старую версию PHP на другой порт (скажем, 8056), чтобы при http://localhost/any_project/
переходе на xampp запускался PHP 7, а при http://localhost:8056/any_project/
переходе на xampp запускался PHP 5.6.
Запустите старую версию PHP на виртуальном хосте: вы можете создать виртуальный хост, такой как localhost56, для запуска PHP 5.6, в то время как вы можете использовать PHP 7 на localhost.
Давайте настроим это.
Шаг 1: Скачать PHP
Итак, у вас есть PHP 7, работающий под xampp, вы хотите добавить к нему более старую версию PHP, скажем, PHP 5.6. Загрузите nts (Non Thread Safe) версию PHP zip-архива с php.net (см. Архив для более старых версий) и распакуйте файлы в c:\xampp\php56
. Потокобезопасная версия не включает php-cgi.exe.
Шаг 2. Настройкаphp.ini
Откройте c:\xampp\php56\php.ini
файл в блокноте. Если файл не существует копии php.ini-development
в php.ini
и открыть его в блокноте. Затем раскомментируйте следующую строку:
extension_dir = "ext"
Шаг 3: Настройте apache
Откройте панель управления xampp, нажмите кнопку конфигурации для apache и нажмите Apache (httpd-xampp.conf)
. Откроется текстовый файл, поместите следующие настройки внизу файла:
ScriptAlias /php56 "C:/xampp/php56"
Action application/x-httpd-php56-cgi /php56/php-cgi.exe
<Directory "C:/xampp/php56">
AllowOverride None
Options None
Require all denied
<Files "php-cgi.exe">
Require all granted
</Files>
</Directory>
Примечание: Вы можете добавить больше версий PHP к вашей установке xampp, следуя шагам 1-3, если хотите.
Шаг 4 (вариант 1): [Добавить каталоги для запуска определенной версии PHP]
Теперь вы можете установить каталоги, которые будут работать в PHP 5.6. Просто добавьте следующее в нижней части файла конфигурации, чтобы установить каталоги.
<Directory "C:\xampp\htdocs\my_old_project1">
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</Directory>
<Directory "C:\xampp\htdocs\my_old_project2">
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</Directory>
Шаг 4 (вариант 2): [Запустить старую версию PHP на отдельном порту]
Теперь, чтобы установить PHP v5.6 на порт 8056, добавьте следующий код в конец файла конфигурации.
Listen 8056
<VirtualHost *:8056>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</VirtualHost>
Шаг 4 (вариант 3): [Запустить старую версию PHP на виртуальном хосте]
Чтобы создать виртуальный хост (localhost56) в каталоге (htdocs56) для использования PHP v5.6 на http: // localhost56 , создайте каталог htdocs56 в нужном месте и добавьте localhost56 в файл hosts ( см. Как ), а затем добавьте следующий код в конец файла httpd-xampp.conf.
<VirtualHost localhost56:80>
DocumentRoot "C:\xampp\htdocs56"
ServerName localhost56
<Directory "C:\xampp\htdocs56">
Require all granted
</Directory>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</VirtualHost>
Готово: сохранить и перезапустить Apache
Сохраните и закройте файл конфигурации, перезапустите apache с панели управления xampp. Если вы выбрали вариант 2, вы можете увидеть дополнительный порт (8056), указанный на панели управления xampp.
Обновление для ошибки:
неправильно сформированный заголовок из сценария php-cgi.exe : неправильный заголовок
Если вы столкнулись с вышеуказанной ошибкой, откройте httpd-xampp.conf
снова и закомментируйте следующую строку с начальным # (хэш-символ).
SetEnv PHPRC "\\path\\to\\xampp\\php"