php上载文件时,组和所有者权限错误

php上载文件时,组和所有者权限错误,php,linux,permissions,Php,Linux,Permissions,不确定这是php配置还是linux文件权限问题。我遇到的问题是,当使用move_uploaded_file()通过php将文件上载到目录中时,组设置为ubuntu,所有者设置为www数据,上载的文件所有者和组权限更改为www数据,这会导致我的python脚本出现问题,并对上载的文件执行其任务 例如: move_uploaded_file($tempFile,$targetSAVE); --$targetSAVE目录设置为: group: ubuntu owner: www-data permi

不确定这是php配置还是linux文件权限问题。我遇到的问题是,当使用move_uploaded_file()通过php将文件上载到目录中时,组设置为ubuntu,所有者设置为www数据,上载的文件所有者和组权限更改为www数据,这会导致我的python脚本出现问题,并对上载的文件执行其任务

例如:

move_uploaded_file($tempFile,$targetSAVE);
--$targetSAVE目录设置为:

group: ubuntu
owner: www-data
permissions: 0755
group: ubuntu
owner: www-data
permissions: 0755 
--php上传的文件将所有者和组更改为www数据


我想我应该在PHP脚本的末尾添加一个chirp指令,如果这在您的情况下有效的话

在/etc/passwd中查找以获取“ubuntu”用户的数字ID


文档中的注释:“只有超级用户可以任意更改文件组;其他用户可以将文件组更改为该用户所属的任何组。”

这是因为PHP作为运行web服务器的用户运行。实际上,您系统上的所有网站都将作为此用户/组运行,因此所有网站都有权读取由php脚本创建的彼此的文件和目录

安装apachemod可能是解决这个问题最简单的方法。这将允许您作为特定用户和组在虚拟主机中运行php脚本。您也可以将PHP作为CGI运行并使用,但设置SUPPP要复杂一些


或者,您应该能够将脚本中的文件传送到相应的用户/组,但这样做的结果是,一旦您更改了这些文件的所有权,web服务器将无法读取/编辑这些文件。

找到了解决方案。在把我的头发拔出来并尝试了所有其他的反应之后,结果很简单,这就是有效的方法

chown -R ubuntu:www-data /var/www/
chmod -R 775 /var/www/
之后,python脚本从php中完美地执行

chown -R ubuntu:www-data /var/www/
chmod -R 775 /var/www/