Навіщо переключатися між версіями 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 на virtualhost: Ви можете створити віртуальний хост, як localhost56, щоб запустити PHP 5.6, тоді як ви можете використовувати PHP 7 у localhost.
Давайте налаштуємо його.
Крок 1: Завантажте PHP
Отже, у вас PHP 7 працює під xampp, ви хочете додати до нього старішу версію PHP, скажімо, PHP 5.6. Завантажте nts (Non Thread Safe) версію zip-архіву PHP з 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 на virtualhost]
Щоб створити virtualhost (localhost56) у каталозі (htdocs56) для використання PHP v5.6 на http: // localhost56 , створіть каталог htdocs56 у потрібному місці та додайте localhost56 у свій файл хостів ( див. Як ), а потім додайте наступний код внизу файла 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"