Edited at

Cento7にphp-fpmをインストールし、nginxと連携する

More than 1 year has passed since last update.

今回やろうとしていることが、

CentOS7 + PHP7 + nginx + MariaDB + Drupal8

の環境構築です。

CentOS7はいつものVirtualBox + Vagrantでスムーズに成功。

PHP7もネットからの情報はどの情報でもほぼ一緒だったのでスムーズに成功。

ところが、nginxのインストールとPHPとの連携でパパッとは行かなかったのでここでおまとめします。

※yumのリポジトリはepelとremiを追加してある状態です。

http://qiita.com/inakadegaebal/items/b57cf10339978d638305


nginxのインストール

ネットの他の情報ではepelリポジトリを明示的に指定するのが多数でしたが、普通に以下でも行けました。

# yum install nginx


nginx.confの場所

vi /etc/nginx/nginx.conf


PHPとnginxとの連携

いよいよPHPとnginxとの連携になります。

Apacheとそんな変わらないだろうと思い、いざやろうとしたら、php-fpmのインストールが必要でした。

PHPとWebServerの連携を

Apacheの場合、モジュール版かCGI版どちらかの連携方法ができ

nginxの場合、CGI版でしか方法がなかった(あるいはメジャー)のです。

違いについては以下の記事がわかりやすいと思います。

http://qiita.com/kotarella1110/items/634f6fafeb33ae0f51dc


php-fpmのインストール

# yum install --enablerepo=remi,remi-php70 php-fpm


www.confの場所

vi /etc/php-fpm.d/www.conf


PHPとnginxとの連携。その2

正確にはnginxとphp-fpmとの通信になります。その通信方法でメジャーな方法TCPかUNIXドメインソケットのどちらかですが、

ここではもっと早いと言われているUNIXドメインソケットのやり方で進めます。


php-fpmの設定


/etc/php-fpm.d/www.conf

user = nginx

group = nginx

listen = /var/run/php-fpm/php-fpm.sock

listen.owner = nginx
listen.group = nginx


nginxからphp-fpmを実行する際は「nginx」ユーザーになるので、実行ユーザーをnginxにします。

listenに指定したファイルはphp-fpmの起動時に生成されます。

# systemctl start php-fpm

# systemctl enable php-fpm

スタートとOS再起動時にも備えて登録しておきます。


nginxの設定


/etc/nginx/nginx.conf

    server {

location ~ .php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}

serverという部分の中に上記を追加してくだだい。

# systemctl start nginx

# systemctl enable nginx

スタートとOS再起動時にも備えて登録しておきます。


phpファイル作成

nginxのDefaultDocumentRootは「/usr/share/nginx/html」になっています。

修正する場合は「/etc/nginx/nginx.conf」を中身を適宜修正しましょう。


/usr/share/nginx/html/test.php

<?php phpinfo(); ?>