回答:
他の回答をありがとう。権限なしでデフォルトの仮想ホストを追加することで解決しました。グローバルDocumentRoot
とServerName
オプションは、仮想ホストで指定されたものと一致する必要があります。
/etc/httpd/conf/httpd.conf
...
ServerName <server-ip>:80
DocumentRoot "/var/www/html"
<Directory />
Order Deny,Allow
Deny from all
Options None
AllowOverride None
</Directory>
...
/etc/httpd/conf.d/default.conf
<VirtualHost *:80>
ServerName <server-ip>
DocumentRoot /var/www/html
</VirtualHost>
このようにして、サーバーがIPで直接アクセスされると、403 Forbiddenメッセージが表示されます。これはまさに私が望んでいたことです。そのため/var/www/html
の既存のディレクトリが必要ない場合はさらに良いでしょうが、/dev/null
代わりに何かを指定するとApacheが不平を言います。
はいといいえ。
DocumentRoot
ディレクティブをコメント化または削除できます。問題はありません。しかし、PREFIX/htdocs/
apacheをビルドするときにPREFIXが設定されているデフォルトのディレクトリがデフォルトになるので、それはあまり達成されません。
VirtualHostsを設定すると、明示的に構成された仮想ホストによって処理されないすべての要求がデフォルトの仮想ホスト(通常は最初の仮想ホストですが、httpd -S
通知されます)によって処理されます。
.conf
内/etc/httpd/conf.d/
にある拡張子を持つすべてのApache構成ファイルは、Apache構成の一部として含まれます。したがって、デフォルトの「ようこそ」ページ構成を無効にするには、その構成の名前を変更する必要があります/etc/httpd/conf.d/welcome.conf:
ステップ1は、デフォルトのウェルカムファイルを移動します。
sudo mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.backup
ステップ2番目の再起動Appache2サービス
sudo systemctl restart httpd
/etc/httpd/conf/httpd.confで、Listenディレクティブが
Listen 80
それは意味です
*:80
<listener>
+ <servename>
/etc/httpd/conf/httpd.confと/etc/httpd/conf.d/default.confで同じものをいくつか定義しました:*:80
+ <server-ip>
。したがって、Apacheでは1つしか考慮されません。
だから、あなたの仮想ホストの設定は役に立たない。
/etc/httpd/conf/httpd.confは、/ var / www / htmlディレクトリへのアクセスをブロックするのに十分です。
単に追加する:
<Directory /var/www/html>
Order Deny,Allow
Deny from all
Options None
AllowOverride None
</Directory>
https://httpd.apache.org/docs/2.4/en/vhosts/name-based.html#algをお読みください。
サーバーが適切な名前ベースの仮想ホストを選択する方法
名前ベースの仮想ホスト解決の最初のステップはIPベースの解決であることを認識することが重要です。名前ベースの仮想ホスト解決では、候補をIPベースの最適な一致に絞り込んだ後で、最も適切な名前ベースの仮想ホストが選択されます。すべてのVirtualHostディレクティブでIPアドレスにワイルドカード(*)を使用すると、このIPベースのマッピングは無関係になります。
リクエストが到着すると、サーバーは、リクエストで使用されたIPアドレスとポートに基づいて、最も一致する最も適切な引数を見つけます。この最も一致するアドレスとポートの組み合わせを含む仮想ホストが複数ある場合、ApacheはServerNameディレクティブとServerAliasディレクティブをリクエストに含まれるサーバー名とさらに比較します。
名前ベースの仮想ホストからServerNameディレクティブを省略すると、サーバーはデフォルトでシステムのホスト名から派生した完全修飾ドメイン名(FQDN)になります。この暗黙的に設定されたサーバー名は、直感に反する仮想ホストマッチングにつながる可能性があるため、お勧めしません。
IPとポートの組み合わせのデフォルトの名前ベースのvhost最も一致するIPアドレスとポートの組み合わせを含む仮想ホストのセットに一致するServerNameまたはServerAliasが見つからない場合、最初にリストされている、一致する仮想ホストが使用されます。