私たちは、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にも同じ方法が適用されます。インストールの推奨事項をスキップするだけです。)