CentOS7 + nginx + php7-fpm + UNIXドメインソケットでPHP動かす

CentOS7, nginx1.11, php7-fpm, UNIXドメインソケットの構成でPHP動かす。

以下4つの設定はやっておく。

さくらVPSにCentOS7をインストールしたときにやる設定

CentOS7にyumでnginx1.11をインストール

CentOS7にyumでPHP7, PHP-FPM, OPcache, APCuをインストール

nginx + php-fpmでCentOS7でPHP7を最低限動かす

Unixドメインソケット(UNIX domain socket )

ソケットというのが、実行中のプロセス間でデータの送受信を行う(プロセス間通信)ための仕組み。

UNIXドメインソケットというのが、同じコンピュータ上で実行中のプロセス間通信を行うためのもの。

別のコンピュータで実行中のプロセスとデータ通信を行うものを、TCP/IPネットワークを使うため、TCPソケットという。

nginx + php-fpmのデフォルト設定ではTCPソケットが使われているが、同一サーバ内でプロセス間通信するのでUnixドメインソケットに切り替える。

UNIXドメインソケット設定

nginxの設定を変更。

sudo vim /etc/nginx/conf.d/default.conf
location ~ \.php$ {
    root /usr/share/nginx/html;
    #fastcgi_pass 127.0.0.1:9000;   
    fastcgi_pass unix:/run/php-fpm/php7.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    include fastcgi_params;
}

php-fpmの設定を変更する。

sudo vim /etc/php-fpm.d/www.conf
# TCPソケットからUNIXドメインソケットへ変更
;listen = 127.0.0.1:9000
listen = /run/php-fpm/php7.sock

# これないとエラー出ます
listen.owner = nginx
listen.group = nginx

nginxとphp-fpmを再起動。

sudo systemctl restart nginx
sudo systemctl restart php-fpm

参考

nginx + PHP7.0 / php-fpm Socket 接続に変更

nginx + php-fpm socketで接続する

nginx と PHP-FPM の仕組みをちゃんと理解しながら PHP の実行環境を構築する

調べなきゃ寝れない!と調べたら余計に寝れなくなったソケットの話

コメント

タイトルとURLをコピーしました