はじめに
PHP で開発された Web アプリを、Web サーバーとは別のサービスとして実行できるようにします。Web サーバーと分離する利点は、Apache や Nginx など、Web サーバーの種類に依存しないで実行できるようになる点、Web サーバーが稼働するホストとは別に、例えばアプリケーションサーバーとして別のホストに分散して構築できるようになる点などが挙げられます。
今回、AWS EC2 Amazon Linux で稼働するホストで Nginx 向けに PHP-FPM をインストールする手順を紹介します。Nginx の設定ファイルのサンプルについてはこちらの投稿を参照してください。
インストール
PHP インストール
Amazon Linux では PHP は3つのバージョン(5.4 デフォルト、5.5、5.6) がリポジトリに用意されています。今回、最新の 5.6 をインストールしました。時刻は日本標準時に設定しておきます。
$ sudo yum install php56
/etc/php.ini
889c889
< ;date.timezone =
---
> date.timezone = "Asia/Tokyo"
PHP-FPM インストール
PHP-FPM はデフォルトの設定では Apache と連携するように構成されています。Nginx と連携させるために、ユーザーを変更しておきます。
$ sudo yum install php56-fpm
/etc/php-fpm.d/www.conf
23c23
< user = apache
---
> user = nginx
25c25
< group = apache
---
> group = nginx
$ sudo chown root:nginx /var/lib/php/5.6/session
PHP-FPM サービス起動
$ sudo service php-fpm start
$ sudo chkconfig php-fpm on
追加の PHP パッケージインストール
WordPress 向け
WordPress が稼働できるように必要なパッケージもここでインストールしています。PHP-FPM を再起動するまでインストールしたパッケージは有効になりません。
$ sudo yum install php56-mbstring php56-mcrypt php56-mysqlnd php56-opcache
$ sudo service php-fpm restart