Redhatに複数のバージョンのPHPをインストールする方法

Redhatに複数のバージョンのPHPをインストールする方法

私たちは、PHP 5.4.10を実行している古いWebアプリケーションと、最新バージョンのPHPバージョン7.1を実行している他のアプリケーションを持っています。

Redhat 7.3サーバーの1つのインスタンスでApacheを使用して両方のアプリケーションをホストしようとしています。

以下は、Webアプリケーションごとに構成された仮想ホストです。

<VirtualHost *:80>
     DocumentRoot /var/www/app1.local.com/public_html
     ServerName www.app1.local.com
     ServerAlias app1.local.com
     ErrorLog /etc/var/www/app1.local.com/error.log
     CustomLog /var/www/app1.local.com/requests.log
</VirtualHost>

<VirtualHost *:80>
     DocumentRoot /var/www/app2.local.com/public_html
     ServerName www.app2.local.com
     ServerAlias app2.local.com
     ErrorLog /etc/var/www/app2.local.com/error.log
     CustomLog /var/www/app2.local.com/requests.log
</VirtualHost>

このガイドによると:https://webtatic.com/packages/php71/ 「sudo yum install php71w php71w-mysql」を使って最新バージョンのPHPをインストールし、app2が動作するようにできることを知っています。しかし、PHPバージョン5.4.10もインストールし、PHPバージョン5.4.10を使用するようにapp1を設定するにはどうすればよいですか?ステップは何ですか?

この質問が愚かだと思っても許してください。私はLinuxに初めて接する人です。これを行う方法を説明する信頼できる最新のチュートリアルが見つかりません。

答え1

dockerを使用してこれを実行できますが、まずコンピュータにdockerをインストールする必要があるかもしれません。それから試してみることができます。

sudo docker run --name=myphp5 -p 8080:80  -v /var/www/html/:/var/www/html -d eboraas/apache-php

これにより、eboraas / apache-phpドッカーイメージがダウンロードされ、内部にapache / php5がインストールされている「myphp5」というドッカーコンテナが実行されます。 -vスイッチは、ローカルの/var/www/htmlディレクトリをコンテナの/var/www/htmlにマウントし、ポート8080にApacheを公開します(したがって、80で実行されているローカルApacheと競合しません)。

以下を実行してコンテナを停止できます。

sudo docker stop myphp5

繰り返しますが、次のコマンドを実行して起動できます。

sudo docker start myphp5

実行できるすべてのコンテナの状態を確認するには

docker ps -a

dockerhubには、この目的に使用できるapache / php5を含む他の画像があります。https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=php5&starCount=0

このアプローチの唯一の制限は、各ドッカーコンテナがhttpを別のポートに公開する必要があるため、80で実行できないことです。ただし、この問題は解決策としてローカルApache(ポート80でリッスン)を使用して解決できます。 DockerベースのApache用のリバースプロキシ。

答え2

ソフトウェアコレクション理想的な選択です。公式の説明は次のとおりです。

ソフトウェアコレクションを使用すると、同じソフトウェアコンポーネントの複数のバージョンをシステムに同時にインストールできます。ソフトウェアコレクションを使用して構築されたパッケージは、Red Hat Enterprise Linuxに含まれるバージョンを上書きしません。

RHSCL 2.3の現在のバージョンはPHP 5.6および7.0用のパッケージを提供しています。よりインストールするRHSCLリリースノートの章では、RHSCLリポジトリにアクセスしてパッケージをインストールする方法を学びます。

バラよりApacheにはSCLを使用するさまざまなPHPバージョンがあります。単一のApacheサーバーにインストールされているさまざまなSCLバージョンでPHPを使用する方法については、RH開発者ブログをご覧ください。 (この手順ではRHEL6を想定していますが、RHEL7にも同じ方法が適用されます。インストールの推奨事項をスキップするだけです。)

関連情報