2016-08-21 70 views
1

我试图在php中使用chmod函数临时更改权限为777,上传文件然后将其更改回755.但它不起作用,因为它不允许我通过php使用chmod函数。在不更改文件夹权限的情况下授予网络服务器权限777

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 chown www-data:www-data,php函数工作正常,但我在使用FileZilla时获取权限被拒绝错误。所以现在我必须将权限更改为root:www-data每次我需要通过FileZilla传输某些内容,然后返回到www-data:www-data以确保我的网络服务器正常工作。任何人都得到了解决这个问题?

回答

1

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

LL /无功/网络/

如果有root权限,它是这样的。

drwxr-xr-x。 2 root root 23 Mar 21 17:33 html

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

乔敦 - R的WWW的数据:www.data在/ var/WWW

你可以把文件夹的权限755 -R选项是使用了递归发放的允许其子文件夹和文件。

+0

感谢您的回答,但我想到了这一点。我得到的问题是,当我有/ var/www chown ** www-data:www-data **时,php函数工作正常,但是在使用FileZilla时我得到权限被拒绝错误。因此,现在我必须将权限更改为** root:www-data **每次我需要通过FileZilla传输某些内容,然后返回到** www-data:www-data **以确保我的Web服务器正常工作。你有解决这个问题吗? –

+0

尝试给予acl许可。 setfacl -m u:www-data:rwx/var/www。并保持实际的所有权根:www-data。 –