GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu18.04および16.04にApacheを使用して複数のPHPバージョンをインストールする方法

通常、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.php
echo "<?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 ServerName php56.example.com DocumentRoot / var / www / php56 オプション-Indexes+FollowSymLinks + MultiViewsAllowOverrideAllすべてが許可されている必要があります#Apache2.4.10+はUNIXソケットにプロキシできますSetHandler"proxy:unix:/var/run/php/php5.6-fpm.sock | fcgi:// localhost"

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

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

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

Apache
123456789101112 ServerName php72.example.com DocumentRoot / var / www / php72 オプション-Indexes+FollowSymLinks + MultiViewsAllowOverrideAllすべてが許可されている必要があります SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock | fcgi:// localhost"

これで、両方の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を表示しています 構成として。


Ubuntu
  1. Ubuntu18.04LTSに複数のPHPバージョンをインストールする方法

  2. Ubuntu/LinuxにApacheを使用してSuphpをインストールする方法

  3. Ubuntu 20.04 に PHP 7.4 をインストールする方法

  1. Ubuntu18.04にApacheをインストールする方法

  2. Ubuntu20.04にApacheをインストールする方法

  3. Ubuntu18.04でApacheを使用してNextcloudをインストールおよび構成する方法

  1. Ubuntu18.04にApacheを使用してJoomlaをインストールする方法

  2. Ubuntu20.04にApacheMavenをインストールする方法

  3. Ubuntu20.04にPHP8をインストールする方法