あるに決まってんだろって話ですけど、今までサーバー違う人がやってたので、何とかしてもらってたんですが、今回自分でやる機会があったのでちょっとだけ詳しく勉強しました。今日はそのご報告です。
INDEX
パーミッションって何
権限のことです。ファイルやフォルダに対して、読み込み(R or 4)、書き込み(W or 2)、実行(X or 1)といった権限を割り振る事ができます。
アップロードディレクトリ
大体CMSとかのアップロードフォルダって777は危険だから755にしときなさいよとか良く書いてあるんですけど、755にするとパーミッションエラーではじかれますよね。趣味だったら別に良いかとかいって作業進めるんですけど、お客さんの場合だとちょっとなんとかしようってなります。
uploadディレクトリが755でパーミッションエラーになる理由
ディレクトリのパーミッションが755というのは「ディレクトリ所有者」が読み、書き、実行可能という状態です。でも、プログラムを「実行」するのは「所有者」ではなく、httpd.confで設定してあるユーザなのです。僕の場合apacheになっていたのですが、ここをディレクトリ所有者とグループに変更したところ、アップロードが可能になりました。centosなら/etc/httpd/conf/httpd.confの242行目付近に記述があると思うので、そこをapacheからディレクトリ所有者に変えてみてください。
注意点
デフォルトで設定してあるセッションのディレクトリの所有者がapacheなので、これをやると$_SESSIONが使えなくなるので、セッションのディレクトリの所有者とグループも変更しておきましょう。
ちなみに、所有者変更のコマンドは
chown group:user dir/file
で権限変更は
chmod 755 dir
です。