

まず当方のシステム環境です。  
macOS Sierra  
Apache: 2.4.25 (Unix)  
mysql: stable 5.7.19

サーバーを立ち上げ、

[code]

    http://localhost/
    
[/code]

へアクセスするも、

[code]

    Forbidden　You don't have permission to access / on this server.
    
[/code]

エラーログは、

[code]

    Cannot serve directory /users/ユーザー名/Sites/: 
    No matching DirectoryIndex (index.php,index.html,index.html,index.php)found,     
    and server-generated directory index forbidden by Options directive
    
[/code]

httpd.conf（変更点）

[code]

    # LoadModule userdir_module libexec/apache2/mod_userdir.so #コメントアウト
    # LoadModule alias_module libexec/apache2/mod_alias.so #コメントアウト
    # LoadModule rewrite_module libexec/apache2/mod_rewrite.so #コメントアウト
    # LoadModule php5_module libexec/apache2/libphp5.so #コメントアウト
    
    DocumentRoot "/users/ユーザー名/Sites/"
     <Directory "/users/ユーザー名/Sites/">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options FollowSymLinks Multiviews
    MultiviewsMatch Any
    
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride All
    
    #
    # Controls who can get stuff from this server.
    #
    Require all granted
    
[/code]

[code]

    Include /private/etc/apache2/extra/httpd-userdir.conf #コメントアウト
    
[/code]

ユーザ名.confも作成し、

[code]

    /apache2/users/ユーザ名
    
    <Directory "/Users/ユーザ名/Sites/">
    AllowOverride All
    Options Indexes MultiViews
    Options +FollowSymLinks
    Require all granted
    </Directory>
    
[/code]

として入れてあります。

未熟な私に解決方法をご教授ください。  
よろしくお願いいたします。


CC BY-SA 3.0
2017-07-24T18:06:39.927
36639
2017-07-25T14:04:36.093
2017-07-25T14:04:36.093
24563
24563
question
macos apache
macOSでhttpd.confを編集してApacheを立ち上げるとForbidden応答が返ってくる


まず、以下のコマンドでディレクトリの存在確認とパーミッションを確認するとよいかと思います。  

[code]

    ls -lah /users/yusuke3627/Sites/
    
[/code]

※それと ls コマンドでは通るようですが /users ではなく /Users と指定した方がよいかと思います。

パーミッションがないということなので、以下のコマンド等で指定ユーザーを確認し、ドキュメントルートの所有者を変更してみてはどうでしょうか。

[code]

    httpd -t -D DUMP_CONFIG 2>/dev/null | grep "User "
    chown -R www:www /Users/yusuke3627/Sites/
    
[/code]


CC BY-SA 3.0
2017-07-24T22:40:42.790
36641
2017-07-24T22:40:42.790
20043
36639
answer


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

はファイルシステム上のパーミッションの事を直接指しているわけではありません。その場合もありますが、Apacheでのアクセス制限や権限制限に引っかかった時に一般的に出るメッセージです。

今回の場合、エラーメッセージに

  * DirectoryIndexで使われるindex.php、index.htmlが見つからない
  * 一覧表示が禁止されている（Options Indexesがない）

と書いてあります。httd.confの方でOptionsにIndexesを追加するか、index.htmlまたはindex.phpを作成してください。

\--

蛇足ですが、

[code]

    Include /private/etc/apache2/extra/httpd-userdir.conf #コメントアウト
    
[/code]

コメントアウトしたのかしてないのか意味がわからないです。コメントアウトしたのであれば、

[code]

    # Include /private/etc/apache2/extra/httpd-userdir.conf #コメントアウト
    
[/code]

と実際にコメントアウトした状態を示す、してないのであれば

[code]

    Include /private/etc/apache2/extra/httpd-userdir.conf #コメントアウトを解除
    
[/code]

など実態を反映したコメントにされるほうがよいです。


CC BY-SA 3.0
2017-07-25T00:27:23.830
36642
2017-07-25T00:27:23.830
5793
36639
answer