【Apache】DocumentRootの変更に伴うパーミッションの変更について

  • 25
    Like
  • 4
    Comment

環境
CentOS6.4
apache2系

ApacheのDocumentRootの設定変更の仕方はこちら↓
http://www.adminweb.jp/apache/docroot/index1.html

さてここで実際の現場では、rootユーザーを利用して開発ということはなく、Linux上に新たにユーザーを作成して、そのユーザーにDocumentRootを設定して、web開発というのが一般的では無いでしょうか?

そうなんです。
この状態で何もせずに


$ emacs /etc/httpd/conf/httpd.conf

としてDocumentRootを変更すると、ブラウザでサーバーにアクセスした時に

Permission deniedになります。
403Fobbidenを喰らいます。

つまりサーバーにつながらないのです。

しかし、

$ /etc/init.d/httpd/ configtest

で、サーバーまでのパスがとおているか確認すると

$ Syntax OK

になり、サーバーまではなんの問題もなく起動しています。

ではなぜ権限が無いと拒否されるのか。

それは、rootユーザーにあった権限がユーザーディレクトリでは権限がないらです。

ユーザーを作成するとroot以下に

home/USERNAME/

のディレクトリができます。
このUSERNAMEディレクトリが曲者。


$ ls -la

で権限確認すると、権限が700なので、ユーザーディレクトリからはApacheがUSERNAMEディレクトリを読み込めんでくれませんので


$ chmod 755(or775) /home/USERNAME

で読み込み権限を付与して、Apacheを再起動するとブラウザ上で表示できるようになりました。