webman上传文件返回500错误 [已解决]

oscar

问题描述

今天做到文件上传这个功能,发现不管怎么发送都是返回以下错误。
500 Internal Server Error
nginx/1.25.4

使用了最简单的表单提交也是一样,直接在浏览器里访问上传地址可以返回正确的提示信息的。
之前的项目都是同样用法都没问题的。
没搞懂什么问题造成的。

路由改为Route::any()也依然不好使。

程序代码

<form method="post" action="/upload/test?ts=3232" enctype="multipart/form-data">
<input name="file" multiple="multiple" type="file">
<input type="submit">
</form>

nginx的虚拟配置如下:
upstream abc {
    server 127.0.0.1:8988;
    keepalive 10240;
}

server {
  server_name abctest.com;
  listen 80;
  access_log off;
  root /Users/Mac/Documents/abc/webman/public;

  location ^~ / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_http_version 1.1;
      proxy_set_header Connection "";
      if (!-f $request_filename){
          proxy_pass http://abc;
      }
  }
}

报错信息

500 Internal Server Error
nginx/1.25.4

截图报错信息里报错文件相关代码

操作系统及workerman/webman等框架组件具体版本

使用nginx做的代理
webman版本 1.5.24

-----------------------------------------------------解决办法-----------------------------------------------
原因是nginx下的 client_body_temp 目录没有权限。
执行命令:

sudo chmod -R 777 client_body_temp 
128 2 0
2个回答

shiroi

把你nginx配置发一发

  • oscar 2天前

    已经添加了nginx的配置信息。
    会不会是chrome的跨域问题?等下我下一个firefox来试试。

  • shiroi 1天前

    1.看一下你的转发的端口是否正确
    2.配置一个路由,验证是否正常请求
    3.查看一下nginx和php的日志
    这应该能解决你的问题

muyu

看一下响应信息,再看一下php和nginx的配置信息,比如最大上传限制

  • 暂无评论
×
🔝