nginx没有生成任何php-fpm.sock任何人有任何想法为什么?

时间:2015-01-26 15:35:55

标签: sockets nginx php

我最近使用(LEMP)方法构建了一个新的Web服务器,它运行良好,我还将varnish和phpMyAdmin安装到lemp安装中。

我将unix:/var/run/php-fpm/php-fpm.sock添加到位置/ {

然后我告诉www.conf听/var/run/php-fpm/php-fpm.sock

但是nginx没有为/ var / run / php-fpm文件夹生成任何套接字。

所有服务都正常运行,我可以访问my-ip的默认网页但是尝试访问其他任何内容,即my-ip / anythingelse给了我502坏网关,因为它找不到套接字。

有谁知道原因和解决办法是什么?

这是我的nginx.conf:

user  nginx;
    worker_processes  4;

    error_log  /var/log/nginx/error.log;

    pid        /run/nginx.pid;

    events {
        worker_connections  1024;
    }


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile        on;

keepalive_timeout  60;

include /etc/nginx/conf.d/*.conf;

index   index.html index.htm;

server {
    listen  127.0.0.1:8080;
    root         /usr/share/nginx/html;
    location / {
    }

    error_page  404              /404.html;
    location = /40x.html {
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    }

location ~ \.php$ {
  root   /usr/share/nginx/html;
  fastcgi_split_path_info  ^(.+\.php)(.*)$;
  fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
  fastcgi_index  index.php;
  fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
  include fastcgi_params;
}
}


server {
listen       443;

ssl                  on;
ssl_certificate      /etc/nginx/ssl/server.crt;
ssl_certificate_key  /etc/nginx/ssl/server.key;

ssl_session_timeout  5m;

ssl_protocols  SSLv2 SSLv3 TLSv1;
ssl_ciphers  HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers   on;

location / {
root   html;
index  index.html index.htm;
}
location ~* ^/phpMyAdmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/;
}

location ~ \.php$ {
  root   /usr/share/nginx/html;
  fastcgi_split_path_info  ^(.+\.php)(.*)$;
  fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
  fastcgi_index  index.php;
  fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
  include fastcgi_params;
}
}
}

Proto Recv-Q Send-Q本地地址外部地址状态PID /程序名称
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2519 / master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 4010 / nginx:master
tcp 0 0 127.0.0.1:6082 0.0.0.0:* LISTEN 4046 / varnishd
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3988 / php-fpm:maste tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2711 / mysqld
tcp 0 0 0.0.0.0:38350 0.0.0.0:* LISTEN 1559 / rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1362 / rpcbind
tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 4050 / varnishd
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 4010 / nginx:master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1361 / sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3500 / cupsd
tcp6 0 0 :: 1:25 ::: * LISTEN 2519 / master
tcp6 0 0 ::: 33209 ::: * LISTEN 1559 / rpc.statd
tcp6 0 0 ::: 111 ::: * LISTEN 1362 / rpcbind
tcp6 0 0 ::: 22 ::: * LISTEN 1361 / sshd
tcp6 0 0 :: 1:631 ::: * LISTEN 3500 / cupsd
udp 0 0 0.0.0.0:59473 0.0.0.0:* 1559 / rpc.statd
udp 0 0 0.0.0.0:111 0.0.0.0:* 1362 / rpcbind
udp 0 0 0.0.0.0:123 0.0.0.0:* 726 / chronyd
udp 0 0 127.0.0.1:323 0.0.0.0:* 726 / chronyd
udp 0 0 0.0.0.0:679 0.0.0.0:* 1362 / rpcbind
udp 0 0 127.0.0.1:888 0.0.0.0:* 1559 / rpc.statd
udp 0 0 0.0.0.0:42032 0.0.0.0:* 685 / avahi-daemon:r udp 0 0 0.0.0.0:5353 0.0.0.0:* 685 / avahi-daemon:r udp6 0 0 ::: 111 ::: * 1362 / rpcbind
udp6 0 0 ::: 123 ::: * 726 / chronyd
udp6 0 0 :: 1:323 ::: * 726 / chronyd
udp6 0 0 ::: 679 ::: * 1362 / rpcbind
udp6 0 0 ::: 60779 ::: * 1559 / rpc.statd
[root @ localhost~]#

2 个答案:

答案 0 :(得分:0)

Nginx使用套接字,而php-fpm侦听端口9000.您可以在nginx中使用fastcgi_pass 127.0.0.1:9000;。你也可以配置php-fpm来监听套接字而不是this post

答案 1 :(得分:0)

我已经解决了这个问题并找出了为什么它没有创建套接字......

我以为我会对我正在编辑的文件采取额外的预防措施,并在文件夹中创建备份......好吧因为这包括.conf的两次,这就是它仍然使用127.0.0.1的原因:9000,尽管我告诉它使用/var/run/php-fmp/php-fpm.sock ...经验教训 - (将备份放在一个单独的根文件夹中。

现在有另一个小问题了。 * 2 FastCGI发送到stderr"主要脚本未知"从上游读取响应头?

感谢您推进正确的方向......如果您没有提到做netstat,我可能不会考虑备份文件。