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


157

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_connectusw. 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.


Ich glaube nicht, dass es eine Problemumgehung für das gibt, was Sie tun möchten, außer ein Upgrade. Außerdem sollten Sie keine Möglichkeiten finden, alte und veraltete APIs kompatibel zu machen. Sie sollten vollständig entfernt werden. Natürlich ist das eine Menge Arbeit, aber es würde Ruhe garantieren
Rotimi

1
Ich stoppe und starte Apache, wenn ich PHP-Versionen in MAMP wechseln möchte. Es ist ein Schmerz, aber es funktioniert.
Scott C Wilson

Sie könnten dual booten

Sie können einen virtuellen Host erstellen und dann für jeden eine PHP-Version angeben
Aref Ben Lazrek,

2
@IlmariKaronen Ich möchte auf Ihrer Entwicklungsarbeitsstation zwischen ihnen wechseln. Ich möchte einfach PHP 5 verwenden, wenn ich Projekt A mache, ich möchte PHP 7, wenn ich Projekt B mache. Selbst die Antwort mit der höchsten Bewertung funktioniert nicht, ich kann sie nicht finden ... Und viele Benutzer ...
ich bin die

Antworten:


133

Warum zwischen PHP-Versionen wechseln, wenn Sie mit einer einzigen xampp-Installation mehrere PHP-Versionen gleichzeitig verwenden können ? Bei einer einzelnen xampp-Installation haben Sie zwei Möglichkeiten:

  1. 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.

  2. 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 zu http://localhost:8056/any_project/xampp wechseln, wird PHP 5.6 ausgeführt.

  3. 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.

Lass es uns einrichten.

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: Konfigurierenphp.ini

c:\xampp\php56\php.iniDatei im Editor öffnen . Wenn die Datei nicht existiert Kopie php.ini-developmentzu php.iniund öffnen Sie sie in Notepad. Kommentieren Sie dann die folgende Zeile aus:

extension_dir = "ext"

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:

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>

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.

<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>

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.

Listen 8056
<VirtualHost *:8056>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</VirtualHost>

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.

<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>

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.

Geben Sie hier die Bildbeschreibung ein

Update für Fehler:
fehlerhafter Header aus Skript 'php-cgi.exe': Fehlerhafter Header

Wenn Sie auf den obigen Fehler stoßen, öffnen Sie ihn httpd-xampp.conferneut und kommentieren Sie die folgende Zeile mit einem führenden # (Hash-Zeichen) aus.

SetEnv PHPRC "\\path\\to\\xampp\\php"

9
Hallo, ich habe diese Methode ausprobiert (Schritt 4, Option 1), aber aus dem Skript 'php-cgi.exe' wurde ein fehlerhafter Header angezeigt: Schlechter Header: <br />, irgendwelche Ideen, was könnte das Problem sein?
Priyanshu

@Priyanshu ist Ihre PHP-Installation in Ordnung? Können Sie PHP-Dateien über die Befehlszeile php somefile.phpohne Fehler ausführen?
Munim Munna

2
Die Antwort enthält nicht einmal mehr den einzuschließenden Code, SetEnv PHPRCsodass ich ihn nicht auskommentieren kann, aber dennoch wird dieser Fehler angezeigt. :(
Brett

1
Hallo. Wenn ich localhost: 8056 ausführe, erhalte ich die Seite Objekt nicht gefunden.
Nas

1
jemand in der Lage, mehrere PHP-Version mit xdebug zu arbeiten? Ich habeError message: End of script output before headers: php-cgi.exe
Noman

87

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.confund 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.confIhren 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 .confDatei 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, z

Verwenden Sie PHP 5:

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

Verwenden Sie 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 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 .sounter Windows keine Dateien gibt . Die Antwort, die ich gegeben habe, wurde angepasst, wie ich Dinge auf meinem Mac eingerichtet habe (der .soDateien anstelle von verwendet .dll). Das Prinzip der Antwort ist jedoch immer noch genau richtig. Sie verwenden die Konfigurationsdatei von Apache, httpd.confum anzugeben, wo sich das PHP-Modul ( .sooder .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).


3
Ich habe noch einmal nachgesehen. Ich konnte es nicht finden. Können Sie bitte meine httpd.conf-Datei überprüfen. Dies ist die Kopie davon. freetexthost.com/sjxz4lh1i5 Bitte lassen Sie mich wissen, wenn Sie diese Zeile finden, die ich ändern sollte.
Ich bin die dümmste Person

2
Es gibt keine libphp7.so in XAMPP und keine LoadModule-Zeichenfolge in der conf-Datei
Federico Schiocchet

2
Ich konnte diesen Eintrag auch nicht finden. Ich habe auch mein PHP-Verzeichnis durchsucht und konnte überhaupt keine .so-Dateien finden.
Eoin

19
In v3.2.2 befindet sich die Zeile in xampp / apache / conf / extra / httpd-xampp.conf
Manuel

5
Es ist nicht nur eine Zeile. Sie müssen einen guten Teil von httpd-xampp.conf bearbeiten. Daher ist es besser, jedes Mal die gesamte httpd-xampp.conf zu wechseln.
Jeffz

34

Sie können wie ich zwei verschiedene xampps herunterladen und installieren: (erstens ist php7, zweitens ist php5) Geben Sie hier die Bildbeschreibung ein

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


4
Wieso würdest du das machen? Sie installieren wieder viel dieselbe Software, nur für einen winzigen Unterschied (andere Version von PHP, wenn der Rest der Software wie Apache und MySQL genau gleich ist). Ich habe eine Lösung veröffentlicht, bei der Sie einfach eine Installation von XAMPP verwenden und auf die entsprechende Version von PHP verweisen können.
Andy

15
Wieso würdest du das machen? weil es funktioniert und es mir nichts ausmacht, mehrere Apache und MySQL zu installieren, wenn es etwas Zeit spart.
Maulik Gangani

23
Hier müssen Sie sich nicht um Best Practices kümmern, es ist eine lokale Umgebung
Ricardo Vigatti

2
Ich verwende diesen Ansatz. Außerdem empfehle ich Ihnen, für jede Installation bestimmte Startmenüeinträge hinzuzufügen, z. B.: C: \ ProgramData \ Microsoft \ Windows \ Startmenü \ Programme \ XAMPP56 und C: \ ProgramData \ Microsoft \ Windows \ Startmenü \ Programme \ XAMPP7 zum Beispiel
Ricardo Vigatti

2
Wenn dies keine gute Lösung ist, warum veröffentlichen Sie keine korrekte Lösung? Eigentlich ist es sehr schwierig, 2 Versionen auf derselben xampp zu installieren und alle Lösungen hier sind falsch ...
Federico Schiocchet

12

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.


Ich unterstütze das. Tun Sie Ihrem Unternehmen einen Gefallen und bringen Sie Docker zum Laufen. Wechseln Sie die PHP-Versionen, binden Sie neue Entwickler schneller ein, vereinfachen Sie die Bereitstellung und machen Sie keine Überraschungen in der Produktion.
Kris Peeling

und 81 zu PHP 81. Meinst du PHP 7? Ich denke, wir sind noch weit von PHP 81 entfernt :)
Andy

2
Errrr ... Ich meinte wirklich 81 (ich stelle sicher, dass meine Antwort zukunftssicher ist: - /)
Nigel Ren

1
@NigelRen Ich habe es nicht herabgestimmt, würde aber vermuten, dass es daran liegt, dass Sie eine völlig andere Lösung (Docker) vorschlagen, anstatt zu untersuchen, wie es in XAMPP möglich ist - was es definitiv ist. Ihre Antwort ist eine (sehr gute) alternative Lösung für das Problem, aber keine Antwort auf die gestellte Frage.
Andy

7

Ich benutze Uniserver.

Es hat diese Funktion eingebaut.

http://www.uniformserver.com/

So einfach ist das.

Der Uniform Server ist eine kostenlose, leichte WAMP-Serverlösung für Windows. Der modulare Aufbau von weniger als 24 MB umfasst die neuesten Versionen von Apache2, Perl5, PHP (Wechsel zwischen PHP53, PHP54, PHP55 oder PHP56), MySQL5 oder MariaDB5, phpMyAdmin oder Adminer4. Keine Installation erforderlich! Kein Registrierungsstaub! Einfach auspacken und loslegen!

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.

Geben Sie hier die Bildbeschreibung ein


Dies ist die beste Lösung, denke ich. Ich habe mein Leben gerettet.
Skpaul

Ich erhalte eine Virenwarnung. Win32 / Uwamson.A! Ml
Norman Huth

6

Sie können zwei verschiedene Versionen von XAMPP verwenden.

  • Laden Sie diese Dateien von https://www.apachefriends.org/download.html herunter und installieren Sie sie in einem Verzeichnis Ihrer Wahl, z. B. in C: \ 5.6.31 \ xampp und C: \ 7.1.18 \ xampp.
  • Gehen Sie nach jeder Installation in das installierte Verzeichnis (z. B. C: \ 5.6.31 \ xampp, C: \ 7.1.18 \ xampp) und starten Sie die Datei "setup_xampp.bat". Sie sollten so etwas sehen .
  • Sie können Verknüpfungen von "xampp-control.exe" auf Ihrem Desktop erstellen (Rechtsklick auf "xampp-control.exe" Senden an -> Desktop) und Verknüpfungen beispielsweise umbenennen. "xampp 5.6.31" und "xampp 7.1.8".
  • Starten Sie das XAMPP-Kontrollfeld mit einem Doppelklick auf "xampp-control.exe" oder einer zuvor erstellten 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-Bedienfeld.
  • XAMPP deinstallieren? Entfernen Sie einfach das "xampp" -Verzeichnis. Aber vorher bitte den Apache und MySQL herunterfahren.
  • Das ist alles. Sie können verschiedene PHP-Versionen verwenden, um das entsprechende XAMPP-Bedienfeld zu öffnen.

Wenn es mit 1 Installation wirklich möglich ist, warum veröffentlichen Sie keine Lösung? Eigentlich ist es sehr schwierig, 2 Versionen zu installieren und alle Lösungen hier sind falsch ...
Federico Schiocchet

@Andy Wenn die Datenbank nicht so groß ist, ist eine doppelte Installation eine praktikable Option. Aber deine Antwort hat meine Zustimmung bekommen.
Jeffz

6

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;

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

ScriptAlias /php7x "C:/xampp/php738"
Action application/x-httpd-php7-cgi /php7x/php-cgi.exe
<Directory "C:/xampp/php738">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

<Directory "D:\www\php7">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php7-cgi
    </FilesMatch>
</Directory>

PHP 5.2 für Ordner D: \ www \ php52

ScriptAlias /phpold "C:/xampp/php52"
Action application/x-httpd-phpold-cgi /phpold/php-cgi.exe
<Directory "C:/xampp/php52">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

<Directory "D:\www\php52">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-phpold-cgi
    </FilesMatch>
</Directory>

Einige hilfreiche Hinweise:

  • Wenn Sie Probleme mit php5.x haben, während Sie das Composer-Switch-Terminal auf 7.3.8 umstellen
  • Wenn Sie PHP 7.3.8 zu Ihrem Standard-PHP-Interpreter für Befehlszeilen unter Windows machen möchten, ändern Sie einfach den Windows-Umgebungspfad für PHP in den Ordnerpfad 7.3.8.
  • Vergessen Sie nicht, Ihre relevanten php.ini-Confs in jedem Versionsordner nach Bedarf zu bearbeiten.

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;

<VirtualHost *:80>
ServerAdmin admin@laravel.local
DocumentRoot "D:\www\vhosts\laravel.local\public"
ServerName  laravel.local
<FilesMatch "\.php$">
 SetHandler application/x-httpd-php7-cgi # escape for default php version
#SetHandler application/x-httpd-phpold-cgi # unescape for php 5.2
</FilesMatch>

ErrorLog "logs/laravel.local.log"
CustomLog "logs/laravel.local.log" combined

Dank @Munim Munna für die detaillierte Antwort wollte ich eine solide Probe mit dem oben genannten wichtigen Hinweis teilen.


5

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:

Geben Sie hier die Bildbeschreibung ein

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.


4

Ja, du kannst. Ich gehe davon aus, dass Sie bereits eine xampp installiert haben. So,

  • Schließen Sie alle xampp-Instanzen. Mit dem Task-Manager stoppen Sie Apache und MySQL.
  • Benennen Sie dann die xampp in xampp1 oder etwas nach dem xampp-Namen um.
  • Laden Sie jetzt die andere xampp-Version herunter. Erstellen Sie nur einen Ordnernamen xampp. Installieren Sie dort die heruntergeladene xampp.
  • Benennen Sie nun abhängig von der xampp-Version Ihrer Anforderung den Zielordner einfach in xampp und den anderen Ordner in einen anderen Namen um.

So arbeite ich mit mehreren installierten xampp


4
Ich bin mir nicht sicher, warum dies zu Abstimmungen führt, da diese Antwort funktioniert und genau das ist, worum es bei der Frage geht. Stilles Downvoting ohne Verbesserungsvorschläge ist im Allgemeinen überhaupt keine clevere Sache.
Fabian Schöner

@ FabianSchöner Danke. Ich weiß nicht, warum ich über diese Antwort abgelehnt wurde.
Shuvro

1
Der Grund, warum es abgelehnt wurde, ist, dass jemand bereits genau diese Antwort gepostet hat. Und zweitens ist dies eine völlig unnötige Vorgehensweise, da Sie ALLE dieselbe Software erneut installieren, um einen kleinen Unterschied zu erzielen. Wie in der Antwort angegeben, ist es möglich, eine Installation von XAMPP zu verwenden und diese dann für die Verwendung verschiedener PHP-Versionen zu konfigurieren.
Andy

3

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

  1. Installieren Sie die neueste XAMPP-Version für Windows (in meinem Fall mit PHP 7.1).
  2. Stellen Sie sicher, dass Apache nicht in der XAMPP-Systemsteuerung ausgeführt wird
  3. Benennen Sie das PHP - Verzeichnis in XAMPP Installationsverzeichnis, wie C:\xampp\phpwerden C:\xampp\php-7.1.11.
  4. Laden Sie die Version von PHP herunter, die Sie zusätzlich ausführen möchten (z. B. PHP 5.4.45 ).
  5. Verschieben Sie das PHP-Verzeichnis von der Version, die Sie heruntergeladen haben, in das XAMPP-Installationsverzeichnis. Benennen Sie es so um, dass es die PHP-Version enthält. Wie zum Beispiel C:\xampp\php-5.4.45.

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

  1. In 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 eine Includeinterpretiert.

#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 im C:\xampp\apache\conf\extraVerzeichnis umbenennen httpd-xampp.confin httpd-xampp.conf.7.1und neue Konfigurationsdatei für hinzufügen 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.45und httpd-xampp.conf.7.1ersetzen Sie dort alle Verweise auf das phpVerzeichnis durch die neue php-X.XVersion. Hier müssen für jede Datei mindestens 10 Änderungen vorgenommen werden.

  3. 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.iniwo Sie den Pfad des PHP - Verzeichnis ersetzen wird include_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.confdie enthaltene PHP-Version bearbeiten und ändern, bevor Sie Apache neu starten.


3

Führen Sie dies in Eingabeaufforderungsfenstern (cmd.exe) aus.

set PATH=C:\xampp\php;%PATH%

Ändern Sie es je nachdem, wo Sie die PHP 7-Installation platzieren.


2

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.


2

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.


1

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

  • Benennen Sie den Ordner je nach PHP-Version um

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

LoadFile "C:/xampp/php/php7ts.dll"
LoadFile "C:/xampp/php/libpq.dll"
LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"

Nach dem

LoadFile "C:/xampp/php5.6/php5ts.dll"
LoadFile "C:/xampp/php5.6/libpq.dll"
LoadModule php5_module "C:/xampp/php5.6/php5apache2_4.dll"

Hier ist meine Datei: https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec

SCHRITT 4

Bearbeiten Sie die Datei [Laufwerk]: \ xampp \ apache \ conf \ httpd.conf

Vor

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

Nach dem

# XAMPP settings
Include "conf/extra/httpd-xampp5.6.conf"
  • Sie können diese Zeile einfach bearbeiten, wenn Sie zu einer anderen Version wechseln

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


0

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.

    $renameCur = new PHPSwitch_Rename($currInst['path'], $this->_cfg['phpInstallationsPath'] . $this->_cfg['phpDirName'] . '_' . $currInst['version']);
    $renameNew = new PHPSwitch_Rename($newInst['path'], $this->_cfg['phpInstallationsPath'] . $this->_cfg['phpDirName']);

    $apache_curent      = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp.conf";
    $apache_curent_rename   = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp_".$currInst['version'].".conf";
    $apache_new             = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp_".$newInst['version'].".conf";
    $apache_new_rename      = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp.conf";

    $renameCur_apache_conf = new PHPSwitch_Rename($apache_curent, $apache_curent_rename);
    $renameNew_apache_conf = new PHPSwitch_Rename($apache_new, $apache_new_rename);

    $transaction = new PHPSwitch_Rename_Transaction();
    $transaction->add($renameCur);
    $transaction->add($renameNew);
    $transaction->add($renameCur_apache_conf);
    $transaction->add($renameNew_apache_conf);

0

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):

Geben Sie hier die Bildbeschreibung ein

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!


Ich denke, es wird bereits durch 2 Antworten oben vorgeschlagen, Maulik Gangani und og1842.
Munim Munna

0

Verwenden Sie diesen PHP-Umschalter

Sie können die PHP-Version für jedes gewünschte Projekt über die vhost-Konfiguration steuern.


0

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.