Php 授予Web服务器权限而不将文件夹权限更改为777

Php 授予Web服务器权限而不将文件夹权限更改为777,php,file-upload,file-permissions,Php,File Upload,File Permissions,我尝试在php中使用chmod函数将权限临时更改为777,上载文件,然后将其更改回755。但它不起作用,因为它不允许我通过php使用chmod函数 if(chmod($path, 0777) ) { if(!move_uploaded_file($oldfile, $newfileloc)) { return false; } chmod($path, 0755); return true; } else return false; 我让它在我以前的服

我尝试在php中使用chmod函数将权限临时更改为777,上载文件,然后将其更改回755。但它不起作用,因为它不允许我通过php使用chmod函数

if(chmod($path, 0777) ) {
   if(!move_uploaded_file($oldfile, $newfileloc)) {
      return false;
   }
   chmod($path, 0755);
   return true;
}
else
   return false;
我让它在我以前的服务器上工作,对该文件夹授予了755个权限

我不知道权限是如何工作的,所以请帮助我,谢谢

编辑: 我的/var/www文件夹应该具有哪些权限,以便web服务器可以写入文件

编辑2: 好吧,我已经弄明白了。我只需要授予www数据的权限:www数据以确保webserver具有所有必需的权限。
但是,我遇到的问题是,当我有/var/www has chownwww-data:www-data时,php函数工作正常,但在使用FileZilla时,权限被拒绝错误。因此,现在每当我需要通过FileZilla传输内容时,我必须将权限更改为root:www-data,然后再返回www-data:www-data,以确保我的Web服务器工作正常。有人对此进行了修复吗?

您可以授予755权限。但您必须更改/var/www/folder的所有者和组。它应该具有www数据的所有权和组所有权。首先检查哪个用户拥有此文件夹的所有权和组所有权。运行下面的命令

ll/var/www/

如果它有根访问权限,那么它将如下所示

drwxr-xr-x。2根根目录23 Mar 21 17:33 html

使用以下命令将所有者和组所有者更改为www数据用户

www.data/var/www


您可以保留文件夹权限755-R选项用于递归地向其子文件夹和文件授予权限

谢谢你的回答,但我已经弄明白了。我遇到的问题是,当我有/var/www有chown www data:www data时,php函数工作正常,但在使用FileZilla时,权限被拒绝错误。所以现在,每当我需要通过FileZilla传输内容时,我必须将权限更改为root:www-data,然后再返回到www-data:www-data,以确保我的Web服务器工作正常。您对此有什么解决方案吗?请尝试授予acl权限。setfacl-mu:www-data:rwx/var/www。并保留实际所有权根:www-data。