Um PHP 5.3.2 + Openssl 1.0.1 + Ubuntu 16.04 zu haben

Um PHP 5.3.2 + Openssl 1.0.1 + Ubuntu 16.04 zu haben

Da ich auf TLS1.2 aktualisieren musste, musste ich auf OpenSSL 1.0.1 oder höher aktualisieren. Dazu musste ich von Ubuntu 10.04 auf Ubuntu 16.04 aktualisieren

Ubuntu 10.04 hatte

PHP     5.3.2 
MySQL   5.1.66 
Apache  2.2.14 
OpenSSL 0.9.8

Ubuntu 16.04 hat

PHP     7.0.18 
MySQL   5.7.18 
Apache  2.4.18 
OpenSSL 1.0.2

Wie erwartet habe ich jetzt OpenSSL 1.0.2, aber die Site funktioniert jetzt nicht, da die PHP-Version auf 7.0.18 aktualisiert wurde. Jetzt habe ich ein paar Fragen

  1. Kann ich PHP 5.3.2 separat installieren und ausführen? Wird dabei ggf. TLS 1.2 verwendet?
  2. Oder wird OpenSSL ebenfalls herabgestuft, wenn ich PHP 7 entfernen muss, um PHP 5.3.2 zu installieren?
  3. MySQL wird von einigen PHP-Versionen nicht mehr unterstützt (ich weiß nicht, welche PHP/MySQL-Version). Da meine MySQL-Version ebenfalls aktualisiert wurde, kann ich trotzdem von PHP 5.3.2 aus auf MySQL zugreifen?

Ich weiß, dass PHP 5.3 EOL ist. Aber ich sollte diese Version jetzt haben, um meinen Code auszuführen, allerdings mit TLS 1.2.

Kurz gesagt, ich brauche

PHP 5.3.2 mit Zugriff auf MySQL + TLS1.2(>openssl 1.0.1) + Ubuntu 16.04.

Wie erreicht man das?

Antwort1

Viel hängt davon ab, ob Sie nur offiziell unterstützte Pakete verwenden möchten.

Es steht Ihnen frei, das PHP 7-Paket zu entfernen, PHP 5.3.2 selbst zu kompilieren und mit OpenSSL 1.0.2 zu verknüpfen, wenn Sie über die erforderlichen Kenntnisse verfügen. Dies kann je nach API-Änderungen in Abhängigkeiten einfach oder schwierig sein. Es wäre jedoch wahrscheinlich sinnvoll, 5.3.29 zu verwenden, das meines Wissens mit Ihrem 5.3.2-Code kompatibel sein sollte, aber noch ein paar Korrekturen enthält.

http://www.php.net/releases/#5.3.29

Ich würde es jedoch vor der Veröffentlichung auf Sicherheitsprobleme prüfen, die seit der Veröffentlichung aufgetreten sind. Es wird IIUC nicht mehr unterstützt, Sie müssen es also selbst patchen.

Aufgrund des Mangels an Sicherheitspatches würde ich auch empfehlen, die Codebasis so schnell wie möglich auf einen aktuelleren Stand zu bringen. PHP veröffentlicht Migrationsleitfäden (z. B.http://php.net/migration54) und Sie konnten jedem folgen, bis Sie wieder unterstützt wurden.

Mir sind persönlich keine Pakete (offizielle oder andere) bekannt, mit denen Sie sich die eigene Kompilierung ersparen könnten.

Antwort2

PHP 5.3 hat das Ende der Lebensdauer erreicht. Außerdem glaube ich, dass es kein gepflegtes Repo/Distro mit aktiver 5.3-Unterstützung gibt.

Ich findedie einzig gute Wetteist die Migration Ihres Codes auf eine unterstützte PHP-Version oder mindestens 5.4/5.5. Die offiziellen PHP-Migrationsleitfäden finden SieHier.

Ohnehin,wenn Sie einen schmutzigen Workaround brauchen, haben Sie wahrscheinlich zwei Hauptoptionen:

  • Selbst kompilieren
  • Nutzen Sie einen Drittanbieterppa,virtuelle MaschineoderContainer

Wenn Sie es selbst kompilieren möchten(mit all dem Ärger, der damit verbunden sein kann), eine Verknüpfung mit dem neueren OpenSSL herstellen und die potenziellen Probleme lösen, die dadurch entstehen können, wie @user133831 erwähnt hat, können Sie die Schritte aufdiese Antwort.

Wenn Sie das Kompilieren vermeiden möchten und stattdessen eineppakönnen Sie die Installation mitSergeyD. Überprüfen Sie die PPA-Anweisungen, um die entsprechenden PHP-Module zu installieren.

Ich habe auch spezielle Docker-Container von Drittanbietern für PHP 5.3 gesehen, die auf älteren Ubuntu-Versionen basieren, wie 12.04 und 12.10(auch mit älteren OpenSSL-Versionen)Sie können jedoch versuchen(und wirf es danach weg)ein Docker-Container, um zu sehen, ob er für Ihr Problem funktioniert. Vielleicht möchten Sie einen Blick auf diese Links werfen:PHP 5.3 von Grund auf Dockerfile,PHP 5.3 Docker-Image

Unabhängig davon, für welche Option Sie sich entscheiden, schlage ich vor, alle „schmutzigen“ Dinge in einer VM oder einem lxc/lxd/Docker-Container zu erledigen.(zumindest zuerst), um eine zu große Störung des Hauptsystems zu vermeiden.

Wenn Sie sich jedoch dafür entscheiden, bei PHP 5.3 zu bleiben, denken Sie daran, dass Sie wahrscheinlich mit anderen"Nebenwirkungen", wie etwa Probleme mit der MySQL-API in neueren Versionen, Fehler und Inkompatibilitäten, die in neueren Versionen behoben wurden, und natürlichpotenzielle Sicherheitsmängel.

Ich hoffe es hilft.

Antwort3

Am 16.04 konnte ich mit diesem Befehl ein Downgrade von libssl-dev erzwingen:

apt-get install libssl-dev=1.0.2*

Ich konnte PHP 5.3.29 mit PHPbrew mit dem folgenden Befehl kompilieren, nachdem ich viele lib*-dev-Pakete installiert hatte:

phpbrew install 5.3.29 +everything -fpm +apxs2 -cli -cgi -phpdbg -dtrace -opcache -embed -gcov

Ich hatte auch das Ondrej/PHP-PPA installiert, das könnte ein Faktor gewesen sein, aber es soll einem eigentlich nur PHP 5.6.x geben, also bin ich nicht sicher.

verwandte Informationen