在不将文件夹权限更改为777的情况下授予Web服务器权限

时间:2016-08-21 18:15:36

标签: php file-upload file-permissions

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

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-data:www-data权限,以确保webserver具有所有必需的权限。 但是,我得到的问题是,当我/ var / www已经显示 www-data:www-data 时,php函数工作正常但我在使用时收到权限被拒绝错误FileZilla中。所以我现在每次需要通过FileZilla传输内容然后再返回 www-data:www-data 来更改 root:www-data 的权限以确保我的网络服务器工作正常。有人得到了解决方案吗?

1 个答案:

答案 0 :(得分:1)

你可以给予755许可。但您必须更改/ var / www /文件夹的所有者和组。它应该具有www-data的所有权和组所有权。首先检查哪个用户拥有此文件夹的所有权和组所有权。运行以下命令。

  

ll / var / www /

如果它具有root访问权限,那么它将如下所示。

  

drwxr-XR-X。 2 root root 23 Mar 21 17:33 html

使用以下命令将所有者和群组所有者更改为www-data用户。

  

chown -R www-data:www.data / var / www

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