昨天在开发的时候遇到一个问题,form entype=“multipart/form-data” 表单提交时显示500错误。php
开始我觉得是php代码问题,我检查了一遍代码,没有问题。 以后设置断点,依旧报错500,这就说明断点代码就没有执行,表单提交动做根本没有触发后端的php代码。 因而,我将注意力放在了php配置上,反复修改配置调试,并且重装了php依然无效。 最后在查看php错误日志的时候,顺便也看了下nginx的错误日志,这才发现问题所在nginx
2016/12/19 10:49:22 [crit] 31870#0: *197 open() "/var/lib/nginx/tmp/client_body/0000000008" failed (13: Permission denied), client: XXX, server:XXX, request: "POST /admin/XXX.php?act=post HTTP/1.1", host: "XXX", referrer: "http://host/admin/XXXphp?act=post"
从这行报错能够看出,nginx在接收提交数据时,请求失败,由于权限不够被拒绝。 再来到/var/lib/文件下在,看到该文件夹下的 nginx 的权限为apache
drwx------ 3 www apache 4096 Apr 4 00:30 nginx
因此将该文件夹的权限修改成755,问题就解决了。后端
反思:在解决问题的过程当中,没有及时查看错误日志,查找具体缘由,一味凭猜想在调试修改,结果花费了不少时间。post