使用yum安装的php-fpm, 用的时候总是抛错:
connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost
看上去是nginx连不到php-fpm,找来找去,发现是php-fpm配置的问题:
打开php-fpm配置文件: /etc/php-fpm.d/www.conf,
找到 listen = /run/php-fpm/www.sock,
因为nginx里配的是:
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
nginx里配的是: fastcgi_pass 127.0.0.1:9000; //tcp socket模式
所以php-fpm里相应的 listen = /run/php-fpm/www.sock
也要改成: listen = 127.0.0.1:9000 或者直接 listen = 9000,
关于fastcgi_pass, 参考:http://wiki.nginx.org/HttpFastcgiModule#fastcgi_pass
关于tcp socket 与 unix socket 区别, 参考:http://serverfault.com/questions/124517/whats-the-difference-between-unix-socket-and-tcp-ip-socket