通常、hos managerは、PHPバージョンのアプリケーションのデプロイメントごとに個別のサーバーを使用していました。これはホスティングコストを増加させます。一部のホストマネージャーは、Dockerを使用して単一のサーバーで複数のPHPバージョンを実行しています。また、ほとんどの人はこのチュートリアルで使用した構成を知っています。しかし、一部のシステム管理者はこれに気づいていません。このチュートリアルは、PHPバージョンを切り替えることなく、Ubuntu18.04および16.04システムにApacheを使用して複数のPHPバージョンをインストールするのに役立ちます。
このチュートリアルでは、別々のPHPバージョンを使用したApacheへの2つのVirtualHostのインストールと構成について説明します。最初のVirtualHostはPHP5.6で動作し、別のVirtualHostはPHP7.2で動作します。したがって、このチュートリアルを実行してください。必要に応じて、Apacheで3つ以上のPHPバージョンを使用することもできますが、このチュートリアルでは2つだけを取り上げます。
Apacheのインストール
公式リポジトリからApacheWebサーバーをインストールします。システムでターミナルを起動するか、リモートシステムの場合はsshでログインします。次のコマンドを実行して、利用可能な最新バージョンのApacheWebサーバーをインストールします。
sudo apt update sudo apt install apache2 libapache2-mod-fastcgi Ubuntu 18.04 Users: sudo apt install apache2 libapache2-mod-fcgid
PHPのインストール
PHPバージョンのインストールには、ここで管理されているPPAを使用します。以下のいくつかのコマンドを使用して、PPAをシステムに追加します。
### On Ubuntu 18.04 sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php ### On Ubuntu 16.04 sudo apt install python-software-properties sudo add-apt-repository ppa:ondrej/php
このチュートリアルでは、PHP5.6およびPHP7.2を使用してApacheWebサーバーで構成します。複数のPHPバージョンを使用するには、PHPFPMとFastCGIを使用します。次のパッケージをシステムにインストールしましょう。
apt update sudo apt install php5.6 php5.6-fpm sudo apt install php7.2 php7.2-fpm
インストール後、php-fpmサービスが自動的に開始されます。次のコマンドを使用して、両方のサービスが実行されていることを確認します。
sudo systemctl status php5.6-fpm sudo systemctl status php7.2-fpm
- 推奨:UbuntuでPHPモジュールを有効/無効にする方法
Apache構成
ここで、Apacheを使用した複数のPHPバージョンの構成に必要ないくつかのモジュールを有効にします。これらのモジュールは、PHPFPMおよびFastCGIをApacheサーバーと統合するために必要です。
sudo a2enmod actions fastcgi alias proxy_fcgi Ubuntu 18.04 Users: sudo a2enmod actions fcgid alias proxy_fcgi
ApacheサーバーでのWebサイトの構成の準備をします。テストの目的で、2つの異なる2つのPHPバージョンで動作するように2つのWebサイトを構成しています。まず、サーバー上に2つのディレクトリを作成します。
sudo mkdir /var/www/php56 sudo mkdir /var/www/php72
次に、phpinfo()関数を含むindex.phpを作成します。
echo " <?php phpinfo(); ?> " > /var/www/php56/index.phpecho " <?php phpinfo(); ?> " > /var/www/php72/index.php
VirtualHostの作成を始めましょう。 Apacheは、すべてのVirtualHost構成ファイルを/ etc / apache2/sitesの下に保持します。拡張子は.confです。最初の仮想ホスト用のファイルを作成し、お気に入りのテキストエディタで編集します。
sudo vim /etc/apache2/sites-available/php56.example.com.conf
次のコンテンツを追加します。設定に応じて、正しいServerNameとディレクトリパスを使用してください。このWebサイトは、PHP5.6で動作するように構成されています。
Apache
12345678910111213 | |
同様に、PHP7.2で動作する2番目のVirtualHost構成ファイルを作成します。テキストエディタで構成ファイルを編集します:
sudo vim /etc/apache2/sites-available/php72.example.com.conf
次のコンテンツを適切なServerNameとDocumentRootを使用してファイルに追加します。
Apache123456789101112 | |
これで、両方のWebサイトが構成されました。しかし、それらはまだアクティブではありません。 Apacheは、アクティブなサイトを/ etc / apache2/sites-enabledディレクトリに保持します。このディレクトリへの設定ファイルのシンボリックリンクを作成するか、以下のコマンドを使用して同じことを行うことができます。
sudo a2ensite php56.example.com sudo a2ensite php72.example.com
すべての変更を行った後、Apacheを再起動して、新しい設定の変更を再ロードします。
sudo systemctl restart apache2
これでセットアップは完了です。次のステップに進んで、セットアップをテストします。
テストセットアップ
ローカルシステムで/etc/ hostsファイルを編集し、次のようなエントリを作成します。これにより、一時的な名前がローカルホストのIPアドレスに解決されます。
sudo vim /etc/hosts
次のエントリをファイルの最後に追加します
127.0.0.1 php72.example.com 127.0.0.1 php56.example.com
Webブラウザーを開き、両方のサイトにアクセスします。 php56.example.comが表示されます バージョンPHP5.6を示しています およびphp72.example.com PHP 7.2を表示しています 構成として。