ZipArchive php类将文件提取为根。为什么?
我有一个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";
$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用户身份运行的。