さくらVPS入門 vol.4 PHP(php-fpm)を入れてNginxでPHPを動かす
さて、今日はNginxでPHPを動かせるようにVPSサーバにPHPを入れます。
目次
NginxでPHPを動かすには、PHPとPHP-FPMのインストールが必要
仕組みは未だによく分かっていないのですが、NginxでPHPを動かすにはPHPだけじゃなくてPHP-FPMというのも入れなきゃダメみたいなんです。
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の設定ファイルを若干修正する必要が有るのですが、ドットインストールの動画説明を見て頂いた方が分かりやすいかと思いますので割愛。
VPSにPHP-FPMをインストール
PHP-FPMはしょっぱなyumではインストール出来ないようで、yumでインストール出来るようにする為にRemiというのをまず入れるようです。以下の記事を参考にしました。
まずは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の中)に保存してみてください。
動きましたね!これでNginxでPHPが使えるようになりました!あとはMySQLを入れればWordPressが利用可能になるはずです。WordPressが使えるまで後少し・・・。
さぁ、今から一緒にVPSを始めましょう!
さくらVPSなら2週間お試し期間があって本契約と同様のVPSサーバを用意してくれるのでとりあえずやってみて下さい!最初はとっつきにくいですが、VPSを使う事によりサーバ側の知識が深まり、さらに黒い画面にも馴れ、あなたのレベルは確実に上がります。僕はウェブデザイナーもプログラム・サーバ側の知識は必要と考えています。さぁ、レッツVPS!
SPONCERD
コメント1件
[…] vol.4へ続く さくらVPS入門 vol.4 PHP(php-fpm)を入れてNginxでPHPを動かす […]
2015.05.10 16:44 さくらVPS入門 vol.3 NginxをさくらVPSサーバ(CentOS 6 x86_64)にインストール | わぃ、おがわ