上传目录的权限是755为什么无法上传?
记录一下遇到的上传问题和解决方法以及原因,大家看说的对不对。
我要上传的文件位置是 public/upload/时间日期/随机字符串.图片类型。
正常情况下upload目录的权限是755就可以完成上传,但是有的项目能够正常上传,有的项目却报权限问题:比如不能创建目录,之前每次遇到这种问题我直接就改upload目录权限为 777,之后就可以上传,但是一直不知道什么原因。
产生的原因?
然后对比了一下两个项目,发现正常上传不用修改权限的项目(前者),文件所属者及所属组是www;而不能上传必须改权限的项目(后者),文件所属者和所属组是root。我猜想是不是前者是通过ftp上传,后者通过sftp(root账户),导致前者的项目文件所属者都是www,而后者的项目文件所属者都是root?
解决的方法(针对于后者不能上传文件)
第一种方法就是改upload目录权限为777;
chmod -R 777 upload
第二种就是改upload目录所属者及所属组为www(推荐)
chown -R www:www upload
不知道上面说的对不对?
宝塔吧?
linux系统文件上传涉及权限问题,需要关注 PHP 和服务器软件运行的用户的权限 一般情况下各软件安装时都会默认新建一个用户
如果我没记错的话 nginx默认用户是nginx apache默认用户是www
但都不可能是 root 用户
所以软件在操作上传文件目录中的文件时,会出现权限问题
前者修改为777权限会导致不安全 后者修改权限符合权限最小化的原则
具体细节可以去百度linux权限和查看服务器软件配置文件中设置的运行用户