Frage

Ist es möglich, auf dem gleichen Feld (wie Schienen) laufen mehrere Versionen von PHP zu haben. Hier ist mein Problem, ich brauche Entwicklung auf ein neues Projekt zu starten und plante, PHP 5.3, dafür zu verwenden, so dass ich den aktuellen Zend Framework und aktiven Datensatz mit ihm nutzen kann.
jedoch die Maschine, wo ich brauche, um meine Anwendung zu hosten hat PHP 4.4 und es gibt mehrere andere Anwendungen hosted dort. Ich will nicht die PHP-Version auf dem Server aktualisieren, wie in der Vergangenheit habe ich eine Menge von Fragen konfrontiert, während die PHP-Version und veraltete Funktionen aufrüsten.
Ich frage mich, ob es möglich ist, mehrere PHP-Version auf dem gleichen Feld zu haben, und geben Sie dann irgendwie die Version, dass Sie Ihre Anwendung zu Last (ähnlich Schienen)

War es hilfreich?

Lösung

Ja, ist es möglich. In der Tat arbeiten viele Server auf diese Weise. Sie können .php4 und .php5 Erweiterungen von Zeit zu Zeit sehen die angibt, welche Version, dass bestimmte Skript mit umgegangen werden soll.

ServerFault adressiert diese Frage

Lauf PHP4 und PHP5 an der Seite von ihnen

Andere Tipps

Sie können mehrere PHP-Versionen auf dem gleichen Feld mit Docker ausgeführt werden.

Ein Beispiel Befehl wäre:

sudo docker run -d -p 8055:80 -v /var/www:/var/www \
  -v /etc/apache2/sites-available:/etc/apache2/sites-available \
  -v /etc/apache2/sites-enabled:/etc/apache2/sites-enabled \
  codeyourdream/apache-sendmail-php55

Hier ist, was dieser Befehl tut:

  • Sie leitet Ihren lokalen /var/www, /etc/apache2/sites-available und /etc/apache2/sites-enabled zu den entsprechenden Ordner von Docker-Container. Wenn Ihre lokale Websites und / oder Apache configs in verschiedenen Ordnern befinden, ersetzen Sie den ersten Teil des -v Wert. D. h das Format ist: docker run -v /host/directory:/container/directory -other -options image_name command_to_run
  • Er leitet Port 8055 von der lokalen Maschine auf Port 80 von Docker Container
  • Es wird mit den Containern von "codeyourdream / Apache-sendmail-php55" image

Wenn Sie diesen Befehl ausführen, werden alle Ihre lokalen Websites sollten über den Port 8055 (dh über URLs wie http: // sein localsite: 8055 ) und verarbeitet von PHP 5.5

Unter https://codeyourdream.com/blog/how-run-multiple-php-versions-apache-one-linux-machine-using-docker für weitere Details. Affiliation. Hinweis: Dies ist Blogs meines Teams

ist eine Möglichkeit eine Version von PHP als Apache-Modul, und die andere Version als CGI; sondern eine Idee, die ich von Art wie besser zu haben:

  • Mehrere unterschiedliche Instanzen von Apache,
  • Jedes Hören auf einem ander Port (zum Beispiel PHP 4.4 auf Port 44000, und PHP 5.3.1 auf Port 53100)
  • Und jeder eine andere Version von PHP mit

Auf diese Weise haben Sie ganz andere Umgebungen, die unabhängig voneinander voneinander arbeitet, und Sie können configure / modify alles, was Sie in jeder Umgebung wollen, ohne zu riskieren, alle anderen zu brechen.

(Und wenn Sie Port-Nummern nicht in Ihre URLs haben wollen, nehme ich Sie einen Proxy vor dem verschiedene Apache-Instanzen setzen können, so dass es scheint nur eine)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top