一般に、ホストマネージャーは、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で動作するように構成されています。
<VirtualHost *:80> ServerName php56.example.com DocumentRoot /var/www/php56-app <Directory /var/www/php56-app> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory> <FilesMatch \.php$> # Apache 2.4.10+ can proxy to unix socket SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost" </FilesMatch> </VirtualHost>
同様に、PHP 7.2で動作する2つ目のVirtualHost構成ファイルを作成します。テキストエディターで構成ファイルを編集します。
sudo vim /etc/apache2/sites-available/php74.example.com.conf
次のコンテンツを適切なServerNameとDocumentRootでファイルに追加します。
<VirtualHost *:80> ServerName php72.example.com DocumentRoot /var/www/php74-app <Directory /var/www/php74-app> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory> <FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost" </FilesMatch> </VirtualHost>
これで両方の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 :
http://php56.example.com :
結論
このチュートリアルは、Ubuntu 20.04システム上の単一のApacheサーバーで、異なるバージョン2のPHPを使用して複数のWebサイトをセットアップするのに役立ちます。