異なるバージョンのPHPを共存させる on NGINX x PHP-FPM

remiを使い、php5.6の環境下に、php7.2をインストールしてみたのですが、
複数のPHP-FPMを起動することは出来ませんでした。

参考

※phpenvを使うと、出来るかもしれませんが、諦めて、docker使いました。

 

そもそも、PHP-FPMって

Apacheだと、PHPが渡るたびに、都度都度プロセスを起動していたので、
※今は、そうじゃないかもしれませんが、、、(知りません)

それが「遅いよね」ってことで、PHPを常駐化したのが、PHP-FPMで、
そのために、Nginxが表舞台に経った、はず。

で、実際に、PHP5.6-FPMのサービスが実行されている中、
PHP7.2-FPMを起動してみたところ、

[ec2-user]$ sudo service php-fpm-7.2 start
Starting php-fpm-7.2: [19-Oct-2019 11:52:55] ERROR: An another FPM instance seems to already listen on /var/run/php-fpm/php5.6-fpm.sock
[19-Oct-2019 11:52:55] ERROR: FPM initialization failed
[FAILED]

「既に、動いてるよ」ということで、

要用、上記参考したURLを見てみると、Apache・・・

常駐化せんでもいいように、Dynamic > Ondemandにしてあったり、
そこまでたどり着かないと、その意味がわからず、、、

 

流行りのDockerで、PHP-FPMを実行

避けて通っていましたが、Dockerに行きました。

https://hub.docker.com/r/crunchgeek/php-fpm

 

EC2上のOS上で動く(フロントの)nginxで、
PHPの場合、

fastcgi_pass 127.0.0.1:9000;

ローカルのFPMに処理をさせていますが、
Docker上のPHP-FPM  7.2に、処理していただくようにしました。

fastcgi_pass 127.0.0.1:9072;

※docker run オプション – p 9072:9000

***

仮想環境の上に、仮想環境(EC2)を作り、
その上に、仮想環境(Docker)が走る

 

なんか、不思議な感じです。CPUダイレクトだから、実現できる速さなんでしょうねー。

 

PS.

Eccube3の実行中のEC2のうちの1台が、遅くて使い物になりません。
Cloudfrontを使っていた頃波の遅さ。もう1台も4秒台と遅いんだけども。

EC2のスペックが悪いのか?メモリーやCPUがパンクしてるわけでもなく、
でも、ECCUBE2.13の速度は、早いとは言えないけど、普通だし。

※もちろん、キャッシュファイルは、EFS上にはない

やっぱり、プラグインの読み込みが問題なんだろうなと思いつつ、
まだ、ECCUBE 2.13を動かさなきゃいけないし、
4にはまだ移行できないし、(どっちみち、7.xが必要だし)
とりあえず、「PHP 7.xは早い」ということで、今回のPHP複合環境の構築に至っております。

 

異なるバージョンのPHPを共存させる on NGINX x PHP-FPM
Tagged on: