PHPで、パーミッションが777のディレクトリを作成する方法。

PHP

とならない理由

umaskの設定

PHPの mkdir() でディレクトリ(フォルダ)を作成した場合、パーミッションは(サーバの設定によりますが)大体 0755、ファイルの場合は 0644 となると思います。(最初の0は8進数表記によるもの)

これは LINUX など UNIX系のサーバの場合に umask (ユーマスク)という設定がなされているため。
ターミナル等で umask と打つと設定されている値が表示されるのですが、大体「0022」となっていることが多く、

上記のような mkdir() を実行しても 0022 でマスク(引き算)され 0755 となってしまう、というものです。
概念図はこんな感じ。

0777 ←permission値
-0022 ←umask値
—–
0755 ←結果値

0777のディレクトリを作る

ではどうやったら 0777 のディレクトリが出来上がるのか。
元々の umask 値を変えてしまっても良いのですが、それはそれで不都合が出るやも知れないので、もうちょっと穏やかで簡単な方法をとってみたいと思います。

ディレクトリを作ったあとに、chmod() するだけで出来上がってしまいます。
長々と説明した割には、簡単ですね。

タイトルとURLをコピーしました