「インストール - PHP」の版間の差分

ナビゲーションに移動 検索に移動
334行目: 334行目:


== 複数のバージョンのPHP-FPM ==
== 複数のバージョンのPHP-FPM ==
PHP-FPMを使用する場合に限り、複数のバージョンのPHPをインストールしてApacheで動作することができる。<br>
PHP-FPMを使用する場合に限り、複数のバージョンのPHPをインストールしてApache2 / Nginxで動作することができる。<br>
<br>
<br>
1つのPHPのバージョンを標準として設定しておき、仮想ホストにおいて他のPHPのバージョンを実行することができる。<br>
あらかじめ、1つのPHPのバージョンを標準として設定しておき、仮想ホストにおいて他のPHPのバージョンを実行することができる。<br>
これは、PHPベースのソフトウェアが特定のバージョンを必要とする場合や最新版のPHPとの互換性が無い場合に必要となる。<br>
これは、PHPベースのソフトウェアが特定のバージョンを必要とする場合や最新版のPHPとの互換性が無い場合に必要となる。<br>
<br>
<br>
==== Apache2の場合 ====
以下の例では、複数のバージョンのPHPを同時に実行している。<br>
以下の例では、複数のバージョンのPHPを同時に実行している。<br>
<br>
<br>
まず、複数のバージョンのPHP-FPMをインストールする。(例えば、PHP 7.2とPHP 7.4)<br>
まず、複数のバージョンの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>


案内メニュー