CentOS7 + Nginx + PHP7

環境

  • CentOS7
  • Nginx1.x
  • PHP7.x

php-fpm

  • nginx で php を使う時は php-fpm が必要

インストール

# remi php7.3
$ sudo yum -y install --enablerepo=remi,remi-php73 php-fpm

php-fpm の設定

$ sudo vi /etc/php-fpm.d/www.conf

; RPM: apache Choosed to be able to access some dir as httpd
user = apache
↓
; 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 = apache
↓
; RPM: Keep a group allowed to write in log dir.
group = nginx


listen = 127.0.0.1:9000
↓
listen = /var/run/php-fpm/php-fpm.sock


;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
↓
listen.owner = nginx
listen.group = nginx
listen.mode = 0660


$ sudo systemctl start php-fpm.service
$ sudo systemctl enable php-fpm.service
$ sudo systemctl status php-fpm.service

nginx の設定

$ sudo vi /etc/nginx/conf.d/default.conf

default.conf

server {
	# ポート80番
	listen       80;

	# sample.com にアクセスさせたい時は server_name sample.com; になる
	# /etc/hosts に localhost は 127.0.0.1 (自分自身のサーバーを示すIP) に向くという初期設定がしてある
	# 仮にサーバーのIPアドレスが 192.168.56.101 の場合、localhost だと http://192.168.56.101 にアクセスする設定になる
	server_name  localhost;

	# アクセスログの設定。なくてもいい
	access_log  /var/log/nginx/logs/localhost.access.log  main;

	# ファイル名を省略したURLの場合にどのファイルを優先させるかの設定
	index index.php index.html index.htm;

	# ファイルの置き場所
	root /var/www/html/default;

	# php ファイルが読み込まれた時の設定
	location ~ \.php$ {
		fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
		fastcgi_index /index.php;

		include /etc/nginx/fastcgi_params;

		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		fastcgi_param PATH_INFO       $fastcgi_path_info;
		fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	}
	location ~ /\.ht {
		deny all;
	}
}
$ sudo nginx -t
$ sudo systemctl start nginx.service
$ sudo systemctl enable nginx.service
#$ sudo nginx -s reload

権限変更

  • session を使う時
$ cd /var/lib/php
$ chown -R root:nginx session

関連投稿