このチュートリアルでは、複数のバージョンの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