TS: Virtual Host auf Linux Mint Apache2

Hello,

ich bin zu blöd, den Fehler zu finden. Dabei wollte ich nur mal eben schnell einen VirtHost einrichten auf meinem Laptop mit Linux Mint 20.3 Una und Server version: Apache/2.4.41 (Ubuntu)

durchgeführt:

  • Verzeichnisse in /var/www/ angelegt
  • in sites-available/ den Virt-Host angelegt
  • in sites-enabled einen symbolischen Link darauf gesetzt <--Spoiler: Hier ist der Fehler gewesen. Die notwendige Endung *.conf nicht beachtet
  • Zugriffsrechte gewährt für www-data
  • in /etc/hosts einen Eintrag für den VirtHost angelegt
  • Apache2 reload
  • später nochmal apache2 restart...

Trotzdem zeigt mir der Apache mit apache2ctl -S den VirtHost nicht an.

Fehler werden auch nicht angezeigt oder logged.

Beim Aufruf im Browser lande ich immer auf dem 000-default

Was habe ich denn nur vergessen? Ich bin wohl zu alt für diese K....

Glück Auf
Tom vom Berg

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.
  1. in sites-available/ den Virt-Host angelegt

    ...

    Beim Aufruf im Browser lande ich immer auf dem 000-default

    Zeigen oder prüfen:

    Steht da u.a. und ähnlich wie

    <VirtualHost *:80>
       ServerName   foo.local
       DocumentRoot /var/www/foo.local
    

    drin?

    In der default.conf fehlt der ServerName. Und genau den hab ich neulich auch mal vergessen. Das war mir echt peinlich.

    1. Hello,

      in sites-available/ den Virt-Host angelegt ... Beim Aufruf im Browser lande ich immer auf dem 000-default

      Zeigen oder prüfen:

      Steht da u.a. und ähnlich wie

      <VirtualHost *:80>
         ServerName   foo.local
         DocumentRoot /var/www/foo.local
      

      drin?

      In der default.conf fehlt der ServerName. Und genau den hab ich neulich auch mal vergessen. Das war mir echt peinlich.

      Könnte sein, denn apache2ctl -S gibt eine merkwürdige Meldung aus, die ich wohl übersehen hatte:

      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
      

      Da suche ich jetzt mal weiter mit Tante G.:

      Post zur Fehlermeldung

      Klappt aber trotzdem nicht. Die Fehlermeldung verschwindet zwar, aber die Virtual Hosts funktionieren trotzdem nicht.

      Als würde da gar keine ServerNameIdentication durchgeführt, oder ist die nur für https?

      jedenfalls taucht im Access-Log des Default-Servers

      127.0.0.1 - - [05/May/2022:06:50:07 +0200] "POST / HTTP/1.1" 200 1736 "http://home.lan/" "Mozilla/5.0 (X11; Linux x86_64; rv:99.0) Gecko/20100101 Firefox/99.0"
      

      diese Zeile auf. Die Domain wird also nicht als solche erkannt, sondern als URL-Pfad an den Default weitergereicht.

      Da sitz ich nun, ich armer Thor...

      Glück Auf
      Tom vom Berg

      --
      Es gibt nichts Gutes, außer man tut es!
      Das Leben selbst ist der Sinn.
      1. Could not reliably determine the server's fully qualified domain name, using 127.0.1.1.

        Ok. Zeige die Ausgaben des folgfenden Skriptes:

        cd /etc/apache2/sites-enabled
        grep "ServerName" *.conf
        echo
        cat /etc/hosts
        
        1. Hello,

          ...kommt nachher.

          Noch eine andere Idee:
          Könnte es mit den IPv6-Einträgen in der /etc/hosts zu tun haben?

          Ich habe ja nur Hostnames für die IPv4 dazu geschrieben...

          Could not reliably determine the server's fully qualified domain name, using 127.0.1.1.

          Ok. Zeige die Ausgaben des folgfenden Skriptes:

          cd /etc/apache2/sites-enabled
          grep "ServerName" *.conf
          echo
          cat /etc/hosts
          

          Glück Auf
          Tom vom Berg

          --
          Es gibt nichts Gutes, außer man tut es!
          Das Leben selbst ist der Sinn.
          1. Du hast einen Typo in der config oder in /etc/hosts. Einer der Servernamen kann nicht aufgelöst werden.

            Einfach mal herzeigen!

            1. Du hast einen Typo in der config oder in /etc/hosts. Einer der Servernamen kann nicht aufgelöst werden.

              Einfach mal herzeigen!

              Zusammen mit dem Umstand, dass der virtuelle Server nicht erkannt wird, ergibt sich eine hohe Wahrscheinlichkeit dafür, dass der Fehler eher in der Konfiguration der virtuellen hosts zu suchen ist, aber /etc/hosts kann dennoch eigene, weitere Fehler enthalten, z.B. Kommata als Trenner statt Leerzeichen.

              Bezüglich der config könnte es sein, dass Du z.B. versucht hast, mehrere ServerName zu setzen. Bei ServerAlias geht das, nicht aber bei ServerName.

              Die Möglichkeiten, Typos zu fabrizeren, sind quasi unendlich und führen zu einem wunderbunten Strauß an Fehlern bzw. ungewünschten Reaktionen.

              Willst Du das schnell lösen, dann zeig es einfach. Willst Dich aber durchkämpfen, dann schreib ALLES neu und nimm dabei das Handbuch zur Hand.

              Es ist echt nicht schön, dass Du uns (mich) raten lässt.

              1. Hello,

                diverse Fehler, die früher nicht immer welche waren:

                tschmieder@bitworks-L5:/etc/apache2/sites-enabled$ sudo apache2ctl -S
                AH00526: Syntax error on line 15 of /etc/apache2/sites-enabled/101-solarharz.conf:
                Either all Options must start with + or -, or no Option may.
                Action '-S' failed.
                

                Also erstmal werden nicht mehr alle Links aus sites-enabled eingesammelt, sondern nur noch die mit der Endung *.conf.
                Das lässt sich selbstvertändlich konfigurieren :-O

                Aber es hat sich eben seit Apache 2.2 geändert.

                Dann war da ein Fehler in den Options-Einstellungen des VirtHost. Mit der Check-Funktion wurde er mir aber nicht angezeigt, erst später mit der apache2ctl -S

                tschmieder@bitworks-L5:/etc/apache2/sites-enabled$ sudo apache2ctl -S
                AH00526: Syntax error on line 15 of /etc/apache2/sites-enabled/101-solarharz.conf:
                Either all Options must start with + or -, or no Option may.
                Action '-S' failed.
                

                Da fehlte also einfach ein Minuszeichen bei den Options.

                Nun läuft die Kiste auch mit VirtHosts :-)

                Danke für die Geduld und die Stupse in die passende Richtung.

                Glück Auf
                Tom vom Berg

                --
                Es gibt nichts Gutes, außer man tut es!
                Das Leben selbst ist der Sinn.
                1. Zu Deiner Beruhigung. Das erinnert mich an meine, anno asbach vorgenommenen Versuche, unter SuSE das Modul rewrite zu laden. Ich hatte 4 Versuche gebraucht, um in der httpd.conf die folgende Zeile wahrernstzunehmen

                  # DO NOT EDIT! ...
                  

                  Also erstmal werden nicht mehr alle Links aus sites-enabled eingesammelt, sondern nur noch die mit der Endung *.conf

                  Hm. Das steht eigentlich schon sehr lange Zeit unmissverständlich in der apache2.conf drin:

                  # It is split into several files forming the configuration hierarchy outlined
                  # below, all located in the /etc/apache2/ directory:
                  #
                  #       /etc/apache2/
                  #       |-- apache2.conf
                  #       |       `--  ports.conf
                  #       |-- mods-enabled
                  #       |       |-- *.load
                  #       |       `-- *.conf
                  #       |-- conf-enabled
                  #       |       `-- *.conf
                  #       `-- sites-enabled
                  #               `-- *.conf
                  

                  und dann auch noch:

                  # Include module configuration:
                  IncludeOptional mods-enabled/*.load
                  IncludeOptional mods-enabled/*.conf
                  
                  #...
                  
                  # Include generic snippets of statements
                  IncludeOptional conf-enabled/*.conf
                  
                  # Include the virtual host configurations:
                  IncludeOptional sites-enabled/*.conf
                  

                  Und damit man das nicht falsch macht gibt es sogar folgendes Befehle:

                  a2enmod   a2dismod   #Module ein - oder ausschalten
                  a2enconf  a2disconf  #Configs ein - oder ausschalten 
                  a2ensite  a2dissite  #virt. Hosts ein - oder ausschalten
                  

                  die beraten dann auch, ob ein Neustart oder nur ein Reload notwendig ist.

                  1. Hello,

                    ja ja, man(n) müsste einfach nur genauer lesen ;-)

                    BTW SNI: wo finde ich eine neue Vorlage für die TLS-Einrichtung des Virt-Hosts?

                    Ich meine insbesondere die aktuellen Cyphers usw., nicht wie das Zertifikat erstellt wird...

                    Glück Auf
                    Tom vom Berg

                    --
                    Es gibt nichts Gutes, außer man tut es!
                    Das Leben selbst ist der Sinn.
                    1. Vorlage für die TLS-Einrichtung des Virt-Hosts?

                      Da sollte eigentlich in /etc/apache2/sites-available/default-ssl.conf eine sein.


                      Spenden für die Verteidigung der Ukraine