skillup

技術ブログ

PHP サーバー・ネットワーク

nginxの設定&php-fpmインストール

投稿日:2015年6月18日 更新日:

本日、久しぶりにPHPのWebアプリを別サーバーに移行したのですが、nginxの設定でかなり手間取りましたのでちょっと記録しておきます。

nginxの設定

インストール

yumでいきなりいければ一番簡単なのですが、登録していないとそもそも動かないので、リポジトリへの登録が必要になります。

その後、yumでインストールし、バージョン確認すればOKです。

yumで入れていればserviceコマンドでいけますので

service nginx startで起動しておきましょう。

この時点でhttp://ipアドレスでアクセスできるはず・・なのですが、ポートが開いておらずアクセスできないということがおこりました。

ポート開放

nginxが起動しているのに外部からアクセスできない場合ポートが閉じている可能性があります。

その場合、下記の処理でポートを開放しましょう。

/etc/init.d/iptableがないときは下記のコマンドを実行

iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -p tcp –sport 80 -j ACCEPT

この時点でアクセスをして画面が表示されればOKです。

php-fpmの設定

なお、PHPを稼働させる場合はphp-fpmも入れておきましょう。

これは実際にPHPが稼働するのはphp-fpmの中だからです

yumで入ります。

http://qiita.com/bikun_bikun/items/44549e64a5aaddb8ab3d
http://qiita.com/toshihirock/items/77835f83f679423874ea

設定ファイルの修正

nginxの設定ファイル(/etc/nginx/nginx.conf)は下記のようになっています。

一般的にはこのファイル自体はそのままにしておき、下層にそれぞれのホストの設定ファイルを置きます。

となっている部分がありますが、ようするにconf.d以下の設定ファイルを読み込みます。

conf.d直下にあるdefault.confファイルをコピーしましょう。

default.confは拡張子をつぶして使えなくしておいたほうがよいかと思います。

sample.confとして例を以下に示します。

ドメインをhttp://hoge.com

ルートディレクトリを/var/www/html/hogeとします。

sample.conf

途中
FastCGI sent in stderr: “Primary script unknown” while reading response header from upstream

というエラーが出た場合、

のルートディレクトリの設定が違っている可能性が高いです。

デバッグをしながらパラメータにログに出力してみましょう。

nginxのデバッグ

修正したらservice nginx restartで再起動してOKがでればOK

ブラウザでアクセスしてみましょう。

ちなみに下記の情報を参考にしました。

http://heartbeats.jp/hbblog/2012/02/nginx03.html

http://pydiary.bitbucket.org/blog/html/2014/02/01/nginx.html

http://www2.matsue-ct.ac.jp/home/kanayama/text/nginx/node19.html

-PHP, サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

メールヘッダ・インジェクション

Contents1 メールヘッダ・インジェクションとは?2 被害3 対策 メールヘッダ・インジェクションとは? お問い合わせメールなどでメールのヘッダを悪意のある第三者に自由に変更させられてしまう機能 …

no image

cakeでのJOINについて&session

Contents1 cakeでのJOIN2 cakeでのsessionについて cakeでのJOIN cakePHPでは基本、hasManyなどの修飾子を使えば、リレーションをとることができますが、検 …

no image

jenkinsでのSSH鍵認証&herokuからのソース取得

jenkinsでGitからソースを取得するときに鍵認証をかけている場合はそれ用の設定が必要になります。 基本的な考え方ですが、userがjenkinsだったときに、ssh鍵認証やherokuでどのよう …

no image

nginx上でのcakePHP

cakePHP上をCentOS,nginx上で公開するときのメモなどを。 cakeのversionは2.5です。 /var/www/html/sampleapp直下にプログラムを配置するものとします。 …

no image

crontab 確認方法

crontabが動かないときに確認すること。 Contents1 cron自体が動いているか(下記コマンドでログを確認)2 実行権限が正しいか3 プログラム内部のファイルパスが絶対パスになっているか4 …