メシのタネ

メシのタネになる、Laravelや設計思想の技術配信サイト


uploadディレクトリのパーミッションを777にしなくても良い方法があるんだぜ。

, ,

  1. Webサーバー
  2. uploadディレクトリのパーミッションを777にしなくても良い方法があるんだぜ。

PPW_memori
あるに決まってんだろって話ですけど、今までサーバー違う人がやってたので、何とかしてもらってたんですが、今回自分でやる機会があったのでちょっとだけ詳しく勉強しました。今日はそのご報告です。

パーミッションって何

権限のことです。ファイルやフォルダに対して、読み込み(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

です。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.