3

我有一个 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 不显示。“新”应该是。所以用户不能编辑/重命名/删除这些文件。

无论如何都可以解决这个问题(我拥有服务器),文件将使用 'USERNAME' OWNERSHIP 提取?

4

2 回答 2

3

ozzwanted,由于某种原因,您的 Web 服务器 (apache) 以 root 身份运行,因此它生成的任何文件都将以 root 身份运行。绝不应该是这种情况。apache 通常运行为“www-data”或“httpd”,或“nobody”或“god”,具体取决于 linux 发行版。

我建议你从系统管理员的角度来研究这个问题,并在你最终被利用之前让别人为你解决这个问题。(假设这是一个实时服务器)

您可以使用 www.php.net/chown 函数,或者您可以在命令行上运行“chown”命令,或者从 PHP 使用 system() 或 exec() 函数之类的函数执行此操作。

祝你好运。

于 2010-07-30T10:54:00.520 回答
0

它以运行网络服务器的用户身份提取(注意:您不应该以 root 身份运行它)。尝试使用chown

于 2010-07-30T10:50:44.193 回答