5

mkdir()サーバーにディレクトリを作成するために使用します。

// $var_name is equal to an md5() hash
$path = "/var/www/publish/" . $var_name;
if(mkdir($path)) {
  echo "success";
} else {
  echo "error";
}

これにより、許可が拒否されたためにエラーが発生します。私のサーバーを調べて、ls -lh

drwxr-xr-x  2 root     root   4.0K Aug 17 09:05   publish

しかし、 my$pathが等しい場合、$path = "/var/www/" . $var_name;期待したフォルダーが作成されます。ここで問題と思われるものは何ですか。

4

3 に答える 3

10

/var/www/publishフォルダの権限が間違っています。ディレクトリを作成するために必要な権限が apache ユーザーにあることを確認する必要があります。

/var/www/パーミッションが異なるため、ディレクトリを作成できます。

httpd プロセスが実行されているユーザーの名前と、chown -R user:group /var/www/publishそのユーザー/グループの名前を確認してください。Debian では、これは www-data/www-data のように見えるため、次のコマンドを実行する必要がありますchown -R www-data:www-data /var/www/publish

于 2012-08-17T10:12:12.247 に答える
2

PHP で mkdir() を使用する場合、apache ユーザー (ubuntu では www-data) で実行されます。chown を使用して /var/www にあるのと同じ権限をパブリッシュに設定できます。

Ubuntu で:

chown www-data.www-data /var/www/publish

よろしく

ミミズ

于 2012-08-17T10:14:06.297 に答える
0

パブリッシュ フォルダーのアクセス許可を修正します (root が所有)。安全でない方法:chmod 777 /var/www/publish

suphp を実行し、publish フォルダーの所有者を php ユーザー (+w 権限) に変更することをお勧めします。

于 2012-08-17T10:29:31.157 に答える