0

以下のPHPコードを使用して、動的xmlファイルを作成しています。

...
$file_name = "";
$rss_feed_dir = $_SERVER['DOCUMENT_ROOT'] . '/xml/';

chmod($rss_feed_dir, 0777);

$file = $rss_feed_dir . $file_name . '.xml';

$file_handle = fopen($file, "w");
fwrite($file_handle, $xml);
fclose($file_handle);

ディレクトリパーミッションが0777に設定されている場合、ファイルは作成され、0755で失敗するようです。多くのサイトで、ワールド実行パーミッションがセキュリティリスクをもたらす可能性があることを読みました。

このスクリプトの最後にchmodを0755に戻す必要がありますか?

ディレクトリのアクセス許可を設定するためのより良い方法はありますか?

4

1 に答える 1

1

rss_feed_dirが指しているディレクトリが、スクリプトの実行に使用されているユーザー以外の別のユーザーが所有しているディレクトリであることが原因だと思います。

したがって、指定されたグループまたはユーザーでスクリプトが実行されていない場合、755のアクセス許可により、ディレクトリへの書き込みアクセスが除外されます。これは、パーミッションが755の場合はファイルの書き込みコマンドを正常に実行できないが、777の場合は正常に実行できない理由を説明しています。

このphpファイルがサーバー上にあり、Webから呼び出されている場合は、ディレクトリの所有権自体を変更してみてください。

chown -R YOUR_USER:www-data YOUR_RSS_DIRECTORY_HERE

そして、775にchmodします

お役に立てば幸いです。

于 2012-10-02T00:37:31.477 に答える