Eyecatch php

PHP

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

2014/08/06

パーミッションが 777 のディレクトリを作成する必要がったので、その作り方となぜ初期状態では出来ないのかを忘備録としてポストします。

777とならない理由

umaskの設定

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

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

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

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

0777のディレクトリを作る

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

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

-PHP
-, , , ,