DocumentRootにないファイルシステム上のディレクトリを指すエイリアスを設定しようとしています。今、403 Forbidden応答を受け取ります。実行する手順は次のとおりです。1. http.confを編集して、次を追加します。
Alias /example "/Users/user/Documents/example"
その後...
<Directory "/Users/user/Documents/example">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all</Directory>
2.ターミナルでchmodを使用して権限を設定します。
chmod 755 /Users/user/Documents/example
今、それは動作するはずです?代わりに、アクセスが禁止されます。これはerror_logからの出力です:
[Sun Jul 24 06:57:57 2011] [error] [client xx.xx.xx.xx] (13)Permission denied: access to /example denied
OS Xでもこの問題が発生していました。 gliptak は正しかったことが判明しましたが、さらに詳細を追加する必要があります。
ユーザーのホームフォルダーの下にあるフォルダーの仮想ディレクトリを構成しようとしています。これが問題を抱えている理由だと思います。私の場合、次のセットアップがありました。
/Users/calrion
です。/Users/calrion/Path/to/www
です。/Users/calrion/Path
を指すシンボリックリンク/Volumes/Other/Users/calrion/Path
があります。問題は、ユーザーおよびグループ_www
(OS X上でApacheが実行されている)が/Users/calrion
および/Volumes/Other/Users/calrion
への実行アクセス権を持っていなかったことです。
chmod o+x /Users/calrion
およびchmod o+x /Volumes/Other/Users/calrion
を実行すると、問題が解決されました(OS X 10.7.4上)。
ここでのルールは、Apacheがファイルを提供するために、パス内のallフォルダーへの実行アクセスを必要とすることです。これがないと、HTTP 403(禁止)を受け取ります。
最後のストロー;)ディレクトリエントリで必要なローカル...
お気に入り
<Directory "/Users/user/Documents/example">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local
Order allow,deny
Allow from all
</Directory>
他のすべてが機能しない場合(エイリアス、httpd.confのディレクトリエントリ、およびmod/usr/grpを修正)。
留意してください:ユーザー空間にサイトを置く場合、Apacheユーザー(httpdを実行)はあなたの家にアクセスする必要があります!
これらはすべて非常に良い答えです。それらのどれも私のために働いた。
OSXサーバーでユーザーディレクトリを指すエイリアスが指定されています。私は長い間、_wwwユーザーをいじり、いじり、実行可能アクセス許可を再帰的に追加し、macportとこれを機能させるためのあらゆる種類のものをアンインストールしました。 777を試しました。なぜ機能しなかったのか分かりません。
最終的に、そのフォルダーのFinderで「共有フォルダー」チェックボックスをオンにしただけ指定したドメインで、PHPがアクティブで、希望どおりに機能しました。 :/...だから簡単だった。
/Users/user/Documents/
、/Users/user/
の許可を確認します(最初に、より高いレベルの許可が実施されます...)
Apacheを実行しているユーザー(www、www-dataなど)に/bin/su
し、/Users/user/Documents/example
ディレクトリ内のcat
ファイルに。これは、セットアップに関する許可の問題を示している可能性があります。
私はこのまったく同じ問題を抱えていました。私が見つけたのは、SE_Linuxが有効になっており、エイリアスディレクトリ内のファイルのセキュリティコンテキストが正しくなく、httpd_sys_content_tが欠落していることです。
ls -Z
でセキュリティコンテキストを表示できます。ファイル/フォルダーにhttpd_sys_content_tがない場合、Apacheはそれらをサーバーしません。 chcon -R --type=httpd_sys_content_t /new_html_directory
などの適切なコンテキストを追加できます。これにより、現在ディレクトリ内にあるファイルのコンテキストが変更されますが、後で追加されるファイルは変更されません(そのためにはsemanageを使用する必要があります)。他のオプションは、ファイルを/ var/wwwの下に残すことです。
これが私のためにそれを修正したものです:
/etc/Apache2/httpd.conf
<Directory />
Options FollowSymLinks
AllowOverride None
# REMOVE THESE LINES
#Order deny,allow
#Deny from all
# ADD THIS LINE
Require all denied
</Directory>
この変更は、 Apacheの2.2から2.4への更新 で行われた変更を実装します。 OSX Yosemiteの更新には、Apacheの更新が含まれていました(PSA:Yosemiteへのアップグレードを計画している場合は、壊れたものをすべて修正するために1週間予算を立ててください)。
奇妙なことは、Apache 2.4がすでに動作していることです。突然突然壊れます。..
PSA:Yosemiteへのアップグレードを計画している場合は、壊れたものをすべて修正するために1週間予算を立てます
多くの時間を無駄にした後、私は問題を修正し、あなたの時間を節約するために共有したかった。
上記および他の投稿のすべての紳士の回答には正しい部分がありますが、以下は合計です
「/etc/Apache2/httpd.conf」ファイルで:
1-ドキュメントルートを変更する
Original: DocumentRoot "/Library/WebServer/Documents"
Change to: DocumentRoot "/Users/yourname/www"
2-変更
元の:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
への変更:
<Directory /Users/yourname/www>
Options FollowSymLinks Includes ExecCGI
AllowOverride None
Order deny,allow
Deny from all
</Directory>
3-変更:
元の:
<Directory "/Library/WebServer/Documents">
への変更:
<Directory "/Users/yourname/www">
4-最後に、あなたが夕食のユーザーである場合、このステップは必要ないかもしれません、これはあなたの新しいルートフォルダに正しい許可を設定することです
chmod 755 /Users/yourname/www
これが役立つことを願っています
SELinuxは私にとっての犯人でした。 Linuxボックスでこの問題が発生し、エイリアスとファイルのアクセス許可が正しい場合は、「setenforce 0」を実行してSELinuxを許容モードに設定してみてください。それは私のためのトリックをしました。
クイックソリューション:
Linuxでこれらのコマンドをルートとして使用します。
find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;
Apache構成ファイルを元に戻してから、サーバーを再度セットアップする必要がありました。これが便利だとわかった: https://Apple.stackexchange.com/questions/41143/how-to-revert-default-mac-Apache-install-to-original
それは確かに正しく見え、健全性チェックを行います。
apacheを再起動した
グループとユーザーの所有権を確認する
引用符は削除できると思います
/ Users/user/Documents/exampleに何かありますか?
777をお試しください
-ショーン