Po co przełączać się między wersjami PHP, skoro można używać wielu wersji PHP w tym samym czasie przy jednej instalacji xampp ? Dzięki pojedynczej instalacji xampp masz 2 opcje:
Uruchom starszą wersję PHP tylko dla katalogu Twojego starego projektu:
będzie to służyć przez większość czasu, możesz mieć jeden lub dwa stare projekty, które zamierzasz uruchomić ze starszą wersją PHP. Po prostu skonfiguruj xampp do uruchamiania starszej wersji PHP tylko dla tych katalogów projektu.
Uruchom starszą wersję PHP na oddzielnym porcie xampp: Czasami możesz aktualizować i stary projekt do najnowszej wersji PHP, gdy musisz uruchomić ten sam projekt na nowej i starszej wersji PHP w tę iz powrotem. Następnie możesz ustawić starszą wersję PHP na innym porcie (powiedzmy 8056), więc kiedy przejdziesz do http://localhost/any_project/
xampp, uruchomi PHP 7, a kiedy przejdziesz do http://localhost:8056/any_project/
xampp, uruchomi PHP 5.6.
Uruchom starszą wersję PHP na virtualhost: Możesz utworzyć virtualhost, taki jak localhost56, aby uruchomić PHP 5.6, podczas gdy możesz używać PHP 7 na hoście lokalnym.
Skonfigurujmy to.
Krok 1: Pobierz PHP
Więc masz PHP 7 działające pod xampp, chcesz dodać do niego starszą wersję PHP, powiedzmy PHP 5.6. Pobierz wersję nts (Non Thread Safe) archiwum zip PHP z php.net (zobacz archiwum dla starszych wersji) i rozpakuj pliki w c:\xampp\php56
. Wersja bezpieczna wątkowo nie zawiera php-cgi.exe.
Krok 2: Skonfigurujphp.ini
Otwórz c:\xampp\php56\php.ini
plik w notatniku. Jeśli plik nie istnieje, skopiuj php.ini-development
go php.ini
i otwórz w notatniku. Następnie odkomentuj następujący wiersz:
extension_dir = "ext"
Krok 3: Skonfiguruj Apache
Otwórz panel sterowania xampp, kliknij przycisk konfiguracji dla apache i kliknij Apache (httpd-xampp.conf)
. Plik tekstowy otworzy się i umieści następujące ustawienia na dole pliku:
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>
Uwaga: Jeśli chcesz, możesz dodać więcej wersji PHP do swojej instalacji xampp, wykonując kroki od 1 do 3.
Krok 4 (opcja 1): [Dodaj katalogi, aby uruchomić określoną wersję PHP]
Teraz możesz ustawić katalogi, które będą działały w PHP 5.6. Po prostu dodaj poniższy tekst na dole pliku konfiguracyjnego, aby ustawić katalogi.
<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>
Krok 4 (opcja 2): [Uruchom starszą wersję PHP na osobnym porcie]
Teraz, aby ustawić PHP v5.6 na port 8056, dodaj następujący kod na końcu pliku konfiguracyjnego.
Listen 8056
<VirtualHost *:8056>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</VirtualHost>
Krok 4 (opcja 3): [Uruchom starszą wersję PHP na serwerze wirtualnym]
Aby utworzyć virtualhost (localhost56) w katalogu (htdocs56), aby używać PHP v5.6 na http: // localhost56 , utwórz katalog htdocs56 w żądanej lokalizacji i dodaj localhost56 do pliku hosts ( zobacz, jak ), a następnie dodaj następujący kod na dole pliku 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>
Zakończ: Zapisz i uruchom ponownie Apache
Zapisz i zamknij plik konfiguracyjny, uruchom ponownie apache z panelu sterowania Xampp. Jeśli wybrałeś opcję 2, możesz zobaczyć dodatkowy port (8056) wymieniony w panelu sterowania xampp.
Aktualizacja z powodu błędu:
zniekształcony nagłówek skryptu „php-cgi.exe”: nieprawidłowy nagłówek
Jeśli napotkasz powyższy błąd, otwórz httpd-xampp.conf
ponownie i zakomentuj następujący wiersz z początkowym znakiem # (znak krzyżyka).
SetEnv PHPRC "\\path\\to\\xampp\\php"