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 にアップグレードされたため、サイトが動作していません。いくつか質問があります。
- PHP 5.3.2 を別途インストールして実行できますか? その場合、TLS 1.2 が使用されますか?
- または、PHP 5.3.2 をインストールするために PHP 7 を削除する必要がある場合、OpenSSL もダウングレードされますか?
- MySQL は、PHP の一部のバージョンでは非推奨になっています (PHP/MySQL のどのバージョンかはわかりません)。MySQL のバージョンもアップグレードしたので、PHP 5.3.2 から MySQL にアクセスできますか?
PHP 5.3 が EOL であることは知っています。しかし、コードを実行するには、TLS 1.2 を使用するバージョンが必要です。
簡単に言うと、私は
MySQL にアクセスできる PHP 5.3.2 + 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
ただし、公開する前に、リリース以降に発生したセキュリティ上の問題がないか確認することをお勧めします。私の記憶では、もうサポートされていないため、パッチを適用するには自分で対処する必要があります。
セキュリティパッチが不足しているため、コードベースをできるだけ早く最新のものに更新することをお勧めします。PHPは移行ガイドを公開しています(例:http://php.net/migration54) をクリックし、再度サポートされるまで各ステップを順に実行します。
個人的には、自分でコンパイルしなくても済むようなパッケージ (公式のものでもそうでないものでも) を知りません。
答え2
PHP 5.3 は EOL に達しました。また、5.3 をアクティブにサポートするリポジトリ/ディストリビューションは維持されていないと思います。
私は思う唯一の良い賭けサポートされているPHPバージョン、または少なくとも5.4/5.5にコードを移行します。公式のPHP移行ガイドをご覧ください。ここ。
ともかく、汚い回避策が必要な場合おそらく、2 つの主な選択肢があります。
- 自分でコンパイルする
- 第三者を利用するppa、仮想マシンまたは容器
自分でコンパイルしたい場合(面倒なことも多いですが)、新しいOpenSSLにリンクし、@user133831が述べたように、発生する可能性のある問題を解決するには、次の手順に従ってください。この答え。
コンパイルを避けたい場合は、ppa、インストールを試してみることができますSergeyD の対応する PHP モジュールをインストールするには、ppa の手順を確認してください。
また、12.04や12.10などの古いUbuntuバージョンをベースにしたPHP 5.3用のサードパーティDockerコンテナも見たことがあります。(古いバージョンの OpenSSL でも)ただし、試してみることができます(その後は捨ててください)問題に効果があるかどうか確認するには、Docker コンテナを使用します。次のリンクを参照してください。PHP 5.3 をゼロから Dockerfile で作成、PHP 5.3 Docker イメージ
どちらのオプションを選択するにしても、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 のみが提供されるはずなので、よくわかりません。