我只是想在我的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 [暴击] 1102#0:* 2连接()到unix:/var/run/php-fpm.sock失败(38:非套接字上的套接字操作),同时连接到上游,client::: 1,server:default,request:“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在stderr中发送FastCGI:“主脚本未知”,同时从上游读取响应头,客户端::: 1,服务器:默认,请求:“POST / api / users / login HTTP / 1.1“,上游:”fastcgi://127.0.0.1:9000“,主机:”localhost:8000“
来自this answer我将此添加到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;
但仍然是相同的错误消息
解决方案很简单.. nginx正在寻找我的index.php ..我提供了我的laravel项目的根目录,实际上我应该将公共指令放在laravel中,如下所示:
http {
server {
listen 8000 default_server;
listen [::]:8000 default_server;
server_name default;
root /path/to/my/laravel/project/public/index.php;