洋食の日記

「だ・である」調ではなく「です・ます」調で書きはじめれば良かったなと後悔してる人のブログです

DebianでNginx上でPHPを動かすのはaptでPHP-FPMを入れて設定ファイルをちょっと編集するだけで良い

Nginxの設定ファイルの接しやすさに感動して、Apache2からNginxに完全移行することにした。 WebツールやデモシステムをPHPで作っていたので、とりあえず、PHPが動くようにする。 作業自体は大したことなくて、PHPFastCGI実装のPHP-FPM(FastCGI Process Manager)をインストールすれば良い。

$ sudo apt-get install php5-fpm

設定ファイルとかインストールした時点で良い感じになっている。/etc/php5/fpm/pool.d/www.confを見ると、

$ vim /etc/php5/fpm/pool.d/www.conf
...
listen = /var/run/php5-fpm.sock
...

socketとして/var/run/php5-fpm.sockがあるのがわかる。phpのリクエストがきたら、このsocketに渡せば良い。 これもnginxの設定ファイルにすでにコメントの形で書いてあって、その部分をコメントアウトすれば良い。

$ sudo vim /etc/nginx/sites-available/default
...
location ~ \.php$ {
  include snippets/fastcgi-php.conf;

  # With php-fpm (or other unix sockets):
  #fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
  fastcgi_pass unix:/var/run/php5-fpm.sock;
  # With php-cgi (or other tcp sockets):
  #fastcgi_pass 127.0.0.1:9000;
}

再起動して設定を反映させる。※PHP-FPMの設定ファイルを変更してないけど勢いで再起動しちゃった。

$ sudo systemctl restart php5-fpm.service
$ sudo systemctl restart nginx

以下の内容で、/var/www/html/hoge.phpとか置いてアクセスしてみると、Server APIがFPM/FastCGIになってたりして上手く動いているのがわかる。

<?php
phpinfo();

超簡単でまったくつまづくことがなかった。先人にマジ感謝。