File_put_contentsが次のコードの動作を拒否するのはなぜですか?
$f = file_put_contents("files/r.js", "Some text here");
if ($f) print 1;
else print 0;
ディレクトリは/files
777に変更しましたか?十分な権限がない場合、phpがディレクトリへのアクセスを許可しない場合があります。ただし、空白エラーについては知りません。
十分なアクセス許可があるかどうかを確認し、そうでない場合は、777に設定して試してください。
ファイルシステムでフルパスを使用していますか、またはURIを使用しようとしていますか?このPHP関数は、ファイルがファイルシステムで見つかったときにパスを指定することを期待しています。
ただし、相対パスは問題ないはずです。
ファイルが存在し、そのアクセス許可が777に設定されていることを確認する必要がある場合があります。ディレクトリアクセス許可を777に設定するだけでは不十分であることがわかりましたが、ファイルも既に存在している必要があります。
これを経験したので、回避策が必要です(方法、アクセス許可、およびここで言及したその他のものに関係なく)。他のすべての修正が失敗した場合、SELinuxによって作成された制限にリンクできることがわかりました。
Windowsを使用している場合、php 5.5.38を実行しているWindows 10では次のソリューションが完全に機能しました。
Windows/IISでこの問題が発生している場合は、次を試してください。
手順は、ウィンドウのバージョンによって若干異なる場合があります。これはASP.NETにも当てはまりますが、追加するユーザーはネットワークユーザー(ネットワークAND ORネットワークサービスユーザー)およびIUSRであると思います。