問題は...誰が、または何が書き込み可能かということです。おそらく、「uploads」ディレクトリ全体をPHP(別名Webサーバー)で書き込み可能にする必要があります。多くの場合、apacheおよびその他のサーバーはデフォルトでユーザーグループwww-data
になりますが、異なる場合があります。Apacheまたはlighttpd(またはその他)の構成ファイルをチェックして、それがどのユーザーおよびユーザーグループとして実行されているかを確認します。多くの場合、これらはまたは/etc/apache
などにあり/etc/lighttpd
ます。次に、uploadsディレクトリをそのグループに再帰的に書き込み可能にします。
777権限を使用することは非常に悪い考えです。常に最小限の人に特定のディレクトリへのアクセスを許可する必要があります。それで、ここにファイルパーミッションについての短い談話があります...
drwxrwxrwx 20 connermcd staff 680 Jul 25 20:38 img
-rw-r--r-- 1 admin www-data 18530 Jul 26 21:46 example
権限文字列の最初の文字はタイプを示します。この場合、img
はディレクトリでありexample
、はファイルです。これは、l
(とりわけ)シンボリックリンクの場合もあります。文字列()の残りの文字は、rwxrwxrwx
権限を定義します。ご覧のとおり、これは「読み取り、書き込み、実行」の繰り返しのトリプレットです。最初のトライアドは、ファイルまたはディレクトリの所有者の権限を表します。所有者は3番目の列に表示されます(たとえば、imgおよびadminの場合はconnermcd)。2番目のトライアドは、ファイルまたはディレクトリのグループ(たとえば、imgおよびwww-dataのスタッフ)のアクセス許可を示します。最後のトライアドは、すべての人のアクセス許可を示します(サーバーへの一時的なアクセスを許可した人やハッカー、ヒントのヒント)。
「読み取り、書き込み、実行」の各トライアドは、数字で表すことができます。と考えるのは簡単rwxrwxrwx
です421421421
。それがあなたを助けるならば、それは2の倍数が7まで加算できる唯一の方法です。つまり、4は読み取りを表し、2は書き込みを表し、1は実行を表します。これらを足し合わせると、3つの数字でトライアドを表すことができます。つまり、実際に行っているのは、すべての人chmod 777 img
に「読み取り、書き込み、および実行」の許可を与えることです。また、そのディレクトリの下にあるディレクトリではなく、そのディレクトリにこれらのアクセス許可を設定するだけです。これを再帰的に行うには、フラグ-を使用できます。-R
chmod -R
あなたの場合、アップロードフォルダとそのすべてのサブディレクトリをサーバーが実行されているユーザーグループで利用できるようにするだけです。ほとんどの場合それwww-data
はですので、例としてそれを使用します。プロジェクトファイルをユーザーが所有するものとして設定して、移動や編集などを容易にすることができます。したがって、ファイルの所有者(設定に使用)であり、グループchown
に属している(設定に使用)と仮定します。 )。その場合、所有者に完全なアクセス許可とグループの読み取りおよび書き込みアクセス許可を付与し、再帰的に実行します。したがって、uploadsフォルダーの親ディレクトリに移動して実行します。www-data
chgrp
chmod -R 760 uploads