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にアクセスしようとすると「禁止」エラーが発生します。
ここに何が欠けていますか?
古い.confファイルがEl Captainの更新中にこのフォルダーに保存されることがわかりました。
/private/etc/Apache2/httpd.conf.pre-update
だから私は古い定義を新しいものにコピーしただけです:)
以下をせよ:
実行:
cd /etc/Apache2/
Sudo mv httpd.conf httpd.conf.OLD
Sudo mv httpd.conf~previous httpd.conf
Sudo apachectl restart
問題に3時間を費やした後、これはworked私にとっては!
/private/etc/Apache2/
に移動してからdiff httpd.conf httpd.conf.pre-update
に移動して、古いconfファイルと追加された新しいconfファイルの違いを確認できます。
私にとっては、多くのLoadModules
行がコメントアウトされており、Apacheユーザー/グループは_www
に戻されていました。
私は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。
この情報が誰かに役立つことを願っています
ディレクトリアクセス制御の更新は私のために働いた:
この例では、すべてのリクエストが許可されます。
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/
。
@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
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
/Users/{user name}/Sites
フォルダーにシンボリックリンクを作成します
ln -s /Path/To/Target/Files /Users/{user name}/Sites/{name}
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