karakaram-blog

お名前.com VPS にNginxとPHP-FPMをインストール

 ツイート 2  シェア 0  Google+1 0  Hatena 6

nginx-logo

お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第9回目。前回はさくらレンタルサーバのWordPressをお名前.com VPS に引越しする手順を紹介しました。

今回は、Nginx と PHP-FPM をインストールして phpinfo を表示させるところまでやります。

これまでの記事へのリンクはお名前.comのVPSに引越しました。引越し手順、他社 VPS との比較などにまとめてあります。

目次

  1. Nginx をインストール
  2. Nginx を起動
  3. PHP-FPM をインストール
  4. PHP-FPM を設定
  5. PHP の Session を memcached に入れる
  6. Nginx で PHP を動作させる最小限の設定
  7. ベーシック認証を設定
  8. Nginx の logrotate

Nginx をインストール

Nginx は CentOS 標準のリポジトリに存在せず、remi リポジトリのパッケージもやや古いので、開発サイトのリポジトリから最新版をインストールします。

参考サイト
Nginx 公式 Wiki Install

/etc/yum.repos.d/nginx.repo を作成します。

# vi /etc/yum.repos.d/nginx.repo

name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

yum コマンドで Nginx をインストールします。

# yum install nginx

Nginx を起動

Apache が起動している場合は停止します。

# /etc/init.d/httpd stop

Nginx を起動します。

# /etc/init.d/nginx start

起動したら http://vXXX-XXX-XXX-XXX.myvps.jp にアクセスして Welcom ページが表示されることを確認します。

Welcome ページの確認ができたら OS の起動と同時に Nginx を起動するように設定します。

# chkconfig nginx on
# chkconfig --list nginx
nginx         0:off   1:off   2:on    3:on    4:on    5:on    6:off

Apache の自動起動が無効になっていることも確認しておきます。

# chkconfig --list httpd
httpd         0:off   1:off   2:off   3:off   4:off   5:off   6:off

PHP-FPM をインストール

Nginx で PHP を動作させるには、PHP-FPM を利用します。

remi リポジトリからインストールします。

# yum install php-fpm --enablerepo=remi

OS の起動と同時に PHP-FPM を起動するように設定します。

# chkconfig php-fpm on
# chkconfig --list php-fpm
php-fpm         0:off   1:off   2:on    3:on    4:on    5:on    6:off

PHP-FPM を設定

デフォルトの状態では高負荷時にメモリを多く消費してしまうので、サーバのスペックに合わせて調整します。お名前.com メモリ 2GB プランでは以下のような感じです。

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

listen = /var/run/php-fpm/php-fpm.sock
listen.allowed_clients = 127.0.0.1
listen.owner = nginx
listen.group = nginx
listen.mode = 0664

user = nginx
group = nginx

pm = dynamic
pm.max_children = 15
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 5

slowlog = /var/log/php-fpm/www-slow.log
catch_workers_output = yes
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
上記で設定している PHP-FPM のユーザは Nginx から PHP を動作させるときのユーザです。この後設定する Nginx のユーザと同じにしておきます。

PHP の Session を memcached に入れる

以前書いた、お名前.com VPS にPHPをインストールし、APC、memcachedなど設定する では、Apache で PHP を動作させている時 Session を memcached に入れるように設定しました。PHP-FPM の場合も別途設定が必要です。Apache の時と同様に /etc/php-fpm.d/www.conf の Session 設定をコメントアウトします。

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

#php_value[session.save_handler] = files
#php_value[session.save_path] = /var/lib/php/session

PHP-FPM 再起動

/etc/init.d/php-fpm restart

Nginx で PHP を動作させる最小限の設定

PHP-FPM 経由で PHP を動作させる最小限の設定です。

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

server {
    listen 80 default_server;
    server_name vXXX-XXX-XXX-XXX.myvps.jp;
    root /var/www/html;
    index index.php index.html;

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

Nginx 再起動

/etc/init.d/nginx restart

まずは PHP の動作確認。お名前.com VPS にPHPをインストールし、APC、memcachedなど設定する で動作確認に使用した phpinfo.php にアクセスしてみます。http://vXXX-XXX-XXX-XXX.myvps.jp/phpinfo.php にアクセスして以下のような画面が表示されれば OK です。

phpinfo

次に memcached に入れる設定にした Session の動作確認。こちらも お名前.com VPS にPHPをインストールし、APC、memcachedなど設定する で動作確認に使用した session.php を使います。http://vXXX-XXX-XXX-XXX.myvps.jp/session.php にアクセスしてリロードのたびに数値がカウントアップされれば OK です。

ベーシック認証を設定

検証中のサイトは他の人に見られたくないので、ベーシック認証を入れておきます。

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

server {
    ...
    auth_basic            "Please Enter Your Password";
    auth_basic_user_file  "/var/www/.htpasswd";
    ...
}

.htpasswd は お名前.com VPS にApacheをインストールしてSSL環境も整える で作成したものを使います。

Nginx の logrotate

Nginx のログの rotate が 54日 と長かったので、4日 にします。

# vim /etc/logrotate.d/nginx

rotate 4

終わりに

Nginx で PHP を動作させる準備が整いました。次回は、お名前.com VPS にNginxでWordPressを構築。設定の意味もまとめたです。

参考サイト
nginxベースの高速なWordPress環境をお名前.comのVPSで構築

 ツイート 2  シェア 0  Google+1 0  Hatena 6