PHPでファイルの読み書きをするアプリケーションをつくるとき、絶対に悩むのがパーミッションといわれるもの。
このパーミッション、Windows環境でテストしているときは考えなくてすむのですが、レンタルサーバーに使われていることが多いUNIX系のOSではコレを設定する必要がでてきます。
正しく設定しないとうまくPHPでファイルの読み書きをすることができません。
パーミッションとは
パーミッションとは、ファイルやディレクトリに対するアクセス権のことを言います。 一般的にWEBサーバーでは複数のユーザーが1台のマシンを共有するため、 自分のファイルを他人に不正に操作されないためにアクセス権 ( パーミッション ) を設定することが出来ます。 アクセス権 ( パーミッション ) を正しく設定する事で、大切なファイルを守る事が出来ます。
「ロリポップ!レンタルサーバー-パーミッションについて」より
つまり、パーミッションをうまく設定しないと他人に書き換えられちゃうよってことになります。せっかく作ったサイトが書き換えられたら大変ですね。
パーミッションの設定
それではパーミッションについて説明しようと思いますが、理解している範囲で・・・ということをご了承ください。
パーミッションはロリポップFTPやFFFTPなどで確認できます(左図)。この「755」や「644」などの3桁の数字がパーミッションの設定です。
この数字の組み合わせにより、どのユーザーに対してどのアクセス権をあたえるかということを意味しています。
ユーザーには次の種類があります。
- そのファイル/ディレクトリの所有ユーザー「Owner」
- そのファイル/ディレクトリの所有ユーザーの属しているグループ「Group」
- その他の第三者「Other」
これらに対して
- 読み取り許可
- 書き込み許可
- 実行・ディレクトリ一覧許可
の3種類の権限を与えるかどうかで設定できます。
パーミッションの設定では3桁の数字を使うと書きました。左の数字が Owner 権限、真ん中の数字が Group 権限、右の数字が Other 権限を意味しています。
それぞれの桁の数字が持つ意味は「4=読み込み許可/2=書き込み許可/1=実行・ディレクトリ一覧許可」の数字を足したものです。
| Owner | Group | Other | |
|---|---|---|---|
| 読み取り許可 | 4 | 4 | 4 |
| 書き込み許可 | 2 | 2 | 2 |
| 実行・ディレクトリ一覧許可 | 1 | 1 | 1 |
たとえば、Owner、Group、Other にそれぞれ「読み取り許可」を与え、さらに Owner に「書き込み許可」を与えれば「644」ということになります。アップロードしたHTMLファイルとかがこれにあたります。ロリポップではアップロードしたHTMLファイルやCSS、GIF等のイメージファイルに「644」が与えられます。
それでは「755」はどういう意味になるでしょう。この場合は、Owner にすべての権限、Group と Other に「読み取り許可」と「実行・ディレクトリ一覧許可」が与えられていることになります。ロリポップではディレクトリを作成するとこの「755」が与えられます。
パーミッションはFTPソフトから簡単に変更することができますが、誤った設定をしてしますとディレクトリの中身が見れなくなったり、ファイルがダウンロードできなくなったりしてしまうので変更するときは注意しましょう。
ロリポップで推奨されている各ファイルのパーミッションは公式サイトのマニュアルによると次のようになっているのでまずは確認・修正しておきましょう。
| HTML・画像ファイル | 604 |
|---|---|
| CGIの実行ファイル | 700 |
| CGIのデータファイル | 600 |
| .htaccessファイル | 604 |
| ディレクトリ | 705 |




