Das letzte Apache2-Update unterbrach den virtuellen Host und New Error beim Neustart oder Start

2

Ich bin auf Ubuntu 12.04, habe vor kurzem ein Apache2-Update installiert, und seitdem verweisen alle virtuellen Hosts nicht auf die richtigen Verzeichnisse, sondern auf den Standard-localhost. Ich bekomme auch einen Fehler beim Neustart von Apache2:

shafox@shafox:~$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message [ OK ]. 

Ich weiß, ich habe nicht eingerichtet, dass der Servername nicht localhost ist, aber warum befindet sich vor der Fehlermeldung ein Stempel AH00558? Dies ist meine Websites in meinem System verfügbar:

/etc/apache2/sites-available$ ls
000-default.conf       default-ssl.conf  localbox-local
000-default.conf.dpkg-new  devbox-dev        sites-si

Bisher war es so:

/etc/apache2/sites-available$ ls
000-default  default-ssl  localbox-local  devbox-dev   sites-si

Zum Beispiel sieht eine der virtuellen Hostdateien so aus:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName localbox.local
        DocumentRoot /home/shafox/Localbox
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /home/shafox/Localbox/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Ich möchte nicht alle diese virtuellen Hosts erneut erstellen. Ich bin den eingeschriebenen Schritten gefolgt dieses Tutorial alle diese virtuellen Hosts erstellen.

Hier ist meine / etc / hosts-Datei:

127.0.0.1       localhost
127.0.1.1       shafox
127.0.1.1       devbox.dev
127.0.1.1       localbox.local
127.0.1.1       sites.si

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Fehlerprotokolle aus dem Fehlerprotokoll apache2 Fehlerprotokollverbindung

Pranaya Behera
quelle

Antworten:

1

Das ist technisch kein "Fehler" ... aber es ist eine Warnung. Frühere init.d-Skripts würden diese Warnung einfach in die Protokolle aufnehmen und beim Neustart nichts melden. Die Nachricht ist insofern korrekt, als Apache keine Möglichkeit hat, den Server auf der Grundlage der verfügbaren Informationen zu identifizieren. Sie können einfach den Eintrag der Loopback-Schnittstelle in der hosts-Datei folgendermaßen hinzufügen:

127.0.1.1       servername server.fully.qualified.name.tld

oder spezifizieren Sie das Servername Direktive, wie die Warnung in der apache.conf angibt:

ServerName www.example.com

Wenn Sie sich für die Verwendung von Ubuntu entschieden haben, sollten Sie wirklich die Befehle upstart verwenden, um Dienste wie Apache anstelle der init.d-Skripts zu steuern. So was:

sudo restart apache2
TheCompWiz
quelle
Ich habe den Sudo-Dienstneustart apache2 verwendet, jedoch mit dieser Warnung. Die virtuellen Hosts zeigen jedoch nicht auf das richtige Verzeichnis. Ich habe die hosts-Datei so eingerichtet, dass sie auf den Servernamen zeigt. Lemme aktualisiert meine Frage auch mit der hosts-Datei.
Pranaya Behera
AH00558 ist einfach eine Nachrichtenkennung von Apache. Betrachten Sie es als "Fehlercode". Anscheinend wurde bei der Installation des aktualisierten Pakets die "Standard" -Site ersetzt. Möglicherweise müssen Sie das entfernen 000-default.conf.dpkg-new und ersetzen Sie den symbolischen Link zum Original 000-default.conf. (Suchen Sie in Sites, die nicht für Sites verfügbar sind.)
TheCompWiz
Ja, es war vorher nicht die 000-default.conf.dpkg-new vorhanden. Muss ich diese Datei entfernen und den Inhalt anschließend auf die Datei 000-default.conf aktualisieren?
Pranaya Behera
Nein. sites-available sind einfach confs, die mit dem aktiviert werden könnten a2ensite Befehl. Schau in den sites-enabled Verzeichnis für Confs, die tatsächlich geladen werden.
TheCompWiz
Sie können auch die Apache-Protokolle oder das Syslog auf Fehler beim Start überprüfen.
TheCompWiz
0

Das gleiche Problem hatte ich nach dem Upgrade auf Apache 2.4 für ein Drupal Multisite-Entwicklersystem. Der mod_rewrite funktionierte überhaupt nicht. Der Schlüssel war die Direktive in der virtuellen Hostdatei:

<Directory /whatever-path/>
  Options Indexes FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>

Beachten Sie das AllowOverride All und Erfordert alle Gewähr was sich von Apache 2.2 unterscheidet

Hoffe das hilft.

Diogenes van Sinope
quelle
Indem Sie Require All Granted hinzufügen, wird das Problem behoben.
Pranaya Behera
@PranayaBehera - Entschuldigung für die verspätete Antwort - mein dev sys ist ein win / ubuntu-dualboot, drupal-multsite-Konfiguration hinter einer Firewall, bla, bla, bla. Ich möchte nur, dass die Dinge funktionieren. YMMV.
Diogenes van Sinope
@PranayaBehera LOL - hat versucht, den obigen Beitrag zu bearbeiten, aber Sie haben nur 5 Minuten Zeit, um dies zu tun. Es ist wie ein Speed-Date. Ich wollte hinzufügen, dass "Require All Granted" wahrscheinlich in einem Sicherheitskontext von YMMV scheiße ist.
Diogenes van Sinope
0

Ich hatte auch dieses Problem, löste es jedoch mit der gleichen Antwort wie Diogenes. Um genau zu sein, wird die Syntax ersetzt.

von https://httpd.apache.org/docs/trunk/upgrading.html

In diesem Beispiel werden alle Anforderungen abgelehnt.

2.2 Konfiguration: Auftrag verweigern, zulassen Abgelehnt von allen

2.4 Konfiguration: Erfordert alle verweigert

In diesem Beispiel sind alle Anforderungen zulässig.

2.2 Konfiguration: Ordnung erlauben, verweigern Erlaube von allen

2.4 Konfiguration: Erfordert alle Gewähr

Im folgenden Beispiel wird allen Hosts in der Domäne example.org der Zugriff gewährt. Allen anderen Hosts wird der Zugriff verweigert.

2.2 Konfiguration: Auftrag verweigern, zulassen Abgelehnt von allen Zulassen von example.org

2.4 Konfiguration: Benötigen Sie host example.org

garajo
quelle