Wir führen XAMPP mit PHP 7.0 aus, da für unsere neuen Produkte PHP 7 erforderlich ist.
Es gibt jedoch alte Projekte, die Funktionen wie mysql_connect
usw. verwenden. Diese werden in PHP 7.0 entfernt.
Gibt es eine Möglichkeit, PHP-Versionen in XAMPP einfach zu ändern?
Hinweis : Bitte schlagen Sie nicht vor, ein altes Projekt auf ein kompatibles mit neuen Versionen zu aktualisieren, da ich aufgrund dieser Entscheidungen, die ich als Entwickler (nur als Mitarbeiter) nicht treffen kann, nicht in der Lage bin, dies zu tun.
Antworten:
Führen Sie eine ältere PHP-Version nur für das Verzeichnis Ihres alten Projekts aus: Dies dient meistens dem Zweck. Möglicherweise haben Sie ein oder zwei alte Projekte, die Sie mit einer älteren PHP-Version ausführen möchten. Konfigurieren Sie xampp einfach so, dass ältere PHP-Versionen nur für diese Projektverzeichnisse ausgeführt werden.
Führen Sie eine ältere PHP-Version auf einem separaten Port von xampp aus: Manchmal aktualisieren Sie ein altes Projekt auf die neueste PHP-Version, wenn Sie dasselbe Projekt auf einer neuen und einer älteren PHP-Version hin und her ausführen müssen. Dann können Sie eine ältere PHP-Version an einem anderen Port (z. B. 8056)
http://localhost/any_project/
einstellen. Wenn Sie also zu xampp wechseln, wird PHP 7 ausgeführt, und wenn Sie zuhttp://localhost:8056/any_project/
xampp wechseln, wird PHP 5.6 ausgeführt.Führen Sie eine ältere PHP-Version auf einem virtuellen Host aus: Sie können einen virtuellen Host wie localhost56 erstellen, um PHP 5.6 auszuführen, während Sie PHP 7 auf localhost verwenden können.
Schritt 1: Laden Sie PHP herunter
Wenn Sie also PHP 7 unter xampp ausführen, möchten Sie eine ältere PHP-Version hinzufügen, z. B. PHP 5.6. Laden Sie die nts-Version (Non Thread Safe) des PHP-Zip-Archivs von php.net herunter ( ältere Versionen siehe Archiv ) und extrahieren Sie die Dateien unter
c:\xampp\php56
. Die thread-sichere Version enthält keine php-cgi.exe.Schritt 2: Konfigurieren
php.ini
c:\xampp\php56\php.ini
Datei im Editor öffnen . Wenn die Datei nicht existiert Kopiephp.ini-development
zuphp.ini
und öffnen Sie sie in Notepad. Kommentieren Sie dann die folgende Zeile aus:Schritt 3: Konfigurieren Sie Apache
Öffnen Sie die xampp-Systemsteuerung, klicken Sie auf die Schaltfläche config für Apache und klicken Sie auf
Apache (httpd-xampp.conf)
. Eine Textdatei wird geöffnet. Fügen Sie die folgenden Einstellungen am Ende der Datei ein:Hinweis: Sie können Ihrer xampp-Installation nach den Schritten 1 bis 3 weitere PHP-Versionen hinzufügen, wenn Sie möchten.
Schritt 4 (Option 1): [Verzeichnisse hinzufügen, um eine bestimmte PHP-Version auszuführen]
Jetzt können Sie Verzeichnisse festlegen, die in PHP 5.6 ausgeführt werden. Fügen Sie einfach unten in der Konfigurationsdatei Folgendes hinzu, um Verzeichnisse festzulegen.
Schritt 4 (Option 2): [Ältere PHP-Version auf einem separaten Port ausführen]
Um nun PHP v5.6 auf Port 8056 einzustellen, fügen Sie den folgenden Code am Ende der Konfigurationsdatei hinzu.
Schritt 4 (Option 3): [Führen Sie eine ältere PHP-Version auf einem virtuellen Host aus]
Um einen virtuellen Host (localhost56) in einem Verzeichnis (htdocs56) für die Verwendung von PHP v5.6 unter http: // localhost56 zu erstellen, erstellen Sie das Verzeichnis htdocs56 an Ihrem gewünschten Speicherort und fügen Sie localhost56 zu Ihrer Hosts-Datei hinzu ( siehe How ), und fügen Sie dann den folgenden Code hinzu am Ende der Datei httpd-xampp.conf.
Fertig stellen: Apache speichern und neu starten
Speichern und schließen Sie die Konfigurationsdatei. Starten Sie Apache über die xampp-Systemsteuerung neu. Wenn Sie sich für Option 2 entschieden haben, wird der zusätzliche Port (8056) in Ihrem xampp-Kontrollfeld angezeigt.
Wenn Sie auf den obigen Fehler stoßen, öffnen Sie ihn
httpd-xampp.conf
erneut und kommentieren Sie die folgende Zeile mit einem führenden # (Hash-Zeichen) aus.quelle
php somefile.php
ohne Fehler ausführen?SetEnv PHPRC
sodass ich ihn nicht auskommentieren kann, aber dennoch wird dieser Fehler angezeigt. :(Error message: End of script output before headers: php-cgi.exe
Sie können alle benötigten PHP-Versionen herunterladen und in eigenen Verzeichnissen ablegen, z
c:\php5\
c:\php7\
Sie müssen Ihrem Webserver (Apache) lediglich mitteilen, welche PHP-Version verwendet werden soll, indem Sie das entsprechende Modul laden. In Apache können Sie dies tun, indem Sie die Datei suchen
httpd.conf
und dann die entsprechende Zeile bearbeiten:LoadModule php7_module c:\php7\libphp7.so
Sie müssen natürlich die richtigen Pfade herausfinden - dies dient nur zur Veranschaulichung.
Speichern Sie
httpd.conf
Ihren Server und starten Sie ihn neu. Beachten Sie, dass die Änderungen nicht wirksam werden, wenn Sie sie nicht neu starten.Es gibt keinen GUI-Schalter, um dies zu tun. Sie müssen die
.conf
Datei bearbeiten und dann Apache neu starten. Dies dauert nur ein paar Sekunden und Sie können sogar eine Version auskommentieren, sodass das "Umschalten" nur ein paar Tastenanschläge erfordert, zVerwenden Sie PHP 5:
Verwenden Sie PHP 7:
Sie benötigen nicht mehrere Versionen von XAMPP oder einen Doppelstart oder verwenden einen anderen Computer oder eine der anderen "Lösungen", die komplizierte Problemumgehungen vorgeschlagen haben. Das OP möchte XAMPP verwenden und ihm mitteilen, welche PHP-Version verwendet werden soll. Dies ist die schnellste und effizienteste Methode und erfordert nur eine XAMPP-Installation.
Bearbeiten 1-Nov-2017: Anscheinend sagen einige Leute, dass es
.so
unter Windows keine Dateien gibt . Die Antwort, die ich gegeben habe, wurde angepasst, wie ich Dinge auf meinem Mac eingerichtet habe (der.so
Dateien anstelle von verwendet.dll
). Das Prinzip der Antwort ist jedoch immer noch genau richtig. Sie verwenden die Konfigurationsdatei von Apache,httpd.conf
um anzugeben, wo sich das PHP-Modul (.so
oder.dll
) auf Ihrem System befindet. Der einzige Unterschied für Windows wäre also der Dateiname und / oder der Pfad. Die Antwort, die ich gegeben habe, ist auch für eine Vanille-Installation von Apache / PHP richtig (überhaupt ohne XAMPP).quelle
Sie können wie ich zwei verschiedene xampps herunterladen und installieren: (erstens ist php7, zweitens ist php5)
und wenn du das nicht willst, schlage ich vor, dass du wamp verwendest und Versionen wie hier gezeigt änderst .
quelle
Ich würde die Verwendung von Docker empfehlen. Auf diese Weise können Sie die Umgebung in verschiedene Komponenten aufteilen und die gewünschten jederzeit mischen und anpassen.
Mit Docker können Sie einen Container mit MySQL und einen anderen mit PHP ausführen. Da es sich um separate Images handelt, können Sie zwei Container haben, einen PHP 5 und einen anderen PHP 7, Sie starten jeden gewünschten und Port 80 kann beiden Containern zugeordnet werden.
https://hub.docker.com bietet eine Vielzahl vorkonfigurierter Images, die Sie problemlos installieren und ausführen können.
Ich habe auch Portainer als Image hinzugefügt , mit dem Sie die verschiedenen Aspekte Ihres Docker-Setups verwalten können - innerhalb eines Docker-Images (ich habe diesen Container beim Start gestartet, um zu vermeiden, dass ich die Befehlszeile verwenden muss). Es erledigt nicht alles für Sie und manchmal ist es einfacher, die Images zum ersten Mal über die Befehlszeile zu konfigurieren und zu starten. Nach dem Einrichten können Sie sie jedoch über eine Weboberfläche starten und stoppen.
Es ist auch möglich, beide Container gleichzeitig auszuführen und jedem separate Ports zuzuordnen. Port 80 kann also PHP 5 und 81 PHP 81 zugeordnet werden (oder PHP 7, wenn Sie dies 2017 ansehen).
Es gibt verschiedene Tutorials zum Installieren von Docker ( https://docs.docker.com/engine/installation/ ) und viele andere Tipps zum Eingeben. Versuchen Sie http://www.masterzendframework.com/docker-development-environment/ für eine Konfiguration der Entwicklungsumgebung.
quelle
Ich benutze Uniserver.
Es hat diese Funktion eingebaut.
http://www.uniformserver.com/
So einfach ist das.
Es läuft sogar von einem Flash-Laufwerk. Hat Cron-Emulation, Unterstützung für Perl, MariaDB, einige Versionen von MySQL, FileZilla-Server und ein paar andere Dinge.
quelle
Sie können zwei verschiedene Versionen von XAMPP verwenden.
quelle
Ich arbeite an einem zehn Jahre alten Projekt bei der Arbeit. Also ist 5.6 meine Standardeinstellung. Es gibt auch ältere kleine Projekte, die nur mit 5.2 funktionieren, und ich möchte auch mit 7.3.8 an neuen Versionen für meine persönlichen Projekte arbeiten
Hier ist, was ich getan habe, um 5.2 und 7.3.8 in der Standardversion 5.6 hinzuzufügen.
1 - Heruntergeladene PHP TS-Versionen;
v7.3.8 (aktuell): https://windows.php.net/download/
v5.2: https://www.apachelounge.com/viewtopic.php?t=7349
2 - Nacheinander in die Ordner c: \ xampp \ php738 und c: \ xampp \ php52 extrahiert
3 - Diese Zeilen wurden am Ende von httpd-xampp.conf (oder httpd.conf) hinzugefügt.
*** WICHTIGER HINWEIS: Sie sollten den Skriptaliasnamen NICHT als Zielordnernamen verwenden, er muss unterschiedlich sein. (Zum Beispiel ist / php7x in Ordnung, / php7 nicht)
PHP 7.3.8 für Ordner D: \ www \ php7
PHP 5.2 für Ordner D: \ www \ php52
Einige hilfreiche Hinweise:
Und als letzte Bonusnotiz können Sie einen ähnlichen Ansatz verwenden, wenn Sie einen virtuellen Host mit einer der Versionen einrichten müssen. Eine Probe laravel vhost conf für php 7.3.8;
Dank @Munim Munna für die detaillierte Antwort wollte ich eine solide Probe mit dem oben genannten wichtigen Hinweis teilen.
quelle
Wenn es nicht unbedingt XAMPP sein muss, können Sie versuchen, mit WAMP das zu bekommen, was Sie wollen. WAMP ist so ziemlich dasselbe in verschiedenen Paketen.
Sobald Sie es installiert haben, können Sie hier einfach zwischen PHP-Versionen wechseln:
Sie können so viele Versionen von PHP installieren, wie Sie benötigen.
Hier erfahren Sie, wie es im Detail gemacht wird.
Gehen Sie einfach hier: WAMP herunterladen
Wählen Sie dann Ihren Basisserver aus, zB spätestens mit PHP7.
Wenn WAMP 3 installiert ist, gehen Sie zu Ordner: Addons und wählen Sie die gewünschte PHP-Version (oder Versionen) aus. Sie bieten PHP-Aromen ab PHP 5.3.29, die mit mysql_connect funktionieren sollten.
Um das Addon zu installieren, zeigen Sie während der Installation (doppelklicken Sie auf die exe-Datei) einfach auf den Ordner, in dem Sie WAMP 3 installiert haben.
Anschließend können Sie Inhalte anderer Ordner verwenden, z. B. Anwendungen usw., um weitere Funktionen hinzuzufügen
Alles ist miteinander verbunden, sodass Sie sich auf das Codieren konzentrieren können, ohne Ihre Umgebung zu hacken.
quelle
Ja, du kannst. Ich gehe davon aus, dass Sie bereits eine xampp installiert haben. So,
So arbeite ich mit mehreren installierten xampp
quelle
Es ist möglich, mehrere PHP-Versionen mit einer einzigen XAMPP-Installation einzurichten. Die folgenden Anweisungen funktionieren unter Windows.
C:\xampp\php
werdenC:\xampp\php-7.1.11
.C:\xampp\php-5.4.45
.Jetzt müssen Sie die XAMPP- und Apache-Konfiguration bearbeiten:
C:\xampp\apache\conf\httpd.conf
, die XAMPP - Einstellungen für PHP zu finden, sollten Sie es auf etwas ändern wie zum Beispiel:Wenn Sie
#
die anderen PHP-Versionen (mit ) kommentieren müssen, wird jeweils nur eineInclude
interpretiert.Jetzt im
C:\xampp\apache\conf\extra
Verzeichnis umbenennenhttpd-xampp.conf
inhttpd-xampp.conf.7.1
und neue Konfigurationsdatei für hinzufügenhttpd-xampp.conf.5.4.45
. In meinem Fall habe ich die conf-Datei einer anderen Installation von XAMPP für PHP 5.5 kopiert, da die Syntax für jede Version leicht unterschiedlich sein kann.Bearbeiten
httpd-xampp.conf.5.4.45
undhttpd-xampp.conf.7.1
ersetzen Sie dort alle Verweise auf dasphp
Verzeichnis durch die neuephp-X.X
Version. Hier müssen für jede Datei mindestens 10 Änderungen vorgenommen werden.Sie müssen jetzt die php.ini für die beiden Versionen bearbeiten. Zum Beispiel für PHP 7.1, zu bearbeiten ,
C:\xampp\php-7.1.11\php.ini
wo Sie den Pfad des PHP - Verzeichnis ersetzen wirdinclude_path
,browscap
,error_log
,extension_dir
..Und das ist es. Sie können Apache jetzt über die XAMPP-Systemsteuerung starten. Um von einer Version zu einer anderen zu wechseln, müssen Sie nur
C:\xampp\apache\conf\httpd.conf
die enthaltene PHP-Version bearbeiten und ändern, bevor Sie Apache neu starten.quelle
Führen Sie dies in Eingabeaufforderungsfenstern (cmd.exe) aus.
Ändern Sie es je nachdem, wo Sie die PHP 7-Installation platzieren.
quelle
Sie müssen Ihre Zeit nicht mit diesen Konfigurationen verschwenden, verwenden Sie einfach MAMP :)
MAMP verfügt über eine PHP-Versionsauswahlfunktion auf der Benutzeroberfläche.
quelle
Dies ist wahrscheinlich die am wenigsten technische Antwort auf die Frage, aber auch die am einfachsten zu erreichende.
Wenn Sie zwei Laufwerke wie C: und D: haben , können Sie eine separate Instanz von XAMPP auf beiden Laufwerken mit unterschiedlichen PHP-Versionen installieren. Dies dauerte weniger als 10 Minuten und ist am wenigsten fehleranfällig.
Ich erstelle gerade zwei Desktop-Verknüpfungen zu xampp-control.exe und benenne die Verknüpfungen nach ihrer PHP-Version. Ich hoffe, das hilft jemandem wie mir, der eine sehr schnelle und schmutzige Lösung bevorzugt.
quelle
Befolgen Sie diese einfachen Schritte . Ich verwende derzeit XAMPP unter PHP 7.2, benötige aber PHP 5.6, um an alten Projekten arbeiten zu können
SCHRITT 1
Laden Sie die Thread Safe-Version von PHP unter https://windows.php.net/download herunter
Legen Sie Dateien auf Ihrem [Laufwerk] ab: \ xampp \ php5.6
SCHRITT 2
Kopieren Sie [Laufwerk]: \ xampp \ apache \ conf \ extra \ httpd-xampp.conf
Benennen Sie es in [Laufwerk] um: \ xampp \ apache \ conf \ extra \ httpd-xampp5.6.conf. Benennen Sie die Datei je nach PHP-Version um
SCHRITT 3
Bearbeiten Sie die neu erstellte 'httpd-xampp5.6.conf'
Grundsätzlich müssen Sie die gesamte PHP-Quelle und die DLL ändern
Vor
Nach dem
Hier ist meine Datei: https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec
SCHRITT 4
Bearbeiten Sie die Datei [Laufwerk]: \ xampp \ apache \ conf \ httpd.conf
Vor
Nach dem
SCHRITT 5
Bearbeiten Sie Ihre PHP 5.6-Konfiguration - php.ini
Fügen Sie Ihr Erweiterungsverzeichnis hinzu: extension_dir = "C: \ xampp \ php5.6 \ ext"
SCHRITT 6
Starten Sie Apache
SCHRITT 7
Bearbeiten Sie den Pfad der PHP-Umgebungsvariablen unter Windows
quelle
Vielleicht etwas spät, aber ich benutze einen Stapel, um die PHP-Ordner umzubenennen (eine leicht modifizierte Version des PHPS-Schalters, den ich vor Jahren gefunden habe).
Sie kopieren die verschiedenen Ordner in Ihre XAMPP-Installation. Jeder PHP-Ordner (außer dem aktiven) erhält die Versionsnummer als Suffix (z. B. php_5.6.32 ). In ALL PHP Ordner, eine Datei (PHP_VERSION) erstellt, die nur die jeweilige Versionsnummer enthält, so dass das Skript diese Informationen greifen kann. Aber das ist alles in der README beschrieben.
Seit PHP7 lädt die httpd-xampp.conf die php7ts.dll anstelle der php5ts.dll . Also musste ich das Skript (PHPSwitch.php) erweitern, um auch diese Konfigurationsdateien umzubenennen, indem ich den gleichen Ansatz verfolgte.
quelle
Ich musste das Gleiche tun, also googelte ich wie und kam zum Stapelüberlauf, wo das OP das gleiche Problem hatte ... Also meine Erkenntnisse ... Ich habe versucht, Dateien aus allen Richtungen umzubenennen UND meine Schlussfolgerung war im Grunde, dass es mich braucht zu lang. SOOOO Ich habe gerade Version 7 von hier installiert:
https://www.apachefriends.org/index.html (Dienste beenden und xampp beenden, bevor Sie es versuchen)
Auf die Frage, wo der Verzeichnisname so abgelegt werden soll (geben Sie ihm einen anderen Namen):
und
DONEZO! Stellen Sie jetzt sicher, dass Sie die Dienste beenden und beenden, bevor Sie hin und her wechseln, und Sie haben 2 sterile XAMPP-Envs zum Spielen.
Hurra! jetzt kann ich tatsächlich arbeiten!
quelle
Verwenden Sie diesen PHP-Umschalter
Sie können die PHP-Version für jedes gewünschte Projekt über die vhost-Konfiguration steuern.
quelle
Ich weiß, dass dies der alte Beitrag ist, aber ich möchte mitteilen, dass es eine Bibliothek gibt, in der mysql_connect () in PHP 7 noch ausgeführt wird. Sie überschreibt die eigentliche Funktion (mysql_connect () wird von mysqli_connect () überschrieben, die in dieser Bibliothek funktioniert).
Ich fand aus diesem Video https://www.youtube.com/watch?v=Eqd-jJu4sQ4
hoffentlich hilft es
quelle