13,133
回編集
| 334行目: | 334行目: | ||
== 複数のバージョンのPHP-FPM == | == 複数のバージョンのPHP-FPM == | ||
PHP- | PHP-FPMを使用する場合に限り、複数のバージョンのPHPをインストールしてApache2 / Nginxで動作することができる。<br> | ||
<br> | <br> | ||
あらかじめ、1つのPHPのバージョンを標準として設定しておき、仮想ホストにおいて他のPHPのバージョンを実行することができる。<br> | |||
これは、PHPベースのソフトウェアが特定のバージョンを必要とする場合や最新版のPHPとの互換性が無い場合に必要となる。<br> | これは、PHPベースのソフトウェアが特定のバージョンを必要とする場合や最新版のPHPとの互換性が無い場合に必要となる。<br> | ||
<br> | <br> | ||
==== Apache2の場合 ==== | |||
以下の例では、複数のバージョンのPHPを同時に実行している。<br> | 以下の例では、複数のバージョンのPHPを同時に実行している。<br> | ||
<br> | <br> | ||
まず、複数のバージョンのPHP-FPMをインストールする。 | まず、複数のバージョンのPHP-FPMをインストールする。<br> | ||
以下の例では、PHP 7.2とPHP 7.4としている、<br> | |||
sudo apt-get install php7.2-fpm php7.4-fpm | sudo apt-get install php7.2-fpm php7.4-fpm | ||
<br> | <br> | ||
| 361行目: | 363行目: | ||
</FilesMatch> | </FilesMatch> | ||
</VirtualHost> | </VirtualHost> | ||
<br> | |||
==== NginXの場合 ==== | |||
まず、FastCGIプロセスのユーザおよびグループを設定する。<br> | |||
# パッケージ管理システムからPHPをインストールしている場合 | |||
# 以下の例では、RHELにおいてPHP 8.3とPHP 7.4をインストールしている | |||
sudo vi /etc/opt/remi/php83/php-fpm.d/www.conf | |||
sudo vi /etc/opt/remi/php74/php-fpm.d/www.conf | |||
# 任意のディレクトリにPHPをインストールしている場合 | |||
vi /<PHPのインストールディレクトリ 1>/etc/php-fpm.d/www.conf | |||
vi /<PHPのインストールディレクトリ 2>/etc/php-fpm.d/www.conf | |||
<br> | |||
<syntaxhighlight lang="ini"> | |||
user = <NginXが稼働しているユーザ名 例: nginx> | |||
group = <NginXが稼働しているグループ名 例: nginx> | |||
</syntaxhighlight> | |||
<br> | |||
次に、各バージョンのPHP-FPMのプール設定ファイルにおいて、ListenパラメータをFastCGI要求を受信するアドレスとポートを定義する。<br> | |||
# パッケージ管理システムからPHPをインストールしている場合 | |||
# 以下の例では、RHELにおいてPHP 8.3とPHP 7.4をインストールしている | |||
sudo vi /etc/opt/remi/php83/php-fpm.d/www.conf | |||
sudo vi /etc/opt/remi/php74/php-fpm.d/www.conf | |||
# 任意のディレクトリにPHPをインストールしている場合 | |||
vi /<PHPのインストールディレクトリ 1>/etc/php-fpm.d/www.conf | |||
vi /<PHPのインストールディレクトリ 2>/etc/php-fpm.d/www.conf | |||
<br> | |||
<syntaxhighlight lang="ini"> | |||
# www.confファイル (例: PHP-FPM 8.3) | |||
listen = <IPアドレス または ホスト名 例: 127.0.0.1>:<ポート番号 例: 9000> | |||
</syntaxhighlight> | |||
<br> | |||
<syntaxhighlight lang="ini"> | |||
# www.confファイル (例: PHP-FPM 7.4) | |||
listen = <IPアドレス または ホスト名 例: 127.0.0.1>:<ポート番号 例: 9001> | |||
</syntaxhighlight> | |||
<br> | |||
NginXがWebサイトへのリクエスト処理を決定するため、NginXの仮想ホスト向けサーバブロック設定ファイルを編集する。<br> | |||
<syntaxhighlight lang="nginx"> | |||
# NginXのサーバブロック設定ファイル (仮想ホスト 1) 例: PHP 8.3向け | |||
server { | |||
# ...略 | |||
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 | |||
location ~ \.php$ { | |||
root /srv/www/htdocs/example1.com/; | |||
fastcgi_pass <IPアドレス または ホスト名 または PHP-FPMのソケットファイルのフルパス>; | |||
# 例1: <127.0.0.1>:<ポート番号 例: 9000> | |||
# 例2: unix:/<PHPのインストールディレクトリ 1>/var/run/php-fpm/php-fpm.sock; | |||
# 例3: unix:/var/run/php-fpm/php-fpm.sock; | |||
# ...略 | |||
} | |||
# ...略 | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
<syntaxhighlight lang="nginx"> | |||
# NginXのサーバブロック設定ファイル (仮想ホスト 2) 例: PHP 7.4向け | |||
server { | |||
# ...略 | |||
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9001 | |||
location ~ \.php$ { | |||
root /srv/www/htdocs/example2.com/; | |||
fastcgi_pass <IPアドレス または ホスト名 または PHP-FPMのソケットファイルのフルパス>; | |||
# 例1: <127.0.0.1>:<ポート番号 例: 9001> | |||
# 例2: unix:/<PHPのインストールディレクトリ 2>/var/run/php-fpm/php-fpm.sock; | |||
# 例3: unix:/var/run/php-fpm/php-fpm.sock; | |||
# ...略 | |||
} | |||
# ...略 | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
NginXの設定ファイル群のシンタックスを確認する。<br> | |||
sudo nginx -t | |||
<br> | |||
NginXおよび各PHP-FPM向けのSystemdサービスを起動する。<br> | |||
以下の例は、RHELの場合である。<br> | |||
sudo systemctl start nginx \ | |||
php-fpm \ # 例: PHP-FPM 8.3の起動 | |||
php74-php-fpm # 例: PHP-FPM 7.4の起動 | |||
<br><br> | <br><br> | ||