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

Иметь 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 устарел. Но мне нужна эта версия сейчас, чтобы запустить мой код, но с TLS 1.2.

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

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

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

решение1

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

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

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

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

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

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

решение2

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

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

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

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

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

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

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

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

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

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

решение3

16.04 мне удалось принудительно понизить версию 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, так что я не уверен.

Связанный контент