Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ZipArchive php类将文件提取为根。为什么?_Php_Unzip_Ziparchive - Fatal编程技术网

ZipArchive php类将文件提取为根。为什么?

ZipArchive php类将文件提取为根。为什么?,php,unzip,ziparchive,Php,Unzip,Ziparchive,我有一个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";

我有一个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";
}
但是当我执行这个脚本时,通过

FTP上的所有文件都以所有者“root”显示,但不以用户“ex”显示应该是“尼奥”。因此,用户无法编辑/重命名/删除这些文件


是否有可能修复此问题(我拥有服务器),文件将以“用户名”所有权进行提取?

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

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

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

您可以使用www.php.net/chown函数,也可以在命令行上运行'chown'命令,或者使用类似system()或exec()函数的php来执行


祝你好运。

chown不起作用,因为chown只对根服务器用户可用。我不想让任何用户(甚至是主用户)通过root登录。chown不适用于用户级别。因此,这可能是服务器配置问题。我经常运行一个“chown-R usrNAME:usrNAME/home/usrNAME/public_html/*”,但这是错误的solution@ozzwanted我不是这个意思。我建议在提取完文件后对其进行chown处理——这就是我链接php的chown命令的原因。这是可能的,因为您的Web服务器是以root用户身份运行的。