On my vagrant box , centtos 7, i had installed php7.0.3 and nginx 1.9.12. the php config www.conf. this file in the /usr/local/php/etc/php-fpm.d/ directory, Its configuration like this
user = www group = www ;listen = /tmp/php-fpm.sock listen = 127.0.0.1:9000 listen.owner = www listen.group = www and the nginx config. the file vm.demo.com.conf in the /usr/local/nginx/conf/vhost/ directory. Its configuration like this
server { listen 80; server_name vm.demo.com; index index.html index.htm index.php; root /data/wwwroot/demo; location / { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } } location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } access_log logs/demo.log main; } in the nginx conf, if i use fastcgi_pass 127.0.0.1:9000 and the php-fpm.conf listen 127.0.0.1:9000, They are working properly bug if i use the socket configuration:
php www.conf
user = www group = www listen = /tmp/php-fpm.sock listen.owner = www listen.group = www nginx vm.demo.com.conf
location ~ .*\.(php|php5)?$ { fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_index index.php; include fastcgi.conf; } the nginx show 502 Bad gateway. in the nginx error.log show this.
2016/03/14 21:17:04 [crit] 4208#0: *5 connect() to unix:/tmp/php-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.168.1.101, server: vm.demo.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-fpm.sock:", host: "vm.demo.com" 2016/03/14 21:17:04 [crit] 4208#0: *5 connect() to unix:/tmp/php-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.168.1.101, server: vm.demo.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-fpm.sock:", host: "vm.demo.com" 2016/03/14 21:18:01 [crit] 4208#0: *5 connect() to unix:/tmp/php-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.168.1.101, server: vm.demo.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-fpm.sock:", host: "vm.demo.com" when i check the /tmp/php-fpm.sock file, it's existing
[root@vbox1 vhost]# ll /tmp/php-fpm.sock srw-rw---- 1 www www 0 Mar 14 21:06 /tmp/php-fpm.sock this are php and nginx running status:
[root@vbox1 vhost]# systemctl status php-fpm.service ● php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/etc/systemd/system/php-fpm.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2016-03-14 21:06:27 CST; 42min ago Process: 4189 ExecStop=/bin/kill -SIGINT $MAINPID (code=exited, status=0/SUCCESS) Main PID: 4198 (php-fpm) CGroup: /system.slice/php-fpm.service ├─4198 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) ├─4199 php-fpm: pool www └─4200 php-fpm: pool www Mar 14 21:06:27 vbox1 systemd[1]: Started The PHP FastCGI Process Manager. Mar 14 21:06:27 vbox1 systemd[1]: Starting The PHP FastCGI Process Manager... [root@vbox1 vhost]# systemctl status nginx.service ● nginx.service - nginx Loaded: loaded (/etc/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2016-03-14 21:06:35 CST; 42min ago Process: 4180 ExecStop=/usr/local/nginx/sbin/nginx -s quit (code=exited, status=0/SUCCESS) Process: 4206 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS) Main PID: 4207 (nginx) CGroup: /system.slice/nginx.service ├─4207 nginx: master process /usr/local/nginx/sbin/nginx ├─4208 nginx: worker process └─4209 nginx: worker process Mar 14 21:06:35 vbox1 systemd[1]: Starting nginx... Mar 14 21:06:35 vbox1 systemd[1]: Started nginx. Can someone help me? If anyone encountered the same problem
3 Answers
Answers 1
I have met the same problem. And I just change the socket path to another directory but '/tmp', Then everything goes OK.
Answers 2
I have found a config (php5) that continues to use the unix socket and does not involve editing any other config files (except the nginx default site file).
location ~ \.php$ { fastcgi_pass unix:/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; # \Add following to use sqlite as db. fastcgi_param DB_CONNECTION sqlite; }
Note:- the unix socket is not at /run/php/ (though it is for php7). The include fastcgi_params; is required to prevent the php file downloading instead of being interpreted.
For completeness the following is my entire default file.
index index.php index.html index.htm; server { listen 80; server_name sponk.co.uk; rewrite_log on; root /vagrant/public_html; try_files $uri $uri/ /index.php$is_args$args; location ~ \.php$ { fastcgi_pass unix:/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } location ~ /\.ht { deny all; } } Answers 3
You could try changing user in /usr/local/php/etc/php-fpm.d/www.conf to nginx and restart service.
user = nginx group = nginx listen = /tmp/php-fpm.sock
0 comments:
Post a Comment