php上传文件出现500错误

问题:

能上传小于10k的文件,上传大于10k的文件就会报500错误

解决办法:

首先查看错误日志,看看报错是什么

其次查看client_body_temp的权限问题

linux下面输入命令nginx -V 看看自己的client_body_temp在哪个目录下

注意nginx运行的用户,目录权限包括父目录权限都要给足;不然就会500错误

关于client_body_temp目录的作用,简单说就是如果客户端POST一个比较大的文件,长度超过了nginx缓冲区的大小,需要把这个文件的部分或者全部内容暂存到client_body_temp目录下的临时文件。

检查步骤

  1. client_body_temp 是否设置为不可访问,使得没有权限写临时文件,导致报错500 这是查目录权限
  2. client_body_buffer_size 是否使用默认设置,8k或者16k ,文件大小超过此值, 导致报错500 这是检查nginx.conf配置
  3. client_header_buffer_size是否设置得比较大 这是检查nginx.conf配置