11

約 1 週間、Vagrant を正常に実行してきました。昨夜 vagrant reload を実行したところ、自分のサイトにアクセスできなくなりました。

私のファイルは /vagrant/Sites にあります。最初に、/vagrant/Sites にある「ウェルカム ページ」が次の場所でレンダリングされます。

http://localhost:4567/ 

私のプロジェクトはすべて Sites の下のフォルダーです。たとえば、/vagrant/Sites/test は index.html をレンダリングしません。私は次のことを得る

禁断

このサーバーの / にアクセスする権限がありません。localhost ポート 4567 の Apache/2.4.6 (Ubuntu) サーバー

仮想ホストは次のようになります。

<VirtualHost *:80>
  DocumentRoot "/vagrant/Sites/test"
  ServerName test
  <Directory "/vagrant/Sites/test">
    AllowOverride All
  </Directory>
</VirtualHost>

仮想ホストは root が所有しています。私のプロジェクト ファイルは vagrant が所有し、chmod された 0777 です。

成功しなかった後、完全な vagrant destroy に続いて vagrant up を実行すると、localhost ホストのウェルカム ページも禁止されたエラーでレンダリングが停止しました。

4

4 に答える 4

3

これは解決され、最終的にいくつかの非常に単純なことに行き着きました。

  • 「すべてから許可」の代わりに「すべて許可を要求」を使用する
  • 各 Web サイトのコンテンツを同じレベル、つまり/vagrant/Sites/default/vagrant/Sites/test/vagrant/Sites/real-site
  • test.conf や real-site.conf などの vhost 名に .conf 拡張子を追加します。
  • サイトの .htaccess ファイルを尊重するために、vhosts に AllowOverride All を追加します (元の投稿にあったことがわかりましたが、これを解決しようとしたときに失われました)。

1週間の大部分で私を逃したすべての非常に基本的なこと。これが他の誰かを助けることができることを願っています。

于 2013-08-10T20:47:40.117 に答える
2

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>

そして、私の推測では、すべてがうまくいくと思います!

于 2016-01-07T14:52:57.490 に答える
0
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;

以前は機能していたので、ファイルごとに修正するのに時間を無駄にしませんでした

于 2013-10-03T14:44:26.457 に答える