我有一个PHP脚本:
$extract_dir = "./";
$extract_file = "extractME.zip";
$zip = new ZipArchive;
$res = $zip->open($extract_file);
if ($res === TRUE) {
$zip->extractTo($extract_dir);
$zip->close();
echo "ok";
} else {
echo "failed";
}
但是当我通过http://www.mywebsite.com/extract.php
执行此脚本时FTP上的所有文件都显示为OWNER'root',但不显示用户ex。 'neo'应该如此。因此用户无法编辑/重命名/删除这些文件。
无论如何都可以修复此问题(我拥有服务器),文件将通过'USERNAME'所有权提取?
答案 0 :(得分:3)
ozzwanted,由于某种原因,您的Web服务器(apache)以root身份运行,因此它所创建的任何文件都将以root身份生成。绝不应该这样。 apache通常以'www-data'或'httpd'或'nobody'或'god'的形式运行,具体取决于linux发行版。
我建议你从系统管理员的角度来研究这个问题,然后让某人在你最终被剥削之前为你排序。 (假设这是一个实时服务器)
您可以使用www.php.net/chown函数或者您可以在命令行上运行'chown'命令,或者使用类似system()或exec()函数从PHP执行此命令。
祝你好运。答案 1 :(得分:0)
它作为运行Web服务器的用户提取(注意:您不应该以root身份运行它)。尝试使用chown。