web-dev-qa-db-ja.com

OSXエルキャピタン-Apache 403禁止

YosemiteからEl Capitanにアップグレードしたばかりですが、残念ながら古いhttpd.confをコピーするのを忘れてしまったため、すべての設定を再度構成する必要があります。

Documentrootを以前の/ users/admin/wwwに変更し、このフォルダーへのアクセスを解放するように構成しました。

<Directory "/users/admin/www">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Apacheを再起動しましたが、この方法でも、127.0.0.1にアクセスしようとすると「禁止」エラーが発生します。

ここに何が欠けていますか?

17
delphirules

古い.confファイルがEl Captainの更新中にこのフォルダーに保存されることがわかりました。

/private/etc/Apache2/httpd.conf.pre-update

だから私は古い定義を新しいものにコピーしただけです:)

18
delphirules

以下をせよ:

  • ターミナルを開く
  • 実行:

    cd /etc/Apache2/
    Sudo mv httpd.conf httpd.conf.OLD
    Sudo mv httpd.conf~previous httpd.conf
    Sudo apachectl restart
    

問題に3時間を費やした後、これはworked私にとっては!

73
uiuxhub

/private/etc/Apache2/に移動してからdiff httpd.conf httpd.conf.pre-updateに移動して、古いconfファイルと追加された新しいconfファイルの違いを確認できます。

私にとっては、多くのLoadModules行がコメントアウトされており、Apacheユーザー/グループは_wwwに戻されていました。

9
anthonygore

私はApache 2.4の変更に慣れていないので、これにより約30分間本当に困惑しました。 MavericksからEl Capitan(Apache 2.2から2.4)にアップグレードしたばかりで、個人用のSitesディレクトリ( http:// localhost /〜 {username}を読み込めませんでした。ちょっとした調査の結果、/ etc/Apache2/users/{username} .confを変更して "Require all granted"を追加する必要があることがわかりました。ヨセミテ(Apache 2.4も使用)にアップグレードしたことがないため、 1。

この情報が誰かに役立つことを願っています

5
Todd Hammer

ディレクトリアクセス制御の更新は私のために働いた:

この例では、すべてのリクエストが許可されます。

2.2構成:

Order allow,deny Allow from all

2.4構成:

Require all granted

ソース: http://httpd.Apache.org/docs/trunk/upgrading.html (アクセス制御下)

/private/etc/Apache2/other/

4
jcfranco
3
Dustin Silk

@delphirulesが言ったように、古いhttpd.confファイルを次のようにコピーできます。

Sudo cp /etc/Apache2/httpd.conf.pre-update /etc/Apache2/httpd.conf

私は一日中ローカルホストに接続するのに問題がありましたが、最終的にこれを見つけました: https://mallinson.ca/web-development-with-el-capitan/

コピーコマンドを実行してからSudo apachectl restart

また、リカバリモードでSIP(システム整合性保護)を無効にしました。実際に何かを実行したかどうかはわかりません。これらの手順はこちらで確認できます。 https ://forums.developer.Apple.com/thread/3981

2
Michael Sayer

El Capitanにアップグレードした後、ユーザーレベルでサイトを提供できるようにした後、ローカルサイトディレクトリのページにアクセスしようとすると、404エラーが返されるという同様の問題がありました。問題は、Apacheがhttpd.confファイルをデフォルトにリセットして、ファイルをロードするユーザーフォルダーを無効にすることでした。 http:// localhost は正常にロードされますが、 http://localhost/~username/index.html はロードされません。修正方法は次のとおりです。

作成された「新しい」設定ファイルをバックアップします。

Sudo cp /etc/Apache2/httpd.conf /etc/Apache2/httpd.conf_capitan

名前が変更された「古い」構成ファイルを復元します。

Sudo cp /etc/Apache2/httpd.conf~previous /etc/Apache2/httpd.conf
0
anon58192932

/Users/{user name}/Sitesフォルダーにシンボリックリンクを作成します

ln -s /Path/To/Target/Files /Users/{user name}/Sites/{name}
0
sakiv

DocumentRootディレクトリにあるプロジェクトへのシンボリックリンクがある場合、El Capitanにアップグレードした後、これらのプロジェクトで403を取得できます。それらを再び機能させるには、次のものが必要です。

1)Apacheユーザー(デフォルトでは_www)には、リンク先のディレクトリを格納するディレクトリへの実行アクセス権が必要です。私の場合、Apache DocumentRootには次のものがありました。

MyProject -> /Users/Me/Documents/Aptana Studio 3 Workspace/MyProject

そして、何らかの理由で/Users/Me/Documents/Aptana Studio 3 Workspace/MyProjectのアクセス設定は-rw------- 1 Me staffでした。OSxのアップグレード中に設定されたと思います。したがって、Sudo chmod 755 Aptana\ Studio\ 3\ Workspaceエラーが解決された後。

2)アップグレードによりhttpd.confも変更されるため、DocumentRootディレクトリにこれがあることを確認するか、上記のようにバックアップhttpd.confから復元します。

Options Indexes FollowSymLinks

Mavericksまたはそれ以前のOS xからアップグレードし、バックアップhttpd.confを復元した場合、jcfrankoが言ったように、リクエスト許可のApache 2.2設定を次のように置き換える必要があります。

Require all granted
0
Vsevolod