21097


apache2.4をインストールして、Laravelフレームワークを使うため、  
ドキュメントルートを下記のようにしました。

DocumentRoot "/root/test/laravel/public"  
ServerName mailsvr-01.local:80

※Laravel3.0を/root/test/配下にダウンロードしました

ブラウザからアクセスすると、下記の表記が表示されます。  
アクセス：<http://XX.XX.XX.XX>  
※クラウド環境のため、[http://localhostでアクセスできない](http://localhost%E3%81%A7%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84)

You don't have permission to access / on this server.

アクセスログには下記のような表示がされております。  
[14/Jan/2016:18:34:30 +0000] "GET / HTTP/1.1" 403 209

どこの設定を変更すればよいのかご教授願えますでしょうか。

以上、よろしくお願いいたします。


CC BY-SA 3.0
2016-01-14T18:38:15.523
20934
2016-01-19T22:44:38.780
13426
question
php laravel
You don't have permission to access / on this server.がでてアクセスできない


ディレクトリにアクセス（[http://xxx.xx.xxx.xx/aa/bb/のように](http://xxx.xx.xxx.xx/aa/bb/%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB)、ファイル名を含まないURLでアクセス）した場合に、以下のエラーが出る状況は、次のようなものが考えられます。

> You don't have permission to access / on this server

１．httpd.configファイル（webサーバの設定を記載するファイル）に、DirectoryIndexの記載がない場合。

DirectoryIndexは、ファイル名を含まないURLでアクセスされた場合に表示するファイルの名前を設定しておくもので、複数のファイル名を設定できます。  
この設定がないと、webサーバはディレクトリを返そうとしますが、ディレクトリは内容を読み取られないようにセキュリティ設定されているので、permissionが無いというエラーになります。

２．httpd.configファイルにDirectoryIndexの記載はあるが、index.htmlなどのファイルが存在しない場合。

DirectoryIndexで、index.htmlの内容を返すように設定しているのに、/root/test/laravel/public/の中にindex.html
というファイルが存在しない場合にも、同様にエラーとなります。

１．が原因の場合は、httpd.configファイルの記述を修正する事で解決できます。  
２．が原因の場合は、正しいディレクトリに正しい名前でファイルを置くことで解決できます。


CC BY-SA 3.0
2016-01-15T09:51:33.417
20946
2016-01-15T09:51:33.417
217
20934
answer


/rootディレクトリ配下はrootユーザーでなければアクセス出来ないため、/root以外(例えば/varや/tmp)の下にディレクトリを作り、ファイル一式を移動、ドキュメントルートも更新して参照すると、どうなるでしょうか。  
通常Apacheの子プロセスはapacheやnobodyなどrootではない一般ユーザーで動作しているため、/root配下のディレクトリは参照出来ないと思います。


CC BY-SA 3.0
2016-01-19T22:44:38.780
21097
2016-01-19T22:44:38.780
9017
20934
answer