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로 업그레이드해야 했습니다.

우분투 10.04에는

PHP     5.3.2 
MySQL   5.1.66 
Apache  2.2.14 
OpenSSL 0.9.8

우분투 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 5.3.2를 설치하기 위해 PHP 7을 제거해야 하는 경우 OpenSSL도 다운그레이드됩니까?
  3. MySQL은 일부 PHP 버전에서 더 이상 사용되지 않습니다(PHP/MySQL의 버전을 모르겠습니다). 내 MySQL 버전도 업그레이드되었음에도 불구하고 PHP 5.3.2에서 MySQL에 액세스할 수 있습니까?

PHP 5.3이 EOL이라는 것을 알고 있습니다. 하지만 이제 코드를 실행하려면 TLS 1.2 버전이 있어야 합니다.

간단히 말해서, 나는 필요하다

MySQL + TLS1.2(>openssl 1.0.1) + Ubuntu 16.04에 액세스할 수 있는 PHP 5.3.2.

이것을 달성하는 방법은 무엇입니까?

답변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 마이그레이션 가이드를 찾을 수 있습니다.여기.

그래도,더러운 해결 방법이 필요한 경우, 아마도 두 가지 주요 옵션이 있을 것입니다.

  • 직접 컴파일해보세요
  • 제3자를 이용하세요아빠,가상 기기또는컨테이너

직접 컴파일하고 싶다면(모든 번거로움이 있을 수 있지만), 최신 OpenSSL에 연결하고 @user133831이 언급한 것처럼 발생할 수 있는 잠재적인 문제를 해결하려면 다음 단계를 따르세요.이 답변.

컴파일을 피하고 다음을 사용하려는 경우아빠, 다음을 사용하여 설치를 시도할 수 있습니다.세르게이D. 해당 PHP 모듈을 설치하려면 ppa 지침을 확인하세요.

또한 12.04 및 12.10과 같은 이전 Ubuntu 버전을 기반으로 하는 PHP 5.3용 특정 타사 Docker 컨테이너도 보았습니다.(이전 OpenSSL 버전도 마찬가지). 그러나 시도해 볼 수 있습니다.(그 후에는 버립니다)도커 컨테이너를 사용하여 문제가 해결되는지 확인하세요. 어쩌면 다음 링크를 살펴보고 싶을 수도 있습니다.처음부터 PHP 5.3 Dockerfile,PHP 5.3 도커 이미지

어떤 옵션을 선택하든 "더러운" 작업은 모두 VM 또는 lxc/lxd/docker 컨테이너 내에서 수행하는 것이 좋습니다.(적어도 처음에는), 메인 시스템을 너무 많이 망치는 것을 피하기 위해.

어쨌든, PHP 5.3을 계속 사용하기로 결정했다면 아마도 다른 버전으로 끝날 것이라는 점을 명심하세요."부작용", 최신 버전의 MYSQL API 문제, 최신 버전에서 수정된 버그 및 비호환성 등은 물론,잠재적인 보안 결함.

도움이 되길 바랍니다.

답변3

16.04에서는 다음 명령을 사용하여 libssl-dev를 강제로 다운그레이드할 수 있었습니다.

apt-get install libssl-dev=1.0.2*

많은 lib*-dev 패키지를 설치한 후 다음 명령을 사용하여 phpbrew로 php 5.3.29를 컴파일할 수 있었습니다.

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

나는 또한 ondrej/php ppa를 설치했는데, 그것이 요인이었을 수도 있지만 실제로는 PHP 5.6.x만 제공하기로 되어 있으므로 확실하지 않습니다.

관련 정보