はじめに
nginxやphp-fpm(php)はソースから入れることも多いですが、
サービス自体は他のものを使っていてphp製品のphpMyAdminやadminerを
サクっと入れたいためだけにnginxやphp-fpmを使いたいこともありますよね。
そんなときのyumでお手軽に入れてしまうメモ
アジェンダ
タイトルとは裏腹にnginxはすでに入ってる前提です。
nginxも入れるだけなら比較的サクっと入るのでそれは別記事におまかせを。
1. php-fpmとは
いつも通り他サイトの引用です
FPM (FastCGI Process Manager) は PHP の FastCGI 実装のひとつで、
主に高負荷のサイトで有用な追加機能を用意しています。
参考 : FastCGI Process Manager (FPM)
2. php-fpmいれる
yumるだけですね
$ sudo yum -y install php-fpm
3. php-fpm設定
php-fpmの設定を少しだけ変えます。
ほとんどデフォルトのまま動かしてみます。
※ 念のためバックアップとっておく $ sudo cp -ap /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.bk.20150628 ※ nginxでのuser設定をしてないとnobodyで起動されるので ※ それに合わせてphp-fpmもnobodyにしておきます。 ※ nginxでちゃんとuserを設定したらそれに合わせます $ vi /etc/php-fpm.d/www.conf ---- vi編集 ---- group = apache ↓ 変更 ;group = apache group = nobody --------------- ※ php-fpmを起動 $ sudo /etc/init.d/php-fpm start ※ php-fpmの自動起動の設定 $ sudo chkconfig php-fpm on ※ 自動起動の設定を念のため確認 $ sudo chkconfig --list php-fpm php-fpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off
4. 確認用のindex.phpを適当な場所に作成
nginxとphp-fpmが動作しているか確認するためのindex.phpを適当な場所に作ります
※ 適当なディレクトリを作成&移動 $ mkdir ~/tmp $ cd ~/tmp ※ index.php作成 $ vi index.php ---- vi作成 ---- <?php phpinfo(); ?> ---------------
5. nginxの設定を変更
ドキュメントルートの設定やらphp関連の設定だけします。
nginxの設定ファイルの場所は入れたnginxに合わせて読み替えてください。
また、今回はhoge.sample.com
がすでにサービスなんかで使っているとして、
新たにサブドメインとか設定せずにサービスの邪魔せず起動したかったのでポート5050番台で追加しました。
※ 下記をまるっと追記 $ sudo vi /usr/local/nginx/conf/extra/vhost.conf ---- vi追記 ---- server { listen 5050; server_name hoge.sample.com; root /home/hoge/tmp; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } --------------- ※ nginx再起動 $ sudo /etc/init.d/nginx restart
5050番台のポート開放
iptablesの設定が必要なので下記を参考に追加してみてください
→さくらvpsの設定自分メモ - iptables②(パケットフィルタリング)
一応かるく書いておきます
※ 5050番のポートを開放 $ sudo vi /etc/sysconfig/iptables ---- vi追記 ---- -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5000 -j ACCEPT --------------- ※ iptables再起動 $ sudo /etc/init.d/iptables restart
普通に何も考えずやる場合
hoge.sample.comのドメインもまだ使ってなく、 何も気にせずいれてみるだけであれば下記で良いかと思います。
ポートが80になるだけですね。
$ sudo vi /usr/local/nginx/conf/extra/vhost.conf ---- vi追記 ---- server { listen 80; server_name hoge.sample.com; root /home/hoge/tmp; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ---------------
6. 確認してみる
http://hoge.sample.com:5050/index.php
にブラウザでアクセスしてみます。
phpお決まりのこれがでればOKです。
うごかなかったら
動かない場合もよくあります。
そんなときはこんな順番で見てみると良いかと思います。
- まずはiptablesのログでportに対するアクセスがきてるか見る
- nginxのログを出してアクセスがきてるか、エラーがないか見る
- 権限の設定を見直す
まとめ
ということでphp-fpmを入れてかるく動かしてみました。
phpはあまりやらないけどphp製品が使いたいって場合はあるので
そういう場合にはサクっと動いていいですね!