あなたがそれを避けることができれば、またはそのようなことについても読めるように、あなたは世界の書き込み可能になることは決してありません。まだ少し広い場合は、0770
が良い選択肢になります。要点は、問題のフォルダがWebサーバーユーザーによって書き込み可能である必要があることです。例えば、多くのウェブホスト上のApacheは、ユーザーnobody
によって実行されるので、より適切な権限は次のようになります:あなたが権限を自分で設定するための直接アクセスを得ることができない場合
drwxrwx--- 2 nobody nobody 512 Jan 07 12:32 uploads/
は今、問題があります一部のWebホストではchmod
や他のアクセス許可や所有権の変更をPHP内から実行できないため、PHPを除きます。つまり、cPanelを使用している場合は、オンラインファイルマネージャを使用して、適切なディレクトリを参照し、ページの上部にあるchange permissions
を使用して目的を達成することができます。
究極的に必要なものは次のとおりです。特定の場所にディレクトリを作成する必要がある場合は、その場所がWebサーバーによって書き込み可能であることを確認する必要があります。あなたの例では、img/user/$id
を作成する前に、img/user
に適切なアクセス許可を最初に設定する必要があることを意味します。これは、img/user
が0770
のアクセス許可を持っていて、nobody:nobody
(このコンテキストではユーザーまたはグループがどちらでもかまいません)、または両方が必要でないか、またはアクセス許可が0777
である必要があります。それはすでに適切なユーザによって所有され、あなたはすでに、単にあなたのためにそれへの書き込みアクセス権を持っているだろうから...
if(!is_dir('img/user/'.$id))
{
mkdir('img/user/'.$id, 0770, true);
}
:あなたは、特定のユーザーディレクトリを作成するときに、あなたはそうのようにそれを行うことができますWebサーバーは最初にそれを作成しました。
PHP以外の方法で見つけることができない場合は、あなたのウェブホストを手助けする必要があります。
FTPを使用してアクセス許可を設定できる場合があります。 – PeeHaa