これで過去2時間髪を引っ張っていて、本当にばかげたことをしていると確信しています.
<?php
mkdir("blah", 0777);
?>
これはコマンド ラインで機能し、フォルダーが作成されます。しかし、ブラウザから実行しようとすると、同じことが機能しません。ファイルのアクセス許可の問題はありますか?
コマンド ラインで実行している間はスクリプトがユーザーのアクセス許可を継承しますが、ブラウザーから実行している場合は継承されない可能性があります。
その場合、グループのディレクトリ権限を「書き込み」にする必要があります。
Web サーバー (apache?) は独自のユーザーとして実行されており、mkdir を実行しているディレクトリに書き込む権限がありません。
A) 所有者にする、B) グループに書き込み権限がある場合はグループに追加する、または C) 全員に書き込み権限を与える (ほとんどの設定では推奨されません) のいずれかの方法で、Web サーバーのユーザーにディレクトリへの書き込み権限を付与します。
umask
PHP をサーバー モジュールとして使用している場合、各リクエストが終了するたびに umask が復元されます。
$old = umask(0);
mkdir($path,0777);
umask($old);