さくらVPS入門 vol.4 PHP(php-fpm)を入れてNginxでPHPを動かす

さて、今日はNginxでPHPを動かせるようにVPSサーバにPHPを入れます。

NginxでPHPを動かすには、PHPとPHP-FPMのインストールが必要

仕組みは未だによく分かっていないのですが、NginxでPHPを動かすにはPHPだけじゃなくてPHP-FPMというのも入れなきゃダメみたいなんです。

Nginx入門

ApacheだったらPHPだけでいいのですが、Nginxの場合はソケットがなんじゃら、FastCGIがうんじゃらという事で2ついるみたいです。と、この前買ったNginx本に書いてました。仕組みは本を読んでもチンプンカンプンでしたが(笑)いずれ分かる日が来るでしょう、たぶん。

[amazonjs asin="4048702270" locale="JP" title="ハイパフォーマンスHTTPサーバ Nginx入門"]

VPSにPHPをインストール

PHPのインストールは以下コマンドで。

yum install php php-devel php-mysql php-mbstring php-gd

インストール後にPHPの設定ファイルを若干修正する必要が有るのですが、ドットインストールの動画説明を見て頂いた方が分かりやすいかと思いますので割愛。

#15 PHPの設定をしよう

VPSにPHP-FPMをインストール

PHP-FPMはしょっぱなyumではインストール出来ないようで、yumでインストール出来るようにする為にRemiというのをまず入れるようです。以下の記事を参考にしました。

PHP-FPMのインストールと設定 | Linux入門

まずはtmpフォルダに移動。

cd /tmp

次に、wget(ダウンロードコマンド)でRemiをダウンロード。

wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

保存完了と出たら、次はrpm(RPMパッケージをインストールするコマンド)でダウンロードしたRemiをインストール。2回ぐらい「Is this ok [y/N]」と聞かれると思いますがそこはyで。

rpm -ivh remi-release-6.rpm

次にようやくyumでphp-fpmをインストール。--enablerepoというのは良くわかりませんが、参照サイトに付いていたので付けました。なんだろうこれ・・・。とりえあず以下コマンドでOKでした。

yum --enablerepo=remi install php-fpm

Complete!が出たら無事PHP-FPMのインストール完了。次にchkconfigでPHP-FPMを自動起動設定しておきましょう。

chkconfig php-fpm on

PHP-FPMの設定

PHP-FPMのインストールが終わったら、次は設定です。PHP-FPMの設定ファイルはetcのphp-fpm.dの中に有りますので、とりあえず設定ミスした時の為に元ファイルをコピーしておきましょう。

cp /etc/php-fpm.d/www.conf  /etc/php-fpm.d/www.conf.org

次にvimでwww.confを開きます。

vim /etc/php-fpm.d/www.conf

いじるのは2箇所。39と42行目位にある、userとgroupの部分。デフォルトはapacheになっているので、そこをnginxに直してから保存。

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

これでPHP-FPMの設定は終わり!以下コマンドでPHP-FPMをリスタート。

service php-fpm restart

Nginxの設定

最後にNginxをPHPに対応させる為の設定。Nginxの設定ファイルはetcのnginx/conf.dの中に有ります。こちらも念のためコピーしておきましょう。

cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.org

次にvimでdefault.confを開きます。

vim /etc/nginx/conf.d/default.conf

設定は3つ。10行目位にあるindexの後にindex.phpを追加。

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }

次に、30〜37行目位のlocation〜のコメント#を全部外します。コメントを外したら「root」と「fastcgi_param」も書き換えて、以下のようにして保存します。

location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

僕はここでrootを書き換えるのと、fastcgi_paramを書き換えるのでハマっておりました・・・。これでNginxの設定ファイル(default.conf)は以下のようになったかと思います。

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root

ほんでNginxも一旦リスタートします。

service nginx restart

PHPが動けば完了!

試しになんでも良いのですが、とりあえずサーバのPHP情報を表示させる以下のPHPコードを書いたindex.phpでもNginxのルートフォルダ(/usr/share/nginx/htmlの中)に保存してみてください。

3

動きましたね!これでNginxでPHPが使えるようになりました!あとはMySQLを入れればWordPressが利用可能になるはずです。WordPressが使えるまで後少し・・・。

さぁ、今から一緒にVPSを始めましょう!

さくらVPSなら2週間お試し期間があって本契約と同様のVPSサーバを用意してくれるのでとりあえずやってみて下さい!最初はとっつきにくいですが、VPSを使う事によりサーバ側の知識が深まり、さらに黒い画面にも馴れ、あなたのレベルは確実に上がります。僕はウェブデザイナーもプログラム・サーバ側の知識は必要と考えています。さぁ、レッツVPS!

さくらのVPS

SPONCERD

コメント1件

[…] vol.4へ続く さくらVPS入門 vol.4 PHP(php-fpm)を入れてNginxでPHPを動かす […]


※承認後に反映されます