In meiner Ubuntu 16.4 VM habe ich Apache 2.4 erfolgreich eingerichtet und mehrere virtuelle Hosts eingerichtet. Ich möchte den Serverstatus sehen, aber mein erster virtueller Host verhindert das ständig. Ich habe die Apache 2.4-Dokumente dazu gelesen und noch einmal gelesen. Ich habe Folgendes in meine /etc/apache2/apache.conf, dann in /etc/apache2/mods-enabled/status.conf und schließlich in /etc/apache2/sites-enabled/0firstvhost.conf eingefügt.
<Location "/server-status">
SetHandler server-status
Require ip 10.211.55.0/24
</Location>
Beim Lesen vieler Beiträge zu diesem Thema in den Apache-Dokumenten und bei ServerFault habe ich viele Variationen ausprobiert, die auf Apache 2.4 anwendbar sind.
Ich kann überprüfen, ob mod_status ausgeführt wird, indem ich es beim Ausführen sehe
sudo apachectl -M | grep status
Natürlich habe ich jedes Mal den apachectl-Konfigurationstest überprüft und den Apache2-Dienst neu gestartet, um zu sehen, ob ich zu 10.211.55.3/Server-Status navigieren kann, aber die Drupal-PHP-App stört ständig. Es gibt keine .htaccess im Stammverzeichnis dieses virtuellen Hosts.
Ich habe diese Richtlinie innerhalb und außerhalb der Richtlinie platziert.
Ich prüfe einen Browser unter der IP-Adresse der VM und führe auch innerhalb der VM aus
curl localhost/server-status
curl 10.211.55.3/server-status
Die Drupal-App wird zuerst gelesen. Was soll ich als nächstes versuchen? Danke, Sam
Antwort1
Habe das hier gefunden, was darauf hindeutetdie .htaccess für die Standard-Site verhinderte mod_statusvon der Arbeit ab. Ihre Lösung hat bei mir nicht funktioniert, aber da ich sowieso mit virtuellen Hosts arbeite, konnte ich einen virtuellen Host ohne .htaccess erstellen. Ich habe einen beliebigen Host in Debians /etc/hosts-Datei hinzugefügt:
127.0.0.1 foo.org
Ich habe unter meinen anderen virtuellen Hosts ein leeres Verzeichnis erstellt, eine neue Site erstellt und aktiviert.
<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>
Auf dem lokalen Host kann ich die Daten sehen
curl foo.org/server-status
Antwort2
Ich hatte auch das Problem meinerVirtueller Host /etc/sites-enabled/example.conf
Bearbeitung von Anfragen für http://localhost/server-info, die ich eigentlich vonmod_info.
# File /etc/sites-enabled/example.conf
<VirtualHost *:80>
ServerName example.com
# ...
</VirtualHost>
Das Problem war meiner Meinung nach, dass Apache ein standardmäßiges Fallback-Anforderungsbehandlungsverhalten hat, wenn eine Anforderung nicht mit einer konfigurierten übereinstimmtVirtueller Host'SServername(sehen1,2). Alsmod_infoStandardkonfigurationsdateien /etc/apache2/mods-available/info.load
und /etc/apache2/mods-available/info.conf
geben Sie keine eigenen anVirtueller HostUndServername, ich denke, Apaches Fallback hat gegriffen, da meinbeispiel.conf VirtualHostBehandeln Sie die Anforderung für http://localhost/server-info.
Ich habe das Problem folgendermaßen behoben:
Erstellen Sie eine Datei /etc/apache2/mods-available/localhost-server-info.load
(beachtenmods-available
). Das ist einKopierendes Originals info.load
:
LoadModule info_module /usr/lib/apache2/modules/mod_info.so
Erstellen Sie eine Datei /etc/apache2/sites-available/localhost-server-info.conf
(beachtensites-available
). Dies ist eine Adaption des Originals info.conf
, wobei der Inhalt in einVirtueller Hostund Bereitstellung einerServername:
# 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>
Deaktivieren Sie die Originaldie InfoModul (falls es noch aktiviert ist) und aktivieren Sie das neueLocalhost-Server-InformationenModulUndWebsite:
service apache2 stop
a2dismod info
a2enmod localhost-server-info
a2ensite localhost-server-info
service apache2 start
- http://example.com/server-infosollte nun von derexample.comVirtualHost (zeigt wahrscheinlich eine 404-Seite).
- http://localhost/server-info sollte nun verwaltet werden vonmod_info.
- http://127.0.0.1/server-infound andere nicht konfigurierteServernames sollten gemäß Apaches Fallback-Handling behandelt werden, z. B. in meinem Beispiel durch denexample.comVirtualHost (zeigt wahrscheinlich eine 404-Seite).