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

一般に、ホストマネージャーは、PHPバージョンのアプリケーションの展開ごとに個別のサーバーを使用していました。ホスティングコストが増加します。一部のホストマネージャーは、Dockerを使用して単一のサーバーで複数のPHPバージョンを実行しています。また、ほとんどの方はこのチュートリアルで使用している構成を知っています。しかし、システム管理者の一部はこれを認識していません。このチュートリアルでは、Apacheを使用して複数のPHPバージョンをUbuntu 20.04 Linuxシステムにインストールし、PHPバージョンを切り替える必要はありません。

このチュートリアルでは、Apacheに2つのVirtualHostをインストールして、別々のPHPバージョンで構成する方法について説明します。最初のVirtualHostはPHP 5.6で動作し、別のVirtualHostはPHP 7.2で動作します。したがって、このチュートリアルを実行してください。必要に応じて、Apacheで3つ以上のPHPバージョンを使用することもできますが、このチュートリアルでは2つだけを扱います。

Apacheのインストール

Apache Webサーバーパッケージは、デフォルトのリポジトリで利用できます。 Ubuntuシステムでターミナルを開き、次のコマンドを実行して、Apache Webサーバーの利用可能な最新バージョンをインストールします。

sudo apt update 
sudo apt install apache2 libapache2-mod-fcgid

PHPのインストール

PPAは、UbuntuシステムにPHPをインストールするために長年維持されています。パッケージをインストールするには、システムにそのPPAを追加するだけです。以下のコマンドを使用して、PPAをシステムに追加します。

sudo apt install software-properties-common 
sudo add-apt-repository ppa:ondrej / php

このチュートリアルでは、PHP 5.6およびPHP 7.4を使用して、Apache Webサーバーで構成します。複数のPHPバージョンを使用するには、PHP FPMとFastCGIを使用します。以下のパッケージをシステムにインストールしましょう。

sudo apt update -y
sudo apt install php5.6 php5.6-fpm -y
sudo apt install php7.4 php7.4-fpm -y

インストール後、php-fpmサービスが自動的に開始されます。次のコマンドを使用して、両方のサービスが実行されていることを確認します。

sudo systemctl status php5.6-fpm
sudo systemctl status php7.4-fpm

複数のPHPでApacheを構成する

Apacheで複数のPHPバージョンを構成するために必要ないくつかのモジュールを有効にします。これらのモジュールは、PHP FPMおよびFastCGIをApacheサーバーと統合するために必要です。

sudo a2enmod actions fcgid alias proxy_fcgi

ApacheサーバーでWebサイトを構成する準備をします。テストの目的で、2つの異なる2バージョンのPHPで動作するように2つのWebサイトを構成しています。まず、サーバーに2つのディレクトリを作成します。

sudo mkdir /var/www/php56-app
sudo mkdir /var/www/php74-app

次に、 phpinfo();を含むindex.phpを作成しますphpinfo();関数。

echo "<?php phpinfo(); ?>" > /var/www/php56-app/index.php 
echo "<?php phpinfo(); ?>" > /var/www/php74-app/index.php

VirtualHostの作成を始めましょう。 ApacheはすべてのVirtualHost構成ファイルを/ etc / apache2 / sites-availableの下に拡張子.confを付けて保持します。最初の仮想ホスト用のファイルを作成し、お気に入りのテキストエディターで編集します。

sudo vim /etc/apache2/sites-available/php56.example.com.conf

次のコンテンツを追加します。設定に応じて、正しいServerNameとディレクトリパスを使用してください。このWebサイトは、PHP 5.6で動作するように構成されています。

同様に、PHP 7.2で動作する2つ目のVirtualHost構成ファイルを作成します。テキストエディターで構成ファイルを編集します。

sudo vim /etc/apache2/sites-available/php74.example.com.conf

次のコンテンツを適切なServerNameとDocumentRootでファイルに追加します。

これで両方のWebサイトが構成されました。しかし、それらはまだアクティブではありません。 Apacheはアクティブなサイトを/ etc / apache2 / sites-enabledディレクトリに保持します。このディレクトリへの構成ファイルのシンボリックリンクを作成するか、以下のコマンドを使用して同じことを行うことができます。

 sudo a2ensite php56.example.com
 sudo a2ensite php74.example.com

すべての変更を行った後、Apacheを再起動して新しい設定変更をリロードします。

 sudo systemctl restart apache2

これでセットアップが完了しました。次のステップに進んで、セットアップをテストします。

セットアップをテストする

ローカルシステムの/ etc / hostsファイルを編集し、以下のようなエントリを作成します。これにより、一時的な名前がlocalhost IPアドレスに解決されます。

sudo vim /etc/hosts

ファイルの最後に次のエントリを追加します

127.0.0.1   php74.example.com
127.0.0.1   php56.example.com

Webブラウザーを開き、両方のサイトにアクセスします。 php56.example.comにバージョンPHP 5.6が表示され、 php74.example.comに構成としてPHP 7.4が表示されていることがわかります。

http://php74.example.com

ApacheセットアップUbuntu 20.04での複数のPHPバージョン

http://php56.example.com

Ubuntu 20.04でApacheを使用して複数のPHPをセットアップする

結論

このチュートリアルは、Ubuntu 20.04システム上の単一のApacheサーバーで、異なるバージョン2のPHPを使用して複数のWebサイトをセットアップするのに役立ちます。

Source