0

良い時間です!Windows 7 で apache + php を正常に使用できましたが、仮想ホストをいくつか作成することにしました。Apache config の最後に次のセクションを追加しました。

<virtualhost> 
ServerAdmin yourmail@domain.com 
ServerName jiifirst 
DocumentRoot "c :/ apache2/web/jiifirst/htdocs" 
ScriptAlias ​​/ cgi-bin / "c :/ apache2/web/jiifirst/cgi-bin /" 
ErrorLog c :/ apache2 / web / jiifirst / logs / error.log 
CustomLog c :/ apache2/web/jiifirst/logs/access.log common 
</ virtualhost>

次に、適切なフォルダーを作成しました。ただし、 http://127.0.0.2/test.phpを呼び出そうとすると、次 のようなエラーが表示されます。

error Forbidden このサーバーの /test.php にアクセスする権限がありません。

同時に、問題なく localhost にアクセスできます。フォルダへの権限も変更しました。この問題を解決するには、どの apache 設定を変更する必要がありますか?

4

2 に答える 2

0

まず、構成内のすべてのスペースは何ですか? 例"c :/ apache2/web/jiifirst/htdocs"。それはあなたの本当の設定ではありません。これどうやって切り貼りしたの?

次に、 としてサーバーと通信していますhttp://127.0.0.2。はい、これはサーバーの IP アドレスですが、HTTP (少なくとも 1.1 以降) では、アドレスはマシン上のネットワーク カードを識別するだけではありません。Web サイトのドメインを識別します。アドレスはプロトコルに入り、Web サーバーはどの Web サイトをクライアントに (同じ IP アドレスで) 提供するかを決定できます。

ドメインVirtualHost名が の Web サイトを定義しますjiifirst。これは、IP ベースのアクセスとは一致しません127.0.0.2

ただし、VirtualHostとにかく一致する可能性があります。VirtualHostアドレスとポートの一致フィールドがありませんが、次のようになっている場合:

<VirtualHost *:80>

VirtualHostこれは、任意のアドレスからポート 80 への IP ベースの要求に一致する可能性があることを意味します。Apache がVirtualHostエントリの中でホスト名と完全に一致するものを見つけられない場合 (そして、特別なデフォルトの VirtualHost がない場合)、選択します。アドレスに一致する出現順で最初のもの。

上のアドレスの欠如は、<VirtualHost>物事が起こっていない理由かもしれません (そして、それらが実際に本物である場合は、おそらくスペースも)。

于 2012-03-12T04:28:33.127 に答える
0

私の問題の本当の解決策はセクションにありました

オプション FollowSymLinks AllowOverride なし 注文拒否、許可 すべてから拒否

拒否をすべてから許可に変更する必要がありました。これで、すべてがうまく機能します。

于 2012-03-14T05:35:26.473 に答える