私はVagrantを約1週間正常に実行しています。昨夜、vagrant reloadを実行しましたが、サイトにアクセスできなくなりました。
私のファイルは/ vagrant/Sitesにあります。最初は/ vagrant /にある私の「ウェルカムページ」でレンダリングされたサイト
http://localhost:4567/
私のプロジェクトはすべてサイトの下のフォルダです。たとえば、/ vagrant/Sites/testはindex.htmlをレンダリングしません。私は次のようになります
禁止
このサーバーにアクセスする/アクセスする権限がありません。ローカルホストポート4567のApache/2.4.6(Ubuntu)サーバー
仮想ホストは次のようになります。
<VirtualHost *:80>
DocumentRoot "/vagrant/Sites/test"
ServerName test
<Directory "/vagrant/Sites/test">
AllowOverride All
</Directory>
</VirtualHost>
Vhostはrootが所有します。私のプロジェクトファイルはvagrantが所有し、0777でchmodされています。
成功しなかった後、私は完全なvagrant destroyを実行し、続いてvagrant upを実行しました。その後、ローカルホストホストのウェルカムページもレンダリングを停止し、禁止されたエラーが発生しました。
私の勘では、これは浮浪者の問題ではなく、Apacheの構成の不具合だけです。確認すべきことがいくつかあります。
まず、明らかに、Apacheが実行されているユーザーがDocumentRootフォルダーの読み取りおよび実行権限を持っていることを確認することです。
Apache 2.4について言及したので、 2.2から構成に変更がありました 。 Allow from all
ステートメントがRequire all granted
になっていることを確認してください。 (まだ2.2を使用している場合は、Allow from all
ではなくDeny from all
と表示されていることを確認する必要があります。)どちらの場合も、これを各<VirtualHost>
に個別に設定するか、設定することができます。メインの<Directory />
ファイルのhttpd.conf
ブロックのデフォルト。
もっと曖昧になったら、 selinux をチェックすることができますが、これはデフォルトではUbuntuに存在しないと確信しています。 (たとえば、CentOSにあります。)
これは解決され、最終的にはいくつかの非常に単純なことになりました。
/vagrant/Sites/default
、/vagrant/Sites/test
、/vagrant/Sites/real-site
に配置します一週間の大部分の間私を逃したすべての非常に基本的なこと。これが他の誰かに役立つことを願っています。
DocumentRootを変更したときに同じ問題が発生しました。
DocumentRootを "/ any/path/foo/bar"に変更したので、権限があることを確認してくださいこのパスの「Apache2.conf」に設定します。
検索する:
<Directory /any/path/foo/bar>
apache2.confで
そして、次のような新しいブロックを追加します。
<Directory /any/path/foo/bar>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
そして、私の推測では、すべてがうまくいくでしょう!
cd /etc/Apache2/sites-available
for file in `ls *`; do sed 's/\(.*<\/Directory.*>\)/Require\ all\ granted\n\1/' $file > $file.new;mv $file.new $file ; done;
以前は機能していたので、ファイルごとに修正するのに時間を無駄にしませんでした