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 では表示されません。本来あるべき「neo」。したがって、ユーザーはこれらのファイルを編集/名前変更/削除できません。

とにかくこれを修正することは可能ですか (私はサーバーを所有しています)、そのファイルは 'USERNAME' OWNERSHIP で抽出されますか?

4

2 に答える 2

3

ozzwanted、何らかの理由でWebサーバー(apache)がrootとして実行されているため、作成するファイルはすべてrootとして作成されます。これは決して当てはまらないはずです。apacheは通常、Linuxディストリビューションに応じて、「www-data」または「httpd」、または「nobody」または「god」として実行されます。

sysadminの観点からこれを調べて、悪用される前に誰かに整理してもらうことをお勧めします。(これがライブサーバーであると想定)

www.php.net/chown関数を使用するか、コマンドラインで「chown」コマンドを実行するか、system()またはexec()関数などを使用してPHPから実行できます。

幸運を。

于 2010-07-30T10:54:00.520 に答える
0

Web サーバーを実行しているユーザーとして抽出します (注: root として実行しないでください)。chownを使用してみてください。

于 2010-07-30T10:50:44.193 に答える