当前位置: 首页 > 知识库问答 >
问题:

使用Laravel php对非套接字nginx错误进行套接字操作

璩无尘
2023-03-14

我只是想在我的OSX上运行nginx上的php。

我的php-fpm.conf文件
我的www.conf文件
在我的nginx.conf文件我得到了这个:

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

每次我打我的服务器我得到这个错误:

2017/12/31 01:45:25[crit]1102#0:*2 connect()到unix:/var/run/php fpm。连接到上游时sock失败(38:非套接字上的套接字操作),客户端:::1,服务器:默认,请求:“POST/api/users/login HTTP/1.1”,上游:fastcgi://unix:/var/run/php-fpm。sock:,主机:“本地主机:8000”

我该怎么做才能解决这个问题?

我意识到在我的php-fpm. d/www.conf里面有这一行

listen = 127.0.0.1:9000

所以我更新了我的nginx conf文件:

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000; 
        fastcgi_index index.php;
        include fastcgi_params;
    }

但现在我得到了这个错误:

2017/12/31 02:07:24[错误] 1429#0:*2 FastCGI在stderr中发送:"主脚本未知",同时从上游读取响应头,客户端::: 1,服务器:默认,请求:"POST /api/users/loginHTTP/1.1",上游:"fastcgi://127.0.0.1:9000",主机:"localhost:8000"

根据这个答案,我将其添加到nginx conf中:

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000; 
        fastcgi_index index.php;
        include fastcgi.conf;
    }

fastcgi。conf有以下内容:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

但仍然有相同的错误消息

共有1个答案

裴宜春
2023-03-14

解决办法很简单... nginx正在寻找我的index.php.。我提供了我laravel项目的根,而事实上我应该把公共diretory在laravel这样:

http {
    server {
        listen 8000 default_server;
        listen [::]:8000 default_server;
        server_name default;
        root /path/to/my/laravel/project/public/index.php; 
 类似资料:
  • 套接字接口 结构体 struct   fd_set   文件句柄管理 更多...   类型定义 typedef struct fd_set  fd_set   文件句柄管理   函数 int  socket (int domain, int type, int protocol)   创建套接字   int  bind (int s, const struct sockaddr *name, so

  • 问题内容: 我正在尝试做的事情: 我现在正在尝试构建一个测试应用程序,只需在Android手机(4.2.2)(作为客户端)上的应用程序与在PC上运行的Java应用程序(Windows8)(作为服务器)通过套接字连接。 我已经完成的工作: 我已经在PC上的Java中为客户端和服务器编写了程序,并对其进行了积极的测试(建立了Connection)。 网络: 我的手机和PC都连接到我家里的wifi。PC

  • 问题内容: 我试图理解SocketChannels和NIO。我知道如何使用常规套接字,以及如何制作一个简单的每客户端线程服务器(使用常规阻塞套接字)。 所以我的问题是: 什么是SocketChannel? 当使用SocketChannel而不是Socket时,我还能得到什么呢? 通道和缓冲区之间是什么关系? 什么是选择器? 文档中的第一句话是。那是什么意思? 我也阅读了本文档,但是不知何故…… 问

  • 我试图使用任何NodeJS或NPM命令,但我总是得到以下错误: 套接字:(10106)无法加载或初始化请求的服务提供程序。 我正在运行Windows 10,我尝试再次重新安装nodejs,但仍然没有改变。

  • 我试图编写套接字错误处理(确切地说是错误111-连接拒绝),但什么也没有发生。终端打印错误号111发生,但它没有做任何事情: Traceback(最近的调用为last):文件“test.py”,第20行,在s.connect((IP,PORT))中文件“/usr/lib/python2.7/socket.py”,第224行,在meth返回getattr(self._sock,name)(*args

  • socket_read和socket_recv之间有什么区别?我正在尝试使用PHP套接字,但使用socket_read时收到了以下警告: 请帮帮我!