Używamy XAMPP z PHP 7.0, ponieważ nasze nowe produkty wymagają PHP 7.
Ale są stare projekty, które używają takich funkcji, jak mysql_connect
itp. Zostały one usunięte w PHP 7.0.
Czy jest więc sposób na łatwą zmianę wersji PHP w XAMPP?
Uwaga : Proszę nie sugerować uaktualniania starego projektu do kompatybilnego z nowymi wersjami, ponieważ nie jestem w stanie tego zrobić z powodu decyzji, których nie mogę podjąć jako programista (tylko pracownik).
Odpowiedzi:
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 dohttp://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.
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: Skonfiguruj
php.ini
Otwórz
c:\xampp\php56\php.ini
plik w notatniku. Jeśli plik nie istnieje, skopiujphp.ini-development
gophp.ini
i otwórz w notatniku. Następnie odkomentuj następujący wiersz: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: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.
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.
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.
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.
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).źródło
php somefile.php
bez żadnych błędów?SetEnv PHPRC
więc nie mogę go skomentować, ale nadal otrzymuję ten błąd. :(Error message: End of script output before headers: php-cgi.exe
Możesz pobrać dowolne wersje PHP i umieścić je w ich własnych katalogach, np
c:\php5\
c:\php7\
Wszystko, co musisz zrobić, to powiedzieć serwerowi WWW (Apache), której wersji PHP ma używać, co robisz, ładując odpowiedni moduł. W Apache możesz to zrobić, znajdując plik,
httpd.conf
a następnie edytując odpowiednią linię:LoadModule php7_module c:\php7\libphp7.so
Oczywiście musisz znaleźć właściwe ścieżki - to tylko dla ilustracji.
Zapisz
httpd.conf
i zrestartuj serwer. Uwaga, jeśli nie uruchomisz go ponownie, zmiany nie zaczną obowiązywać.Nie ma przełącznika GUI, aby to zrobić, musisz edytować
.conf
plik, a następnie ponownie uruchomić Apache. Wykonanie tego zajmuje tylko kilka sekund, a można nawet skomentować wersję, więc „przełączenie” zajmuje tylko kilka naciśnięć klawiszy, np.Użyj PHP 5:
Użyj PHP 7:
Nie potrzebujesz wielu wersji XAMPP , podwójnego rozruchu, używania innej maszyny lub żadnego innego „rozwiązania”, które sugeruje zawiłe obejścia. OP chce używać XAMPP i powiedzieć mu, której wersji PHP ma użyć. Jest to najszybszy i najbardziej efektywny sposób na zrobienie tego i wymaga tylko jednej instalacji XAMPP.
Edycja 1 listopada 2017 r .: Najwyraźniej niektórzy mówią, że w
.so
systemie Windows nie ma plików. Odpowiedź, której udzieliłem, została dostosowana na podstawie tego, jak skonfigurowałem rzeczy na moim Macu (który używa.so
plików zamiast.dll
). Zasada odpowiedzi jest jednak nadal dokładnie poprawna. Używasz pliku konfiguracyjnego Apache,httpd.conf
aby określić lokalizację modułu PHP (.so
lub.dll
) w systemie. Zatem jedyną różnicą w systemie Windows byłaby nazwa pliku i / lub lokalizacja ścieżki. Podana przeze mnie odpowiedź jest również poprawna dla zwykłej instalacji Apache / PHP (w ogóle bez XAMPP).źródło
Możesz pobrać i zainstalować dwa różne xamppy, tak jak ja: (pierwszy to php7, drugi to php5)
a jeśli nie chcesz tego robić, sugeruję użycie wampa i zmianę wersji, jak pokazano tutaj .
źródło
Poleciłbym użycie Dockera, pozwala to podzielić środowisko na różne komponenty oraz mieszać i dopasowywać te, które chcesz w dowolnym momencie.
Docker pozwoli ci uruchomić jeden kontener z MySQL, inny z PHP. Ponieważ są to oddzielne obrazy, możesz mieć dwa kontenery, jeden PHP 5, drugi PHP 7, możesz uruchomić dowolny, który chcesz, a port 80 można zmapować do obu kontenerów.
https://hub.docker.com oferuje szeroką gamę wstępnie skonfigurowanych obrazów, które można zainstalować i uruchomić bez większych problemów.
Dodałem również portainer jako obraz, który pozwala zarządzać różnymi aspektami konfiguracji dockera - z poziomu obrazu dockera (uruchomiłem ten kontener podczas uruchamiania, aby zaoszczędzić mi konieczności korzystania z wiersza poleceń). Nie robi wszystkiego za Ciebie, a czasami łatwiej jest skonfigurować i uruchomić obrazy po raz pierwszy z wiersza poleceń, ale po skonfigurowaniu możesz je uruchamiać i zatrzymywać za pomocą interfejsu internetowego.
Możliwe jest również uruchomienie obu kontenerów w tym samym czasie i mapowanie oddzielnych portów do każdego z nich. Tak więc port 80 można zmapować na PHP 5 i 81 na PHP 81 (lub PHP 7, jeśli oglądasz to w 2017 roku).
Istnieją różne samouczki dotyczące instalowania Dockera ( https://docs.docker.com/engine/installation/ ) i mnóstwo innych rzeczy „jak” pisać. Wypróbuj http://www.masterzendframework.com/docker-development-environment/, aby uzyskać konfigurację środowiska programistycznego.
źródło
Używam Uniserver.
Ma wbudowaną tę funkcję.
http://www.uniformserver.com/
To takie proste.
Działa nawet z dysku flash. Posiada emulację crona, obsługę perla, mariaDB, kilka wersji Mysql, serwer filezilla i kilka innych rzeczy.
źródło
Możesz mieć dwie różne wersje XAMPP.
źródło
Pracuję nad dziesięcioletnim projektem w pracy. Więc 5.6 jest moim domyślnym. Istnieją również starsze małe projekty, które działają tylko z 5.2, a także chcę pracować nad nowymi wersjami dla moich osobistych projektów z 7.3.8
Oto, co zrobiłem, aby dodać 5.2 i 7.3.8 do domyślnej wersji 5.6.
1 - Pobrane wersje php TS;
Wersja 7.3.8 (najnowsza): https://windows.php.net/download/
v5.2: https://www.apachelounge.com/viewtopic.php?t=7349
2 - Wyodrębniono do folderu c: \ xampp \ php738 i c: \ xampp \ php52 w kolejności
3 - Dodano te linie na dole httpd-xampp.conf (lub httpd.conf);
*** WAŻNA UWAGA: NIE należy używać nazwy aliasu skryptu jako nazwy folderu docelowego, muszą one być różne. (na przykład / php7x jest w porządku, / php7 nie)
PHP 7.3.8 dla folderu D: \ www \ php7
PHP 5.2 dla folderu D: \ www \ php52
Kilka pomocnych uwag:
I na koniec, jeśli chcesz ustawić wirtualnego hosta z dowolną wersją, możesz zastosować podobne podejście. Przykładowy plik laravel vhost conf dla php 7.3.8;
Dzięki @Munim Munna za szczegółową odpowiedź, chciałem podzielić się solidną próbką z ważną informacją powyżej.
źródło
O ile nie musi to być absolutnie i zdecydowanie XAMPP, możesz spróbować uzyskać to, czego chcesz, dzięki WAMP. WAMP to prawie to samo w innym opakowaniu.
Po zainstalowaniu możesz po prostu przełączać się między wersjami php tutaj:
Możesz zainstalować tyle wersji PHP, ile potrzebujesz.
Oto szczegółowo, jak to się robi.
Po prostu przejdź tutaj: pobieranie WAMP
Następnie wybierz serwer podstawowy, np. Najnowszy z php7.
Następnie, po zainstalowaniu WAMP 3, przejdź do folderu: addons i wybierz wersję (lub wersje) php, której szukasz. Oferują wersje php zaczynające się od php 5.3.29, które powinny działać z mysql_connect.
Aby zainstalować dodatek, podczas instalacji (kliknij dwukrotnie plik exe) po prostu wskaż folder, w którym masz zainstalowany WAMP 3.
Następnie możesz użyć zawartości innych folderów, takich jak: aplikacje itp., Aby dodać więcej funkcji
Wszystko jest połączone, więc możesz skoncentrować się na kodowaniu, a nie hakowaniu środowiska.
źródło
Tak, możesz. Zakładam, że masz już zainstalowany xampp. Więc,
W ten sposób pracuję z wieloma zainstalowanymi xampp
źródło
Możliwe jest skonfigurowanie wielu wersji PHP za pomocą jednej instalacji XAMPP. Poniższe instrukcje działają w systemie Windows.
C:\xampp\php
getC:\xampp\php-7.1.11
.C:\xampp\php-5.4.45
.Teraz musisz edytować konfigurację XAMPP i Apache:
C:\xampp\apache\conf\httpd.conf
, zlokalizuj ustawienia XAMPP dla PHP, powinieneś zmienić je na coś takiego:Gdzie musisz komentować (z
#
) innymi wersjami PHP, aby tylko jednaInclude
była zinterpretowana w tym czasie.Teraz w
C:\xampp\apache\conf\extra
katalogu zmień nazwęhttpd-xampp.conf
nahttpd-xampp.conf.7.1
i dodaj nowy plik konfiguracyjny dlahttpd-xampp.conf.5.4.45
. W moim przypadku skopiowałem plik conf innej instalacji XAMPP dla php 5.5, ponieważ składnia może się nieznacznie różnić dla każdej wersji.Edytuj
httpd-xampp.conf.5.4.45
ihttpd-xampp.conf.7.1
zamień tam wszystkie odwołania dophp
katalogu na nowąphp-X.X
wersję. Należy tu wprowadzić co najmniej 10 zmian dla każdego pliku.Teraz musisz edytować plik php.ini dla obu wersji. Na przykład dla PHP 7.1, edycja
C:\xampp\php-7.1.11\php.ini
, gdzie można zastąpić ścieżkę katalogu PHPinclude_path
,browscap
,error_log
,extension_dir
..I to wszystko. Możesz teraz uruchomić Apache z Panelu sterowania XAMPP. Aby przełączyć się z jednej wersji na inną, wystarczy edytować
C:\xampp\apache\conf\httpd.conf
i zmienić dołączoną wersję PHP przed ponownym uruchomieniem Apache.źródło
uruchom to w oknach wiersza polecenia (cmd.exe).
zmień go w zależności od tego, gdzie umieścisz instalację php 7.
źródło
Nie musisz tracić czasu na te konfiguracje, po prostu użyj MAMP :)
MAMP ma funkcję wyboru wersji PHP w interfejsie.
źródło
To prawdopodobnie najmniej techniczna odpowiedź na to pytanie, ale jednocześnie najłatwiejsza do wykonania.
Jeśli masz dwa dyski, takie jak C: i D: możesz zainstalować oddzielne wystąpienie XAMPP na obu dyskach z różnymi wersjami php. Zajęło mi to mniej niż 10 minut i jest najmniej podatne na błędy.
Po prostu tworzę dwa skróty na pulpicie do obu xampp-control.exe i nazywam je według ich wersji php. Mam nadzieję, że pomoże to komuś takiemu jak ja, który woli bardzo szybkie i brudne rozwiązanie.
źródło
Wykonaj te proste kroki . Obecnie używam XAMPP na PHP 7.2, ale potrzebuję PHP 5.6 do pracy ze starymi projektami
KROK 1
Pobierz wersję PHP Thread Safe ze strony https://windows.php.net/download
Umieść pliki na swoim [Dysk]: \ xampp \ php5.6
KROK 2
Skopiuj [Dysk]: \ xampp \ apache \ conf \ extra \ httpd-xampp.conf
Zmień nazwę na [Dysk]: \ xampp \ apache \ conf \ extra \ httpd-xampp5.6.conf Zmień nazwę pliku w zależności od wersji PHP
KROK 3
Edytuj nowo utworzony „httpd-xampp5.6.conf”
w zasadzie musisz zmienić wszystkie źródła PHP i .dll
Przed
Po
Oto mój plik: https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec
KROK 4
Edytuj plik [Dysk]: \ xampp \ apache \ conf \ httpd.conf
Przed
Po
KROK 5
Edytuj konfigurację PHP 5.6 - php.ini
Dodaj katalog rozszerzeń: extension_dir = "C: \ xampp \ php5.6 \ ext"
KROK 6
Uruchom Apache
KROK 7
Edytuj ścieżkę zmiennej środowiskowej PHP w systemie Windows
źródło
Może trochę późno, ale używam partii do zmiany nazw folderów PHP (nieco zmodyfikowana wersja phpswitcha, którą znalazłem lata temu).
Kopiujesz różne foldery do instalacji XAMPP. Każdy folder PHP (poza aktywnym) otrzymuje numer wersji jako sufiks (np. Php_5.6.32 ). We WSZYSTKICH folderach PHP tworzony jest plik (PHP_VERSION), który zawiera tylko odpowiedni numer wersji, aby skrypt mógł pobrać te informacje. Ale to wszystko jest opisane w README.
Od PHP7 httpd-xampp.conf ładuje php7ts.dll zamiast php5ts.dll . Musiałem więc rozszerzyć skrypt (PHPSwitch.php), aby zmienić nazwy tych plików konfiguracyjnych, stosując to samo podejście.
źródło
Musiałem zrobić to samo, więc wyszukałem w Google, jak i doszedłem do przepełnienia stosu, gdzie OP miał ten sam problem ... Więc moje ustalenia ... Próbowałem zmienić nazwy plików z różnych kierunków ORAZ mój wniosek był w zasadzie to mnie zabierało za długo. SOOOO Skończyło się na instalacji wersji 7 stąd:
https://www.apachefriends.org/index.html (wyłącz usługi i zamknij xampp przed próbą)
Na pytanie, gdzie umieścić katalog, nazwij go w ten sposób (nadaj mu inną nazwę):
i
DONEZO! Teraz po prostu pamiętaj, aby zabić usługi i wyjść przed zamianą w tę i z powrotem, a masz 2 sterylne środowiska XAMPP do gry.
Brawo! teraz mogę zabrać się do pracy!
źródło
Użyj tego przełącznika php
Możesz kontrolować wersję php do dowolnego projektu, który chcesz za pomocą konfiguracji vhost.
źródło
Wiem, że to stary post, ale chcę udostępnić, że jest tam biblioteka, w której nadal działa mysql_connect () w PHP 7. Działa poprzez nadpisanie rzeczywistej funkcji (mysql_connect () jest nadpisywana przez mysqli_connect (), która działa na tej bibliotece).
Znalazłem z tego filmu https://www.youtube.com/watch?v=Eqd-jJu4sQ4
miejmy nadzieję, że to pomoże
źródło