Frage Gibt es eine Möglichkeit, zwei PHP-Versionen in XAMPP zu verwenden?


Wir verwenden XAMPP mit PHP 7.0, da unsere neuen Produkte PHP 7 benötigen.

Aber es gibt alte Projekte, die Funktionen wie verwenden mysql_connectusw. Diese werden in PHP 7.0 entfernt.

Gibt es eine Möglichkeit, PHP-Versionen in XAMPP einfach zu ändern?

Hinweis : Bitte schlage nicht vor, altes Projekt auf neue Versionen zu aktualisieren, weil ich dazu nicht in der Lage bin   Entscheidungen, die ich als Entwickler nicht bekommen kann (nur ein Angestellter).


76
2017-08-21 05:58


Ursprung


Antworten:


Sie können die von Ihnen benötigten PHP-Versionen herunterladen und in ihre eigenen Verzeichnisse stellen, z.

c:\php5\

c:\php7\

Alles, was Sie tun müssen, ist Ihrem Webserver (Apache) mitzuteilen, welche Version von PHP Sie verwenden sollen, indem Sie das entsprechende Modul laden. In Apache können Sie dies tun, indem Sie die Datei finden httpd.conf und dann die entsprechende Zeile bearbeiten:

LoadModule php7_module c:\php7\libphp7.so

Sie müssen natürlich die richtigen Pfade herausfinden - das dient nur zur Illustration.

sparen httpd.conf und starte deinen Server neu. Beachten Sie, dass die Änderungen nicht wirksam werden, wenn Sie sie nicht erneut starten.

Es gibt keinen GUI-Schalter, um dies tun zu können, müssen Sie die bearbeiten .conf Datei und dann Apache neu starten. Dies dauert nur ein paar Sekunden und Sie könnten sogar eine Version auskommentieren, so dass das "Umschalten" nur ein paar Tastenanschläge erfordert, z.B.

Benutze PHP 5:

LoadModule php5_module c:\php5\libphp5.so
#LoadModule php7_module c:\php7\libphp7.so

Benutze PHP 7:

#LoadModule php5_module c:\php5\libphp5.so
LoadModule php7_module c:\php7\libphp7.so

Sie benötigen nicht mehrere Versionen von XAMPP, oder zum Dual-Boot, oder verwenden Sie eine andere Maschine oder eine der anderen "Lösungen", die gewickelte Workarounds vorgeschlagen haben. Das OP möchte XAMPP verwenden und ihm mitteilen, welche PHP-Version verwendet werden soll. Dies ist der schnellste und effizienteste Weg und erfordert nur eine XAMPP-Installation.

Bearbeiten 1-Nov-2017: Anscheinend sagen einige Leute, dass es keine gibt .so Dateien unter Windows. Die Antwort, die ich gegeben habe, wurde aus der Art und Weise übernommen, wie ich Dinge auf meinem Mac eingerichtet habe .so Dateien statt .dll). Das Prinzip der Antwort ist jedoch immer noch genau richtig. Sie verwenden die Konfigurationsdatei von Apache, httpd.conf konkretisieren woher das PHP-Modul (.so oder .dll) befindet sich auf Ihrem System. Der einzige Unterschied für Windows wäre also der Dateiname und / oder Pfad. Die Antwort, die ich gegeben habe, ist auch richtig für eine Vanilla-Installation von Apache / PHP (ohne XAMPP überhaupt).


63
2017-08-25 12:40



Sie können herunterladen und installiere zwei verschiedene xampps wie ich es tue: (erstens ist php7 zweitens php5) enter image description here

und wenn du das nicht willst, schlage ich vor, dass du wamp verwendest und die Versionen wie gezeigt änderst Hier.


20
2017-08-23 09:39



Warum wechseln Sie zwischen PHP-Versionen, wenn Sie verwenden können mehrere PHP   Ausführung gleichzeitig mit eine einzige xampp-Installation?   Mit einer einzigen xampp-Installation haben Sie 2 Möglichkeiten:

  1. Führen Sie eine ältere PHP-Version nur für das Verzeichnis Ihres alten Projekts aus:  Dies wird die meiste Zeit dem Zweck dienen, Sie können ein oder zwei haben alte Projekte, die Sie mit älterer PHP-Version ausführen möchten. Konfigurieren Sie einfach xampp, um ältere PHP-Version nur für diese Projektverzeichnisse.

  2. Führen Sie eine ältere PHP-Version auf einem separaten Port von xampp aus: Manchmal magst du es Aktualisieren Sie Ihr altes Projekt auf die neueste PHP - Version, wenn Sie das ausführen müssen Gleiches Projekt auf neue und ältere PHP-Version hin und her. Dann können Sie eine ältere PHP-Version auf einem anderen Port einstellen (sagen wir 8056) also wenn du gehst http://localhost/any_project/ Xampp läuft PHP 7 und wenn du gehst http://localhost:8056/any_project/ xampp läuft php 5.6.

Lass es einrichten.

Schritt 1: Laden Sie PHP herunter

Du hast also php 7 unter xampp, du willst eine ältere php-Version hinzufügen, sagen wir PHP 5.6. Laden Sie das PHP-Zip-Archiv von Hier und extrahiere die Dateien unter c:\xampp\php56.

Schritt 2: Konfigurieren php.ini

Öffnen c:\xampp\php56\php.ini Datei im Notizblock. Wenn die Datei nicht existiert, kopieren Sie sie php.ini-development zu php.ini und öffne es im Notizblock. Dann die folgende Zeile auskommentieren:

extension_dir = "ext"

Schritt 3: Konfigurieren Sie Apache

Öffnen Sie das xampp-Kontrollfeld, klicken Sie auf die Konfigurationsschaltfläche für den Apache und klicken Sie auf Apache (httpd-xampp.conf). Eine Textdatei wird geöffnet, die folgenden Einstellungen werden am Ende der Datei vorgenommen:

ScriptAlias /php56 "C:/xampp/php56"
<Directory "C:/xampp/php56">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

Hinweis:  Sie können weitere PHP-Versionen zu Ihrer xampp-Installation hinzufügen, wenn Sie möchten, indem Sie die Schritte 1 bis 3 ausführen.

Schritt 4 (Option 1):  [Verzeichnisse hinzufügen, um spezifische PHP-Version auszuführen]

Jetzt können Sie Verzeichnisse einstellen, die in PHP 5.6 laufen. Fügen Sie am unteren Ende der Konfigurationsdatei Folgendes hinzu, um Verzeichnisse festzulegen.

<Directory "C:\xampp\htdocs\my_old_project1">
    UnsetEnv PHPRC
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56
        Action application/x-httpd-php56 "/php56/php-cgi.exe"
    </FilesMatch>
</Directory>

<Directory "C:\xampp\htdocs\my_old_project2">
    UnsetEnv PHPRC
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56
        Action application/x-httpd-php56 "/php56/php-cgi.exe"
    </FilesMatch>
</Directory>

Schritt 4 (Option 2):  [Ältere PHP-Version auf einem separaten Port ausführen]

Um jetzt PHP v5.6 auf Port 8056 zu setzen, fügen Sie den folgenden Code am Ende der Konfigurationsdatei hinzu.

Listen 8056
<VirtualHost *:8056>
    UnsetEnv PHPRC
    <FilesMatch "\.php$">
        php_flag engine off
        SetHandler application/x-httpd-php56
        Action application/x-httpd-php56 "/php56/php-cgi.exe"
    </FilesMatch>
</VirtualHost>

Fertig: Speichern und starten Sie Apache neu

Speichern und schließen Sie die Konfigurationsdatei, Starten Sie den Apache über das XAMpp-Kontrollfeld neu. Wenn Sie Option 2 gewählt haben, können Sie den zusätzlichen Port (8056) in Ihrem xampp-Kontrollfeld sehen.

enter image description here


18
2018-03-31 10:10



Ich würde empfehlen, Docker zu verwenden, damit Sie die Umgebung in verschiedene Komponenten aufteilen und die gewünschten mischen und anpassen können.

Docker ermöglicht es Ihnen, einen Container mit MySQL, einen anderen mit PHP auszuführen. Da es sich um separate Bilder handelt, können Sie zwei Container haben, einen PHP 5 einen anderen PHP 7, Sie starten den, den Sie wünschen, und der Port 80 kann beiden Containern zugeordnet werden.

https://hub.docker.com hat eine große Auswahl an vorkonfigurierten Bildern, die Sie ohne großen Aufwand installieren und ausführen können.

Ich habe auch hinzugefügt portainer als ein Bild, mit dem Sie die verschiedenen Aspekte Ihres Docker-Setups verwalten können - von einem Docker-Image aus (ich habe diesen Container beim Start gestartet, um zu vermeiden, dass ich die Befehlszeile verwenden muss). Es ist nicht alles für Sie und manchmal ist es einfacher, die Bilder zum ersten Mal über die Befehlszeile zu konfigurieren und zu starten, aber nach der Einrichtung können Sie sie über eine Webschnittstelle starten und stoppen.

Es ist auch möglich, beide Container gleichzeitig auszuführen und jeweils separate Ports zuzuordnen. So kann Port 80 zu PHP 5 und 81 zu PHP 81 gemappt werden (oder PHP 7, wenn Sie dies 2017 beobachten).

Es gibt verschiedene Tutorials zur Installation von Docker ( https://docs.docker.com/engine/installation/) und viele andere "wie" Dinge eingeben. Versuchen http://www.masterzendframework.com/docker-entwicklungsumgebung/ für eine Entwicklungsumgebungskonfiguration.


11
2017-08-27 14:04



Ja, du kannst. Ich nehme an, Sie haben eine XAMPP bereits installiert. Damit,

  • Schließen Sie alle xampp-Instanzen. Verwenden Sie den Task-Manager stop apache und mysqld.
  • Benennen Sie dann das XAMPP in XAMPP1 oder etwas nach XAMPP-Name um.
  • Laden Sie jetzt die andere xampp-Version herunter. Erstellen Sie nur einen Ordnernamen xampp. Installieren Sie den heruntergeladenen XAMPP dort.
  • Jetzt, je nach der xampp-Version Ihrer Anforderung, benennen Sie den Zielordner nur in xampp und anderen Ordner in einen anderen Namen um.

So arbeite ich mit mehreren xampp installiert


4
2017-08-28 16:03



Sie können zwei verschiedene Versionen von XAMPP verwenden.

  • Downloaden Sie diese Dateien von https://www.apachefriends.org/download.html und installieren Sie es in einem Verzeichnis Ihrer Wahl, zum Beispiel in C: \ 5.6.31 \ xampp und C: \ 7.1.18 \ xampp.
  • Nach jeder Installation gehen Sie zum installierten Verzeichnis (zB C: \ 5.6.31 \ xampp, C: \ 7.1.18 \ xampp) und starten Sie die "setup_xampp.bat" und Sie sollten etwas wie sehen Dies.
  • Sie können Verknüpfungen von "xampp-control.exe" auf Ihrem Desktop erstellen (Rechtsklick auf "xampp-control.exe" Senden an -> Desktop) und Verknüpfungen umbenennen für zB. "xampp 5.6.31" und "xampp 7.1.8".
  • Starten Sie das XAMPP Control Panel mit einem Doppelklick auf "xampp-control.exe" oder eine zuvor erstellte Verknüpfung und starten Sie Apache und MySQL Server.
  • Um die Installation zu testen, öffnen Sie Ihren Browser und geben Sie 127.0.0.1 oder localhost in die Adressleiste ein. Sie sollten den XAMPP-Startbildschirm sehen.
  • Öffnen Sie nicht mehr als ein XAMPP-Kontrollfeld.
  • XAMPP deinstallieren? Entfernen Sie einfach das Verzeichnis "xampp". Aber vorher bitte den Apache und mysql herunterfahren.
  • Das ist alles. Sie können verschiedene PHP-Versionen verwenden, die das entsprechende XAMPP-Kontrollfeld öffnen.

4
2017-08-27 09:33



Sie müssen Ihre Zeit mit diesen Konfigurationen nicht einfach verschwenden MAMP :)

MAMP hat eine PHP-Versionsauswahlfunktion an der Schnittstelle.


2
2017-08-28 13:24



Wenn es nicht absolut und definitiv XAMPP sein muss, können Sie versuchen, mit WAMP zu bekommen, was Sie wollen. WAMP ist in verschiedenen Paketen so ziemlich dasselbe.

Sobald Sie es installiert haben, können Sie hier einfach zwischen PHP-Versionen wechseln:

enter image description here

Sie können so viele PHP-Versionen installieren, wie Sie benötigen.

Hier ist, wie es im Detail gemacht wird.

Geh einfach hierhin: WAMP herunterladen

Wählen Sie dann Ihren Basisserver, z. zuletzt mit php7.

Wenn WAMP 3 installiert ist, gehe zum Ordner: Addons und wählen Sie die PHP-Version (oder Versionen), nach der Sie suchen. Sie bieten PHP-Varianten ab PHP 5.3.29, die mit mysql_connect funktionieren sollten.

Um das Addon zu installieren, zeigen Sie während der Installation (Doppelklick auf die EXE-Datei) einfach auf den Ordner, in dem Sie WAMP 3 installiert haben.

Dann können Sie den Inhalt anderer Ordner verwenden, wie: Anwendungen usw., um mehr Funktionalität hinzuzufügen

Alles hat eine Schnittstelle, so dass Sie sich auf die Programmierung konzentrieren können und nicht Ihre Umgebung hacken.


2
2018-01-09 21:05



Es ist möglich, mehrere PHP-Versionen mit einer einzigen XAMPP-Installation einzurichten. Die folgenden Anweisungen funktionieren für Windows.

  1. Installieren Sie die neueste XAMPP-Version für Windows (in meinem Fall war es mit PHP 7.1)
  2. Stellen Sie sicher, dass Apache nicht über die XAMPP-Systemsteuerung ausgeführt wird
  3. Benennen Sie das php-Verzeichnis im XAMPP-Installationsverzeichnis um, z C:\xampp\php werden C:\xampp\php-7.1.11.
  4. Laden Sie die Version von PHP herunter, die Sie zusätzlich ausführen möchten (zB: PHP 5.4.45)
  5. Verschieben Sie das PHP-Verzeichnis von der heruntergeladenen Version in das XAMPP-Installationsverzeichnis. Benennen Sie es um, damit es die PHP-Version enthält. Sowie C:\xampp\php-5.4.45.

Jetzt müssen Sie die XAMPP- und Apache-Konfiguration bearbeiten:

  1. Im C:\xampp\apache\conf\httpd.conf, suchen Sie die XAMPP-Einstellungen für PHP, sollten Sie sie wie folgt ändern:

Wo du kommentieren musst (mit #) die anderen PHP-Versionen also nur eine Include wird zu der Zeit interpretiert werden.

#XAMPP settings PHP 7
Include "conf/extra/httpd-xampp.conf.7.1"

#XAMPP settings PHP 5.4.45
#Include "conf/extra/httpd-xampp.conf.5.4.45"
  1. Jetzt in C:\xampp\apache\conf\extra Verzeichnis umbenennen httpd-xampp.conf zu httpd-xampp.conf.7.1 und füge eine neue Konfigurationsdatei hinzu für httpd-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.

  2. Bearbeiten httpd-xampp.conf.5.4.45 und httpd-xampp.conf.7.1 und ersetze dort alle Hinweise auf die php Verzeichnis mit dem neuen php-X.X Ausführung. Es müssen mindestens 10 Änderungen für jede Datei vorgenommen werden.

  3. Sie müssen nun die php.ini für die beiden Versionen bearbeiten. Zum Beispiel für PHP 7.1, bearbeiten C:\xampp\php-7.1.11\php.ini wo du den Pfad des php Verzeichnisses für ersetzen wirst include_path, browscap, error_log, extension_dir..

Und das ist es. Sie können Apache nun über die XAMPP-Systemsteuerung starten. Und um von einer Version zu einer anderen zu wechseln, müssen Sie nur bearbeiten C:\xampp\apache\conf\httpd.conf und ändern Sie die enthaltene PHP-Version, bevor Sie Apache neu starten.


2
2018-03-12 08:42