Ubuntu 16.4 VM で Apache 2.4 を正常にセットアップし、複数の仮想ホストをセットアップしました。サーバー ステータスを確認したいのですが、最初の仮想ホストがそれを妨げています。これについては、Apache 2.4 のドキュメントを何度も読み返しました。次の内容を /etc/apache2/apache.conf に、次に /etc/apache2/mods-enabled/status.conf に、最後に /etc/apache2/sites-enabled/0firstvhost.conf に記述しました。
<Location "/server-status">
SetHandler server-status
Require ip 10.211.55.0/24
</Location>
ApacheのドキュメントやServerFaultでこのテーマに関する多くの投稿を読んで、Apache 2.4に適用できるさまざまなバリエーションを試しました。
mod_statusが動作していることは、実行時に確認することで確認できます。
sudo apachectl -M | grep status
もちろん、毎回 apachectl configtest をチェックし、apache2 サービスを再起動して 10.211.55.3/server-status を参照できるかどうかを確認しましたが、Drupal PHP アプリが干渉し続けます。この vhost のルートには .htaccess がありません。
私はこの指令を指令の内外に配置しました。
VMのIPアドレスをブラウザで確認し、VM内で実行します
curl localhost/server-status
curl 10.211.55.3/server-status
Drupal アプリが最初に読み込まれます。次に何を試せばいいでしょうか? ありがとう、サム
答え1
これを見つけたのでデフォルトサイトの.htaccessがmod_statusを妨げていた動作しません。彼らの解決策は私にはうまくいきませんでしたが、私はとにかく仮想ホストを扱っているので、.htaccess なしで仮想ホストを作成することができました。Debian の /etc/hosts ファイルに任意のホストを追加しました:
127.0.0.1 foo.org
他の仮想ホストの中に空のディレクトリを作成し、新しいサイトを作成して有効にしました。
<Directory /home/foo.org>
</Directory>
<Location /server-status>
SetHandler server-status
Require local
Require ip 127.0.0.1
Require ip ::1
</Location>
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName foo.org
</VirtualHost>
ローカルホストでデータを見ることができます
curl foo.org/server-status
答え2
私も問題を抱えていました仮想ホスト /etc/sites-enabled/example.conf
http://localhost/server-info へのリクエストの処理。これは実際には次のように処理したかった。情報。
# File /etc/sites-enabled/example.conf
<VirtualHost *:80>
ServerName example.com
# ...
</VirtualHost>
問題は、Apacheが、設定されたリクエストと一致しない場合に、デフォルトのフォールバックリクエスト処理動作を持っていることです。仮想ホストのサーバーの名前(見る1、2)。 として情報のデフォルトの設定ファイルを使用し/etc/apache2/mods-available/info.load
、/etc/apache2/mods-available/info.conf
独自の設定を指定しない仮想ホストそしてサーバーの名前Apacheのフォールバックが作動したため、example.conf 仮想ホストhttp://localhost/server-info へのリクエストを処理します。
私は次の方法で問題を解決しました:
ファイルを作成する/etc/apache2/mods-available/localhost-server-info.load
(知らせmods-available
)。 これはコピーオリジナルのinfo.load
:
LoadModule info_module /usr/lib/apache2/modules/mod_info.so
ファイルを作成する/etc/apache2/sites-available/localhost-server-info.conf
(知らせsites-available
)。これはオリジナルのを改変したものでinfo.conf
、その内容を仮想ホストそして提供するサーバーの名前:
# Get mod_info information by requesting http://localhost/server-info
#
# Enable by executing
# service apache2 stop
# a2dismod info
# a2enmod localhost-server-info
# a2ensite localhost-server-info
# service apache2 start
#
# Disable by executing
# service apache2 stop
# a2dissite localhost-server-info
# a2dismod localhost-server-info
# service apache2 start
<IfModule mod_info.c>
<VirtualHost *:80>
# Adapt ServerName to your needs
# Avoid ServerName collision with any other active VirtualHosts
ServerName localhost
<Location /server-info>
SetHandler server-info
# Adapt Require to your needs
# Require local
# Require ip 192.0.2.0/24
</Location>
</virtualHost>
</IfModule>
オリジナルを無効にする情報モジュール(まだ有効になっている場合)を有効にし、新しいローカルホストサーバー情報モジュールそしてサイト:
service apache2 stop
a2dismod info
a2enmod localhost-server-info
a2ensite localhost-server-info
service apache2 start
- http://example.com/サーバー情報今後は、例.comVirtualHost (おそらく 404 ページが表示されます)。
- http://localhost/server-infoは次のように処理されるはずです。情報。
- http://127.0.0.1/サーバー情報およびその他の未設定サーバーの名前sはApacheのフォールバック処理に従って処理される必要があります。たとえば、私の例では例.comVirtualHost (おそらく 404 ページが表示されます)。