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

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

このチュートリアルでは、複数のバージョンのPHPをインストールする方法を説明します。 Ubuntuで、特定のApache仮想ホストまたはNginxサーバーブロックがそれらの1つを使用するようにします。これは、サーバー上に複数のWebアプリケーションがあるが、そのうちの1つまたは2つがデフォルトのUbuntuリポジトリのPHPバージョンと互換性がない場合に役立ちます。 Ubuntu 18.04リポジトリにはPHP7.2が含まれ、Ubuntu20.04リポジトリにはPHP7.4が含まれます。 PHP7.3のインストール方法を説明します 、 PHP7.4 、および PHP8.0 単一のUbuntuサーバー上。

PPAを介してUbuntuに複数のバージョンのPHPをインストールする

PHPの複数のバージョンをインストールする最も簡単な方法は、Debian開発者であるOndřejSurýのPPAを使用することです。このPPAを追加するには、ターミナルで次のコマンドを実行します。 software-properties-common PPAからソフトウェアをインストールする場合は、パッケージが必要です。 Ubuntuデスクトップに自動的にインストールされますが、Ubuntuサーバーにない可能性があります。

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

これで、 PHP8.0をインストールできます 次のコマンドを実行してUbuntuで。

sudo apt install php8.0 php8.0-fpm

そして、いくつかの一般的なPHP8.0拡張機能をインストールします。

sudo apt install php8.0-mysql php8.0-mbstring php8.0-xml php8.0-gd php8.0-curl

sudo apt install php8.0と入力すると、利用可能なすべてのPHP7.4拡張機能を表示できます。 Tabを押します キーを2回押します。

PHP7.4をインストールするには Ubuntuでは、

を実行します
sudo apt install php7.4 php7.4-fpm

一般的なPHP7.4拡張機能をいくつかインストールします。

sudo apt install php7.4-mysql php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl

PHP7.3も同じようにインストールできます。これらのコマンドでバージョン番号を置き換えるだけです。

ヒント :PHP5.6、PHP7.0、およびPHP7.2は保守終了に達しましたが、このPPAからセキュリティ修正を取得できます。

Apache仮想ホストでのPHPバージョンの切り替え

デフォルトでは、Apacheはすべての仮想ホストで1つのPHPバージョンを使用します。特定の仮想ホストで別のバージョンのPHPを使用する場合は、Apache PHPモジュールを無効にして、PHP-FPMを介してPHPコードを実行する必要があります。 mod_phpかどうかを確認します がインストールされています。

dpkg -l | grep libapache2-mod-php

インストールされている場合は、無効にする必要があります。たとえば、libapache2-mod-php7.4があります Ubuntu20.04サーバーにインストールされています

実行して無効にします:

sudo a2dismod php7.4

また、プリフォークMPMモジュールを無効にする必要があります。

sudo a2dismod mpm_prefork

mod_phpであるかどうかに関係なく、PHP-FPMを使用するには、次のコマンドを実行して3つのモジュールを有効にする必要があります。 サーバーにインストールされています。

sudo a2enmod mpm_event proxy_fcgi setenvif

PHP-FPM構成スニペットは、/etc/apache2/conf-available/にあります。 。

Apache仮想ホストでPHP8.0を使用し、仮想ホスト構成ファイルを開いて、<VirtualHost>に次の行を追加するとします。 タグ。

Include /etc/apache2/conf-available/php8.0-fpm.conf

このように:

ファイルを保存して閉じます。次に、構文を確認します。

sudo apachectl -t

変更を有効にするには、Apacheを再起動します。

sudo systemctl restart apache2

ここで、MauticはPHP7.4と互換性がないため、Mautic仮想ホストでPHP7.3を使用するとします。次に、Mautic仮想ホストの<VirtualHost>の間に次の行を追加します。 タグを付けてからApacheを再起動します。

Include /etc/apache2/conf-available/php7.3-fpm.conf

仮想ホストで使用されているPHPのバージョンをテストするには、info.phpを作成します。 ドキュメントルート内のファイル(たとえば、/var/www/html

sudo nano /var/www/html/info.php

次のPHPコードをファイルに貼り付けます。

<?php phpinfo(); ?>

ファイルを保存して閉じます。次に、ブラウザのアドレスバーに「

」と入力します
your-domain.com/info.php

NginxサーバーブロックでのPHPバージョンの切り替え

NginxサーバーブロックでPHPのバージョンを切り替えるのは非常に簡単です。ご存知かもしれませんが、NginxはUnixソケットでリッスンするPHP-FPMを介してPHPコードを実行します。ソケットファイルは/run/php/にあります ディレクトリ。

スクリーンショットからわかるように、私のサーバーには、さまざまなPHPバージョンに対応するいくつかのPHP-FPMソケットファイル(.sock)があります。 Nginxサーバーブロックファイルには通常、PHP-FPMサーバーに接続するための次のスニペットが含まれています。

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

Nginxで使用されているPHPのバージョンは、スニペットの3行目で判別されます。特定のNginxサーバーブロックでPHP8.0を使用するには、その行を次のように変更します。

fastcgi_pass unix:/run/php/php8.0-fpm.sock;

NginxサーバーブロックでPHP7.3を使用するには、その行を

に変更します。
fastcgi_pass unix:/run/php/php7.3-fpm.sock;

あなたは今その考えを理解していると確信しています。ファイルを保存して閉じます。次に、変更を有効にするためにNginxをリロードします。

sudo systemctl reload nginx

サーバーブロックで使用されているPHPのバージョンをテストするには、info.phpを作成します。 ドキュメントルート内のファイル(たとえば、/var/www/html

sudo nano /var/www/html/info.php

次のPHPコードをファイルに貼り付けます。

<?php phpinfo(); ?>

ファイルを保存して閉じます。次に、ブラウザのアドレスバーに「

」と入力します
your-domain.com/info.php

コマンドラインのデフォルトのPHPバージョンを設定する方法

新しいバージョンのPHPをUbuntuにインストールすると、それがコマンドラインのデフォルトバージョンになります。 PHP8.0をインストールしましたが、コマンドラインのデフォルトバージョンとしてPHP7.4が必要です。

デフォルトのコマンドラインPHPバージョンを設定するには、次のコマンドを実行します。

sudo update-alternatives --config php

コマンドラインPHPの現在のバージョンを確認するには、

を実行します。
php --version


Ubuntu
  1. Ubuntu 18.04 /Ubuntu16.04にPHP7.4/ 7.3/7.2をインストールする方法

  2. Ubuntu 20.04 /Ubuntu18.04にPHP8.0をインストールする方法

  3. Ubuntu14.04にPHP7をインストールする方法

  1. Ubuntu15.04にPHP7をインストールする方法

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

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

  1. Ubuntu16.04にPHP7.3をインストールする方法

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

  3. UbuntuでNginxを使用して複数のPHPバージョンを実行する方法は?