GNU/Linux >> Linux の 問題 >  >> Debian

Debian11/10にApacheで複数のPHPバージョンをインストールする方法

通常、ホストマネージャーは、PHPバージョンのアプリケーション展開ごとに個別のシステムを使用します。これはホスティングコストを増加させます。一部のホストマネージャーは、Dockerを使用して単一のサーバーで複数のPHPバージョンを実行しています。また、ほとんどの人は構成を知っています。一部のシステム管理者はこれに気付いていない可能性があります。このチュートリアルは、PHPバージョンを切り替えることなく、Debian 11、Debian 10、およびDebian9システムにApacheを使用して複数のPHPバージョンをインストールするのに役立ちます。

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

PHPのインストール

PHPバージョンのインストールには、ここで管理されているPPAを使用します。以下のいくつかのコマンドを使用して、DebianシステムにPPAを追加します。

sudo apt install ca-certificates apt-transport-https 
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list

このチュートリアルでは、PHP5.6およびPHP7.2を使用してApacheWebサーバーで構成します。複数のPHPバージョンを使用するには、PHPFPMとFastCGIを使用します。次のコマンドを実行して、PHPとFPMをDebianシステムにインストールします。

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

Apacheのインストール

公式リポジトリからApacheWebサーバーをインストールします。システムでターミナルを起動するか、リモートシステムの場合はsshでログインします。次のコマンドを実行して、利用可能な最新バージョンのApacheWebサーバーをインストールします。

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

Apache構成

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

sudo a2enmod actions fcgid alias proxy_fcgi

次に、システムで構成する両方のサイト用に、システム上に2つの別個のディレクトリを作成します。

sudo mkdir /var/www/php56
sudo mkdir /var/www/php72

次に、phpinfo()関数を含むindex.phpを作成します。これは、ユーザーがVirtualHostで使用されている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

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

テストセットアップ

Webブラウザーを開き、両方のサイトにアクセスします。 php56.example.comが表示されます バージョンPHP5.6を示しています およびphp72.example.com PHP 7.2を表示しています 構成として。


Debian
  1. Debian11にPHP8.0をインストールする方法

  2. PHP8.0をDebian10/Debian9にインストールする方法

  3. Debian10/11にWebminをインストールする方法

  1. Debian10/11にXFCEデスクトップをインストールする方法

  2. PHP8をDebian10にインストールする方法

  3. Debian9にPHP7.2をインストールする方法

  1. Debian10/11にKDEプラズマをインストールする方法

  2. Debian10にPHP7.4をインストールする方法

  3. Debian11にPHPをインストールする方法