1

mkdirPHP でパーミッションの問題が発生しています。いくつかのファイルを単純に移動しようとしています (そしてそれらを入れるフォルダーを作成します) が、次のエラーが発生しています:

mkdir() [function.mkdir]: Permission denied in

以前のサイトでは、フォルダーを 755 に設定していましたが、問題なく動作しているように見えました。このサーバーで機能する、または関連する機能を取得できるのは、フォルダーのモードが 777 の場合だけのようです。mkdir

Web ブラウザは「その他」と見なされますか? フォルダを 777 のままにしておくのは良い考えだとは思いませんよね?

4

4 に答える 4

1

これは、Web サーバーを実行している OS によっては、適用できる場合と適用できない場合があります。実行しようとしていることに干渉している他のセキュリティ メカニズムがある場合があります。1 つの明白な例 (これにはしばらく戸惑いました) は、SELinux セキュリティ システムです。/tmp に書き込めるか確認してみてください。他の問題を探すことができない場合。原則として、777 パーミッションをブラストすると、セキュリティ ホールが発生する可能性があります。

于 2010-01-21T23:34:02.870 に答える
1

サーバー上に Web ブラウザーから書き込むことができるフォルダーを作成する必要がある場合は、少なくとも 775 を使用する必要がある場合があります。これは、ファイルの作成には必ずしも当てはまらないことに注意してください。実際、ファイルを 777 にする必要はまったくないでしょう。

サーバー(別名www-data)がディレクトリを作成するのを避けたい場合は、phpコード内でbashコマンドを使用することもできますが、www-dataが書き込みできるようにフォルダーに正しい権限を設定する必要がありますディレクトリへのファイル。

所有権を確認してください。上記は、www-data が所有するユーザーとグループが所有するフォルダーに基づいています。フォルダーの所有権を www-data に設定することもできますが、その特定のユーザーのアクセス許可は依然として rwx です。

それが複雑ではないことを願っています。

サーバーでApacheを実行している人を見つけるのに役立つコマンド:

#top

次のようなものを探します。

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                          
20610 www-data  20   0 36772  10m 4380 S    4  0.1   0:04.03 apache2 

また

#ps aux | grep "apache"

のようなものを探します

www-data 26898  0.0  0.0  34248  4076 ?        S    17:59   0:00 /usr/sbin/apache2 -k start
于 2010-01-21T23:46:40.947 に答える
1

Web ブラウザーは「その他」と見なされるオブジェクトではなく、Web サーバーを実行するユーザー (たとえばhttpd、 やapache.

一般的な方法は、ファイルを chown して、ユーザーおよび/またはグループを Web サーバー ユーザーに設定し、755 などのパーミッションを許可することです。

例:

chown apache:apache ./example/

于 2010-01-21T23:28:23.113 に答える
0

問題はフォルダの所有権にあるのではないですか?

おそらく chown はこの問題を解決するための正しいコマンドです

于 2010-01-21T23:27:40.357 に答える