ホームページ >バックエンド開発 >PHPチュートリアル >Linux で複数の PHP バージョンを使用する
この投稿では、複数の 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 サイトの他の関連記事を参照してください。