web-dev-qa-db-ja.com

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 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。

これを達成する方法は?

3
siddiq

公式にサポートされているパッケージのみを使用するかどうかに大きく依存します。

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 )、再度サポートされるまで各ガイドに従うことができます。

自分でコンパイルしなくても済むパッケージ(公式またはその他)を個人的には知りません。

4
user133831

PHP 5.3はEOLに達しました。また、5.3のアクティブなサポートを備えた維持されたリポジトリ/ディストリビューションはないと思います。

良い賭けはあなたのコードをサポートされているPHPバージョン、または少なくとも5.4/5.5に移行することだと思います。公式のPHP移行ガイドを見つけることができます こちら

とにかく、ダーティな回避策が必要な場合、おそらく2つの主なオプションがあります。

  • 自分でコンパイルする
  • サードパーティを使用するppa仮想マシンまたはコンテナ

自分でコンパイルしたい場合(面倒なこともあります)、新しいOpenSSLにリンクし、@ user133831のようにこれが発生する可能性のある潜在的な問題を解決するには、次の手順に従うことができます- この答え

コンパイルを避けたいときにppaを使用する場合は、 SergeyD one's を使用してインストールしてみてください。 ppaの手順を確認して、対応するPHPモジュールをインストールしてください。

また、12.04や12.10などの古いUbuntuバージョンに基づくPHP 5.3用の特定のサードパーティDockerコンテナも見ました(古いOpenSSLバージョンも)。ただし、(およびその後破棄)をドッカーコンテナーで試して、問題が解決するかどうかを確認できます。多分あなたはこれらのリンクを見てみたい: PHP 5.3ゼロからDockerfilePHP 5.3 Docker image

選択するオプションに関係なく、VMまたはlxc/lxd/dockerコンテナ内ですべての「ダーティ」な処理を行うことをお勧めします(少なくとも最初)メインシステムを使いすぎます。

とにかく、PHP 5.3にとどまることを選択した場合、おそらく新しいバージョンのMYSQL APIの問題のように、他の"副作用"で終わることに留意してください。新しいバージョンで修正されたバグと非互換性、そしてもちろん潜在的なセキュリティ上の欠陥

それが役に立てば幸い。

1
dgonzalez

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を提供することしか想定されていないため、わかりません。

0
RedScourge