CentOS 6.3 に PHP-FPM をインストール

ちょっと事情があって、CentOS 6.3 にPHPをインストールすることになりました。僕はすっかり nginx に移行してしまっていて、もう何年も Apache を使っていない上にサーバサイドは Python を使うことが多いので PHP の設定をすること自体が数年ぶりです。最近は PHP を動かすのにどうしてるんだろうと調べたところ、nginx + php-fpm というのがモダンな感じらしいのでそれを使うことにしました。

PHP-FPMは標準のyumリポジトリには含まれていないので、remiリポジトリを有効にします。

# rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

PHP-PFM のインストールと設定をします。今回の用途ではほぼ自分しか使わないので worker の数は最低限にします。

# yum install php php-fpm php-cli php-devel php-gd php-mysql php-process php-mbstring php-xml --enablerepo=remi
# vi /etc/php-fpm.d/www.conf
user = nginx
group = nginx

pm.max_children = 5
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 2
pm.max_requests = 200

# service php-fpm start

次に nginx の設定ですが、今回はLAN内からのみのアクセスなのでIPアドレスによる制限をかけます。また、http://ホスト名/php/ にアクセスすると /var/www/php の下のPHPプログラムが実行されるようにします。default.conf に以下の設定を追加して再起動。

# vi /etc/nginx/conf.d/default.conf

location /php {
    root /var/www;
    index index.html index.php;
    allow 192.168.1.0/24;
    deny all;

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

# service nginx restart
/var/www/php/index.php
<?php
  echo phpinfo();
?>
試しにお決まりの上記のようなファイルを作って http://servername/php/ にアクセスして動作に問題なければ、自動起動の設定をして完了です。
# chkconfig php-fpm on