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

2013年6月15日

WordPress

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

WordPress
さくらレンタルサーバのWordPressをお名前.com VPS に引越しする手順

お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第8回目。前回は PH ...

続きを見る

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

目次

  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 を作成します。

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 プランでは以下のような感じです。

/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 に入れる

以前書いた記事では、Apache で PHP を動作させている時 Session を memcached に入れるように設定しました。

WordPress
お名前.com VPS にPHPをインストールし、APC、memcachedなど設定する

お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第7回目。前回はMyS ...

続きを見る

PHP-FPM の場合も別途設定が必要です。Apache の時と同様に /etc/php-fpm.d/www.conf の Session 設定をコメントアウトします。

/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 を動作させる最小限の設定です。

/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 の動作確認。以下の記事で動作確認に使用した phpinfo.php にアクセスしてみます。

WordPress
お名前.com VPS にPHPをインストールし、APC、memcachedなど設定する

お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第7回目。前回はMyS ...

続きを見る

http://vXXX-XXX-XXX-XXX.myvps.jp/phpinfo.php にアクセスして以下のような画面が表示されれば OK です。

phpinfo

次に memcached に入れる設定にした Session の動作確認。こちらも以前の記事で動作確認に使用した session.php を使います。

WordPress
お名前.com VPS にPHPをインストールし、APC、memcachedなど設定する

お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第7回目。前回はMyS ...

続きを見る

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 を動作させる準備が整いました。次回は、Nginxの設定まわりをやります。

WordPress
お名前.com VPS にNginxでWordPressを構築。設定の意味もまとめた

お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第10回目。前回は、N ...

続きを見る

-技術ブログ
-