ホームページ >バックエンド開発 >PHPチュートリアル >Linux で複数の PHP バージョンを使用する

Linux で複数の PHP バージョンを使用する

Barbara Streisand
Barbara Streisandオリジナル
2024-11-27 09:14:10387ブラウズ

Using Multiple PHP Version on Linux

この投稿では、複数の PHP バージョンを使用する方法について説明します。場合によっては、異なるテクノロジーや PHP バージョンを使用して異なるアプリ プロジェクトに取り組む必要がある場合があります。たとえば、Laravel 11 PHP8 プロジェクトと CodeIgniter 4 PHP7 プロジェクトを実行したいとします。どちらも異なるバージョンの PHP を実行します。実際には、より簡単な方法、つまり Docker コンテナを使用する方法がありますが、それについては次の投稿で説明します。ここでは、ホスト上で複数の PHP をインストール、構成、実行する方法について説明します。

わかりました。まず、Apache2 を使用して Web サーバーをセットアップし、使用する PHP をセットアップする必要があります。

apt install apache2

PPA リポジトリからインストールするため、最初にリポジトリを追加する必要があります

apt-get install software-properties-common -y

これは、add-apt-repository コマンドを実行できるようにするのに役立ちます。次に、以下のコマンドでリポジトリを追加します

add-apt-repository ppa:ondrej/php
apt update -y

PHP バージョン 7.2 をインストールします

apt-get install php7.2 php7.2-fpm php7.2-mysql libapache2-mod-php7.2 libapache2-mod-fcgid -y

次に、PHP バージョン 8 をインストールします。私の vps は Ubuntu 24.04 なので、デフォルトは PHP 8.3 です。バージョンを指定せずにインストールするには以下のようにします。

apt-get install php php-fpm php-mysql libapache2-mod-php libapache2-mod-fcgid -y

php-fpm を実行します

systemctl start php7.2-fpm
systemctl start php8.3-fpm

次に、複数の PHP バージョンを使用できるように、次のモジュールをアクティブ化します

a2enmod actions fcgid alias proxy_fcgi

次に、Apache サービスを再起動して、すべての変更を適用します。

systemctl restart apache2

それでは、Web サーバーでの virtualhost のセットアップを続けましょう。

mkdir /var/www/app1
mkdir /var/www/app2

権限と所有者も設定します

chown -R www-data:www-data /var/www/app1
chown -R www-data:www-data /var/www/app2
chmod -R 775 /var/www/app1
chmod -R 775 /var/www/app2

apache2 で site-available の設定を続けます。最初に設定ファイルを作成します。

ドメインがないため、仮想ホストとポートを区別します。 php7.2 を実行しているポート 80 と php8.3 を実行しているポート 90

nano /etc/apache2/sites-available/app1.conf

次に、次の構成を貼り付けます

+<VirtualHost *:80>
+     ServerAdmin app1
+     ServerName app1.com
+     DocumentRoot /var/www/app1
+     DirectoryIndex info.php

+     <Directory /var/www/app1>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
     </Directory>

    <FilesMatch \.php$>
        # From the Apache version 2.4.10 and above, use the SetHandler to run PHP as a fastCGI process server
+         SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost"
    </FilesMatch>

     ErrorLog ${APACHE_LOG_DIR}/site1.your_domain_error.log
     CustomLog ${APACHE_LOG_DIR}/site1.your_domain_access.log combined
</VirtualHost>

PHP バージョン 8 用の別の構成ファイルを作成します

nano /etc/apache2/sites-available/server2.conf

設定も貼り付けます

+<VirtualHost *:90>
+     ServerAdmin site2
+    ServerName site2.com
+     DocumentRoot /var/www/app2
+     DirectoryIndex info.php

+     <Directory /var/www/app2>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
     </Directory>

    <FilesMatch \.php$>
        # From the Apache version 2.4.10 and above, use the SetHandler to run PHP as a fastCGI process server
+         SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost"
    </FilesMatch>

     ErrorLog ${APACHE_LOG_DIR}/site1.your_domain_error.log
     CustomLog ${APACHE_LOG_DIR}/site1.your_domain_access.log combined
</VirtualHost>

緑色のセクションには、条件やニーズに応じて変更する必要がある設定行がいくつかあります

次に、構成が間違っているかどうかをテストし、構文が正しいことを確認して、次の段階に進むことができます

apachectl configtest

次に、仮想ホスト構成をアクティブ化します

a2ensite app1.conf
a2ensite app2.conf

デフォルト設定を無効にすることを忘れないでください

a2dissite 000-default.conf

仮想ホストでは別のポートを使用するため、最初にそれを登録する必要があります。

nano /etc/apache2/ports.conf

緑色に着色した行に追加

apt install apache2

すべてが完了したら、サーバーを再起動してテストを行うだけです

apt-get install software-properties-common -y

IP アドレスとポートにアクセスしてテストを実行します。関数 phpinfo() を含む info.php ファイルを作成することをお勧めします。各ドキュメントルートにあります。

テストするには http://ip-server:port にアクセスしてください

これがお役に立てば幸いです。頑張ってください

以上がLinux で複数の PHP バージョンを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。