Иметь php 5.3.2 + Openssl 1.0.1 + Ubuntu 16.04

Поскольку мне пришлось обновиться до TLS1.2, мне пришлось обновиться до OpenSSL 1.0.1 или выше. Для этого мне пришлось обновить Ubuntu 10.04 до Ubuntu 16.04

Ubuntu 10.04 имел

PHP     5.3.2 
MySQL   5.1.66 
Apache  2.2.14 
OpenSSL 0.9.8

Ubuntu 16.04 имеет

PHP     7.0.18 
MySQL   5.7.18 
Apache  2.4.18 
OpenSSL 1.0.2

Как и ожидалось, сейчас у меня OpenSSL 1.0.2, но сайт сейчас не работает, потому что версия PHP обновлена ​​до 7.0.18. Теперь у меня есть несколько вопросов

  1. Могу ли я установить PHP 5.3.2 отдельно и запустить его? Если так, будет ли это использовать TLS 1.2?
  2. Или если мне нужно удалить PHP 7 для установки PHP 5.3.2, OpenSSL также будет понижен?
  3. MySQL устарела в некоторых версиях PHP(я не знаю, какая версия PHP/MySQL). Поскольку моя версия MySQL также обновилась, могу ли я получить доступ к MySQL из PHP 5.3.2?

Я знаю, что PHP 5.3 - это EOL. Но у меня должна быть эта версия сейчас для запуска моего кода, но с TLS 1.2.

Короче говоря, мне нужно

PHP 5.3.2 с доступом к MySQL + TLS1.2(>openssl 1.0.1) + Ubuntu 16.04.

Как этого добиться?

3 ответа

Многое зависит от того, хотите ли вы использовать только официально поддерживаемые пакеты.

Ничто не мешает вам удалить пакет PHP 7 и самостоятельно скомпилировать PHP 5.3.2 и создать ссылку на OpenSSL 1.0.2, если у вас есть знания, как это сделать. Это может быть легко или сложно в зависимости от изменений API в зависимостях. Вероятно, стоило бы использовать 5.3.29, хотя, как я понимаю, должно быть совместимо с вашим кодом 5.3.2, но есть еще несколько исправлений.

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

Я бы проверил наличие проблем с безопасностью, которые возникли после релиза, прежде чем запускать его. Он больше не поддерживается IIUC, так что вы можете самостоятельно его исправить.

Из-за отсутствия исправлений безопасности я бы также посоветовал обновить базу кода до более поздних версий. PHP публикует руководства по миграции (например, http://php.net/migration54), и вы можете следить за каждым, пока вас снова не поддержат.

Мне лично не известны какие-либо пакеты (официальные или иные), которые позволили бы вам избежать необходимости компилировать себя.

PHP 5.3 достиг EOL. Кроме того, я думаю, что нет поддерживаемого репо / дистрибутива с активной поддержкой 5.3.

Я думаю, что единственная хорошая ставка - это миграция вашего кода на поддерживаемую версию PHP, или, по крайней мере, 5.4/5.5. Вы можете найти официальные руководства по миграции PHP здесь.

В любом случае, если вам нужен грязный обходной путь, у вас, вероятно, есть два основных варианта:

  • Скомпилируйте это самостоятельно
  • Используйте сторонний ppa, виртуальную машину или контейнер

Если вы хотите скомпилировать его самостоятельно (со всеми возможными хлопотами), связавшись с более новым OpenSSL и решив возможные проблемы, которые могут возникнуть, например, как упомянуто @user133831, вы можете выполнить действия, описанные в этом ответе.

Если вы хотите избежать его компиляции и хотите использовать ppa, попробуйте установить его, используя SergeyD. Проверьте инструкции ppa для установки соответствующих модулей PHP.

Я также видел определенные сторонние контейнеры Docker для PHP 5.3, основанные на более старых версиях Ubuntu, таких как 12.04 и 12.10 (также с более старыми версиями OpenSSL). Тем не менее, вы можете попробовать (и выбросить после этого) контейнер докера, чтобы увидеть, работает ли он для вашей проблемы. Может быть, вы хотите посмотреть эти ссылки: PHP 5.3 с нуля Dockerfile, PHP 5.3 Docker image

Независимо от того, какой вариант вы выберете, я буду предлагать делать все "грязные" вещи внутри виртуальной машины или контейнера lxc/lxd/docker (по крайней мере, на первый взгляд ), чтобы не перегружать основную систему.

В любом случае, если вы решите остаться с PHP 5.3, имейте в виду, что, вероятно, вы покончили с другими "побочными эффектами", такими как проблемы с MYSQL API в более новых версиях, ошибки и несовместимости, исправленные в более новых версиях, и, конечно, потенциальные недостатки безопасности.

Надеюсь, поможет.

16 апреля я смог принудительно понизить версию libssl-dev с помощью этой команды:

apt-get install libssl-dev=1.0.2*

Я смог скомпилировать php 5.3.29 с помощью phpbrew с помощью следующей команды после установки многих пакетов lib*-dev:

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

У меня также был установлен ondrej/php ppa, это могло быть фактором, хотя на самом деле он должен дать вам php 5.6.x, так что я не уверен.

Другие вопросы по тегам