UbuntuのnginxでPHP7.0を動かしたときのメモ

色々手こずりました(´・ω・`)

参考にしたページ

環境

お友達から借りている VPS のサーバーです。

(使うバージョンがこれで正しいのかはよくわかりません。)

インストール

nginx は既にインストールしていたので php7.0-fpm だけ~。

sudo apt-get install php7.0-fpm

設定

ユーザーを追加

ホームディレクトリとかいらないので適当に・・・。

useradd nginx

これをやっていなくて 20 分くらい動かなくて泣いていました。

(パーミッション設定が面倒くさかったのでなにもしていないです。たぶんダメだと思います。)

php7.0-fpm の設定

設定といってもすこし書き換えただけ

/etc/php/7.0/fpm/pool.d/www.confusergroupをさっきつくったnginxに書き換えました。

※nginx 側で使うのでlistenの設定値をメモっておくと楽です。/run/php/php7.0-fpm.sockとかになっていました。

・・・
~~~
user = nginx
group = nginx
~~~
・・・

nginx の設定

僕は server の設定は別ファイルに書いて include しているので server 部分だけいじって終わり。

server {
	・・・
	~~~
	# ここからPHPの設定
	location ~ [^/]\.php(/|$) {
		# さっきメモしたlistenの値の先頭にunix:をつけたやつ
		fastcgi_pass   unix:/run/php/php7.0-fpm.sock;
		# phpに渡すパラメータ($fastcgi_script_nameの前はルートディレクトリのパス)
		fastcgi_param  SCRIPT_FILENAME  /home/totoraj930/www$fastcgi_script_name;
		fastcgi_index  index.php;
		include        fastcgi_params;
	}
}

php7.0-fpm と nginx をリスタート

sudo service php7.0-fpm restart
sudo service nginx restart

設定がうまくいっていないとここでエラーが出ます。

つまずいたところとか

php に設定した user

よくわからずusergroupnginxって設定したけどよくよく考えるとそんなユーザーはサーバーに存在しませんでした。 ログで思いっきり怒られていました。

502 が帰ってくる

php が動いていないか nginx のサーバー設定のfastcgi_passを間違えているかのどちらか。

サービスが動いているかと nginx の error.log を確認する。

404 が帰ってくる

nginx のサーバー設定のfastcgi_paramを間違えている。

おわりに

php 動かすだけでこんなに苦労するとは思いませんでした。

とりあえず動いたけどきっと危ない使い方をしているのだろうなぁっと思います。

インストールとか設定よりソースコードを書くことに時間をかけたいと思いました!