web-dev-qa-db-fra.com

Pour avoir PHP 5.3.2 + Openssl 1.0.1 + Ubuntu 16.04

Comme je devais passer à TLS1.2, je devais passer à OpenSSL 1.0.1 ou supérieur. Pour ce faire, j'ai dû passer d'Ubuntu 10.04 à Ubuntu 16.04.

Ubuntu 10.04 avait

PHP     5.3.2 
MySQL   5.1.66 
Apache  2.2.14 
OpenSSL 0.9.8

Ubuntu 16.04 est d'avoir

PHP     7.0.18 
MySQL   5.7.18 
Apache  2.4.18 
OpenSSL 1.0.2

Comme prévu, j'ai OpenSSL 1.0.2 maintenant, mais le site ne fonctionne plus car la version PHP est mise à niveau vers la version 7.0.18. Maintenant j'ai quelques questions

  1. Puis-je installer PHP 5.3.2 séparément et l'exécuter? Si oui, cela utilisera-t-il TLS 1.2?
  2. Ou si je dois supprimer le PHP 7 pour installer PHP 5.3.2, OpenSSL sera également rétrogradé?
  3. MySQL est obsolète par certaines versions de PHP (je ne sais pas quelle version de PHP/MySQL). Comme ma version de MySQL a également été mise à niveau, puis-je toujours accéder à MySQL à partir de PHP 5.3.2?

Je sais que PHP 5.3 est EOL. Mais je devrais avoir cette version maintenant pour exécuter mon code, mais avec TLS 1.2.

Bientôt en disant, j'ai besoin

PHP 5.3.2 avec accès à MySQL + TLS1.2 (> openssl 1.0.1) + Ubuntu 16.04.

Comment y parvenir?

3
siddiq

Tout dépend si vous souhaitez utiliser uniquement les packages officiellement pris en charge.

Rien ne vous empêche de supprimer le package PHP 7 et de vous compiler vous-même PHP 5.3.2 et d'établir une liaison avec OpenSSL 1.0.2 si vous savez comment le faire. Cela peut être facile ou difficile en fonction des modifications de l'API dans les dépendances. Cela vaut probablement la peine d’utiliser 5.3.29 cependant, ce qui devrait être compatible avec votre code 5.3.2 mais avec quelques corrections supplémentaires.

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

Je vérifierais cependant les problèmes de sécurité qui se sont posés depuis la publication avant de le mettre en ligne. Il n'est plus pris en charge par IIUC, vous devez donc le corriger vous-même.

En raison du manque de correctifs de sécurité, je vous conseillerais également de mettre à jour la base de code vers une version plus récente, le plus tôt possible. PHP publiez des guides de migration (par exemple, http://php.net/migration54 ) et vous pourrez les suivre jusqu'à ce que vous soyez à nouveau pris en charge.

Personnellement, je ne suis au courant d'aucun package (officiel ou autre) qui vous éviterait de devoir vous-même compiler.

4
user133831

PHP 5.3 a atteint EOL. De plus, je pense qu’il n’existe pas de pension/distribution maintenue avec un support actif 5.3.

Je pense que le seul bon choix est de migrer votre code vers une version prise en charge PHP, ou au moins 5.4/5.5. Vous pouvez trouver les PHP guides de migration officiels ici .

Quoi qu'il en soit, si vous avez besoin d'une solution de contournement, vous avez probablement deux options principales:

  • Compilez-le vous-même
  • Utilisez un tiers ppa, machine virtuelle ou conteneur

Si vous voulez le compiler vous-même [(avec tous les tracas que cela peut être)], établissant un lien avec le plus récent OpenSSL et résolvant les problèmes potentiels pouvant en découler, comme @ user133831 mentionné, vous pouvez suivre les étapes suivantes - cette réponse .

Si vous voulez éviter de le compiler et que vous cherchez à utiliser un ppa, vous pouvez essayer d'installer à l'aide de SergeyD one . Consultez les instructions de ppa pour installer les modules PHP correspondants.

J'ai également vu des conteneurs Docker tiers spécifiques pour PHP 5.3 basés sur d'anciennes versions d'Ubuntu, telles que 12.04 et 12.10 (avec également les anciennes versions d'OpenSSL). Cependant, vous pouvez essayer (et le jeter ensuite) un conteneur de menu fixe pour voir si cela fonctionne pour votre problème. Peut-être voudrez-vous jeter un coup d’œil à ces liens: PHP 5.3 à partir de zéro, Fichier Docker , image PHP 5.3 Docker

Quelle que soit l'option choisie, je vous suggère de faire tout ce qui est "sale" dans un conteneur VM ou lxc/lxd/docker (au moins au début), pour éviter déconner trop le système principal.

Quoi qu'il en soit, si vous choisissez de rester avec PHP 5.3, gardez à l'esprit que vous allez probablement finir avec autre "effets secondaires", comme des problèmes avec l'API MYSQL dans les versions les plus récentes, bugs et incompatibilités corrigés dans les versions les plus récentes, et bien sûr, failles de sécurité potentielles.

J'espère que ça aide.

1
dgonzalez

Le 16.04, j'ai pu forcer le déclassement de libssl-dev avec cette commande:

apt-get install libssl-dev=1.0.2*

J'ai été capable de compiler PHP 5.3.29 avec phpbrew avec la commande suivante, après avoir installé plusieurs paquets lib * -dev:

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

J'ai également eu le ppa ondrej/php installé, ce qui peut avoir été un facteur, bien qu'il soit censé seulement vous donner php 5.6.x, donc je ne suis pas sûr.

0
RedScourge