Mac OS XをYosemiteにアップグレードした後、Apacheクライアントがサーバー構成によって拒否されました


12

これは他の質問と似ているように見えますが、ヨセミテはアップグレードでapache構成を変更しているようです。私のエラーログは「クライアントはサーバー構成によって拒否されました:/Users/douglas/Sites/testpatient.php」

Apacheのバージョン:MacBook-Pro:apache2 douglas $ apachectl -vサーバーのバージョン:Apache / 2.4.9(Unix)サーバーのビルド:2014年9月9日14:48:20私のdouglas.confファイルは644ルート/ホイールであり、次のとおりです。

<Directory "/Users/douglas/Sites">
   Options Indexes Multiviews
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

私のhttp.confには以下が含まれています。

# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User _www
Group _www

</IfModule>

...

DocumentRoot "/Library/WebServer/Documents"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Satisfy All
</Directory>

...

<Directory "/Library/WebServer/Documents">
#
# 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.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks MultiViews

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
#AllowOverride None
AllowOverride All
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
Satisfy All
</Directory>

何でもいただければ幸いです。以前のhttp.confファイルにロールバックしてみましたが、ロードする必要のあるモジュールまで、いくつかの違いがあります。モジュールを見逃した可能性は十分にありますが、ログには不満はありません。


一方でchrisMcの答えは上のスポットです、将来のstumblersも読むことをお勧めしますのMac OS Xヨセミテ上のApache、PHP、およびMySQLをインストールします
Jason McCreary 2014

回答:


17

ユーザーの.conf(douglas.conf)を次のように置き換えます:

Order allow,deny
Allow from all

と:

Require all granted

違いは、Apache 2.4がアクセス許可を処理する方法です。

http://httpd.apache.org/docs/2.4/upgrading.html


httpd.confとdouglas.confの設定を変更しましたが、同じエラーが発生します
new2code

1
Apacheの再起動を忘れないでください
Thomas Edwards

これはクールですが、access_compatモジュールをオンにしても古いOrder / Allow / Denyはまだ機能します。私は、古い設定でそれを長くするよりも、エラーを受け取って設定を修正した方がよかったと思います。
Alexis Wilke 2014年

11

私も同じ問題を抱えていて、そうすることで修正しました:

  1. httpd.confで次の行を見つけてコメントを外して、userdirモジュールをロードします。 LoadModule userdir_module libexec/apache2/mod_userdir.so Include /private/etc/apache2/extra/httpd-userdir.conf

  2. extra / httpd-userdir.confを編集し、次の行を見つけてコメント解除します。 Include /private/etc/apache2/users/*.conf

  3. 次のように、users / *。confを編集し、オプション行のすべてのオプションの前に(または)文字を追加Require localして追加します。 +- <Directory "/Users/user/Sites/"> Options +Indexes +MultiViews +FollowSymLinks +SymLinksIfOwnerMatch +ExecCGI AllowOverride All Require local Order allow,deny Allow from all </Directory>


1
これ(正確には、これ以上、それ以下)は、他の何もしなかったときに私にとってはうまくいきました。THX!
オロメ2014年

1

同じことを経験しましたが、数日前のセキュリティ更新プログラムを適用した後、Mavericksで経験しました。MavericksはまだApache 2.2を使用しているため、chrisMcの設定の問題は言及されていませんでしたが、彼は正しいようで、それも変更する必要があります。

私の場合、私は最初に、以前に追加したHomebrew PHP 5.4モジュール行をコメント化することにより、コアの問題を解決しました。でhttpd.conf

#LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so

そして代わりに、以前にコメントアウトしたデフォルトのPHPモジュールを選択します。

LoadModule php5_module libexec/apache2/libphp5.so

これで問題は解決しましたが、Homebrewのバージョンが壊れた理由については、それがコンパイルされたシステムライブラリがセキュリティアップデートで更新されたと思います。実行するとphp -vicu4cロードされていないライブラリについて警告が表示されました。

そのため、私はPHPを再コンパイルするだけで再び機能しました。私の場合、私はやった

brew uninstall php54
brew install php54

その後、Homebrewモジュールを再度有効にすることができます。


1

私は自作を使用したことがないので、このガイドに従ってしまいました。個人的な開発のためのセットアップ

最初の投稿者が話している権限が問題の一部であることがわかりましたが、user.confファイルを使用した個人設定で権限の問題がまだあります。このセットアップでは仮想ホストを使用しました。私は問題を解決するために自作が何をしたかわかりません。私は元の問題を修正しなかったため、これを回避策と呼んでいると思います。つまり、user.confファイルを使用してWebサーバー上の何にもアクセスできないということです。


驚くばかり!私にとって重要なのは、ヨセミテに新しく追加されたと思われる220〜221行目(# AllowOverride noneおよび# Require all denied)をコメント化することです。
MarkHu

0

httpd.confコメントを解除:

LoadModule authz_core_module libexec/apache2/mod_authz_core.so 
LoadModule authz_host_module libexec/apache2/mod_authz_host.so 
LoadModule userdir_module libexec/apache2/mod_userdir.so 
Include /private/etc/apache2/extra/httpd-userdir.conf

そして/etc/apache2/extra/httpd-userdir.confコメントを外して:

Include /private/etc/apache2/users/*.conf

次に、Apacheを再起動します。


0

上記の答えは、ストックインストールで機能します。そうでない場合、役立つかもしれないいくつかの事柄:

  1. ファイルシステムでは、フォルダーは大文字のSが付いた正確にSitesである必要があります(フォルダー名はuserdirモジュールでハードコーディングされており、異なることはできません)。

    drwxr-xr-x   2 username staff    68 29 mar 11:26 Sites
    
  2. <Directory…>設定はその上に適用されるので、大文字と小文字を含めて、フォルダー名と正確に一致する必要があります(Linuxからのものです)。

    /etc/apache2/users/username.confファイルの権限:

    -rw-r--r--  1 root  wheel  189 29 mar 11:42 username.conf
    

そのため、この行<Directory "/Users/user/Sites/">が、正しいユーザー名(ユーザーが構成ファイルの名前と一致する)で正しいフォルダーを正確に参照していること、大文字と小文字が含まれていること、Sitesフォルダーがそのまま存在することを確認してください。


0

私の場合、Apacheバージョン2.4.27。

httpd-vhosts.confファイルを「/etc/apache2/extra/httpd-vhosts.conf」ディレクトリから変更した後の問題を解決しました。

から

<VirtualHost *:80>
    ServerName inventory.loc
    ServerAlias www.inventory.loc
    DocumentRoot "/Users/Vagabond/Sites/inventory/public/"
    ErrorLog "/Users/Vagabond/Sites/logs/inventory.loc-error_log"
    CustomLog "/Users/Vagabond/Sites/logs/inventory.loc-access_log"
</VirtualHost>

に、

<VirtualHost *:80>
    ServerName inventory.loc
    ServerAlias www.inventory.loc
    DocumentRoot "/Users/Vagabond/Sites/inventory/public/"
    <Directory /Users/Vagabond/Sites/inventory/public/>
        Require all granted
        Options Includes FollowSymLinks
    </Directory>
    ErrorLog "/Users/Vagabond/Sites/logs/inventory.loc-error_log"
    CustomLog "/Users/Vagabond/Sites/logs/inventory.loc-access_log"
</VirtualHost>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.