1

問題が発生しています。PHPホストでファイルまたはディレクトリを(rename()またはを介してmkdir())作成すると、ファイルはFTP OWNER / GROUP(他のホストのように)ではなく、OWNER 48、GROUP48で作成されます。

問題は、mkdir()たとえばPHPを介して実行した場合、PHPであっても、このdirを管理できないことです(一部のファイルを配置したり、dirの名前を変更したり、削除したりするなど)。FTP経由でこのディレクトリを作成すれば、すべてを行うことができます。本当に奇妙です。

今私は知る必要があります:私は間違っているか、私のPHPホストはバグがありますか?彼らはそれがコードの問題だと私に言った。

私のコード:

mkdir($image_dir, 0777, true);

FTP上に次のようなものが作成されます。

NAME   TYPE  DATE   PERMS      OWNER/GROUP
./1967 [DIR] [DATE] fle (0755) 48/48

chmodmkdir()を0777に設定しても、0755のように作成されます。

だから、私は何かをすることができますか、それとも私のホストの必要性はありますか?

ありがとう!

4

1 に答える 1

3

最初はこれは奇妙なことではありません。webserver/phpがftpクライアントとは異なるユーザーとして実行されているのは良いことです。

これは醜いですが、役立つかもしれません:phpではumask(0000);ファイル操作の前に使用してください。0777phpで作成すると、すべてのファイルとディレクトリを作成しようとします。

umask 0007を使用できるように、webserver/phpとftpクライアントが少なくとも同じグループにあるかどうかを確認する必要があります。

ところで。PHPはセーフモードで実行されますか?他のユーザーがファイルを書き込み可能にするのを妨げる可能性があります...とにかく、php 5.3以降は非推奨であり、5.4以降は削除されているため、必ず無効にする必要があります。

于 2012-10-22T22:23:12.820 に答える