Chmod 666 と getimagesize のアクセスが拒否されました
-
22-10-2019 - |
質問
まず第一に、これは次のものの複製ではありません。 getimagesize でアクセス許可が拒否されました
次のコードを取得しました。 chmod
画像の場合、そのサイズを取得したくありません。
@chmod($path."/".$filename, '0666');
getimagesize($path . "/" . $filename);
しかし、chmod を設定すると、次のエラー メッセージが表示されます。
ストリームを開くことに失敗しました:許可が拒否されました[...]
何が問題ですか?すべてのファイルとディレクトリは同じグループと所有者を持ちます - www-data
.
解決
実際のところ、本当に getimagesize の前に chmod する必要があるのでしょうか?
もしそうなら、chmod の前に umask を入れてみてはいかがでしょうか。このようなもの?
$old = umask(0);
chmod($path,0777);
umask($old);
他のヒント
パスの前に / を入れてみてください。phpについてはわかりませんが、Pythonは特定のパス操作に最初の/を追加しないことはわかっているため、絶対パスではなく相対パスを探している可能性があります。
@chmod("/". $path."/".$filename, '0666');
getimagesize("/". $path . "/" . $filename);
初めに、 chmod
成功しません (許可は拒否されます。おそらく、表示されるエラーは chmod からのものでしょうか?) www-data
(それが Web サーバーのユーザーであると仮定して) ディレクトリへの書き込みアクセス権がありません $path
. 。確保する www-data
もっている すべての親ディレクトリへの読み取り許可 $path
そして への書き込み許可 $path
.
また、どちらの場合も必ず絶対パスを使用してください。 chmod
そして getimagesize
.
所属していません StackOverflow