Jans: Apache/php

Hallo,

ich habe gestern den neuen Apache 2/php installiert.
Jetzt geht meine lokale php Seite nur noch wenn ich vollständige Pfade in den include/require Anweisungen benutze.

Soll ich die alle abändern ?
Oder habe ich irgendeine Option in der Apache Konfigurationsdatei vergessen?

Eine andere Frage. Bei Ommnihttp konnte ich virtuelle Server anlegen.
Wenn ich localhost in der Adresszeile eingebe dann erscheint wie gewünscht meine Homepage.

Ich möchte aber genau so einfach phpadmin aufrufen können, indem ich phpmyadmin in der Adresszeile angeben. Wie kann ich dieses erreichen ?

Danke

  1. Hallo

    Eine andere Frage. Bei Ommnihttp konnte ich virtuelle Server anlegen.
    Wenn ich localhost in der Adresszeile eingebe dann erscheint wie gewünscht meine Homepage.

    Ich möchte aber genau so einfach phpadmin aufrufen können, indem ich phpmyadmin in der Adresszeile angeben. Wie kann ich dieses erreichen ?

    Du mußt folgenden Eintrag in der hosts-Datei (z.b. c:\windows\system32\drivers\etc\hosts) anlegen:

    127.0.0.1 phpmyadmin

    Dann mußt du in der Apache-Konfiguration (httpd.conf) nur noch einen Virtualhost anlegen:

    NameVirtualHost *
    <VirtualHost *>
        ServerName    phpmyadmin
        DocumentRoot  (verz. von phpmyadmin)
        ... sonstige einstellungen ...
    </VirtualHost>

    1. Hallo,

      Du mußt folgenden Eintrag in der hosts-Datei (z.b. c:\windows\system32\drivers\etc\hosts) anlegen:

      127.0.0.1 phpmyadmin

      Ist erledigt.

      <VirtualHost *:80>
          ServerAdmin email@local.de
          DocumentRoot c:/programme/phpmyadmin
          ServerName phpmyadmin
          ErrorLog logs/phpmyadmin_log
          CustomLog logs/phpmyadmincustom_log common
      </VirtualHost>

      Das Problem ist nun dass ich nicht mehr zu meiner eigentlichen Seite gelange. Jetzt lande ich nur noch bei phpmyadmin. Egal ob ich localhost, 127.0.0.1 oder phpmyadmin eingebe.

      1. Das Problem ist nun dass ich nicht mehr zu meiner eigentlichen Seite gelange. Jetzt lande ich nur noch bei phpmyadmin. Egal ob ich localhost, 127.0.0.1 oder phpmyadmin eingebe.

        Leg für localhost einfach noch nen VirtualHost an, dann sollte es wieder gehen. (So hab ich es zumindest bei mir konfiguriert, möglich das es noch elegantere Lösungen gibt :-))

        MfG, Le0

        1. Hallo,

          Leg für localhost einfach noch nen VirtualHost an, dann sollte es wieder gehen. (So hab ich es zumindest bei mir konfiguriert, möglich das es noch elegantere Lösungen gibt :-))

          Nun habe ich folgendes:

          #NameVirtualHost *:80

          VirtualHost example:

          Almost any Apache directive may go into a VirtualHost container.

          The first VirtualHost section is used for requests without a known

          server name.

          <VirtualHost 127.0.0.1:80>
              ServerAdmin email@local.de
              DocumentRoot c:/programme/phpmyadmin
              ServerName phpmyadmin
              ErrorLog logs/phpmyadmin_log
              CustomLog logs/phpmyadmincustom_log common
          </VirtualHost>

          <VirtualHost 127.0.0.1:80>
              ServerAdmin email@local.de
              DocumentRoot d:/webpage
              ServerName localhost
              ErrorLog logs/phpmyadmin_log
              CustomLog logs/phpmyadmincustom_log common
          </VirtualHost>

          Das ergibt folgende Fehlermeldung:

          [Mon Jan 12 15:51:23 2004] [warn] VirtualHost 127.0.0.1:80 overlaps with Virtual
          Host 127.0.0.1:80, the first has precedence, perhaps you need a NameVirtualHost directive

          1. Nun habe ich folgendes:

            #NameVirtualHost *:80
            <VirtualHost 127.0.0.1:80>
                ServerAdmin email@local.de
                DocumentRoot c:/programme/phpmyadmin
                ServerName phpmyadmin
                ErrorLog logs/phpmyadmin_log
                CustomLog logs/phpmyadmincustom_log common
            </VirtualHost>

            <VirtualHost 127.0.0.1:80>
                ServerAdmin email@local.de
                DocumentRoot d:/webpage
                ServerName localhost
                ErrorLog logs/phpmyadmin_log
                CustomLog logs/phpmyadmincustom_log common
            </VirtualHost>

            »»

            Jaja, Apache. Weiß nicht wie lange ich für die Konfiguration gebraucht hab :-).
            Nimm mal das NameVirtualHost *:80 wieder in die Konfiguration und probier bei beiden mal <VirtualHost *:80>:

            NameVirtualHost *:80
            <VirtualHost *:80>
                ServerName phpmyadmin
                ... rest ...
            </VirtualHost>
            <VirtualHost *:80>
                ServerName localhost
                ... rest ...
            </VirtualHost>

            Falls das nicht geht, probier mal mehrere NameVirtualHost-Anweisungen aus, eine für localhost:80 und eine für phpmyadmin:80 (dann mußt du auch die VirtualHost-Angaben wieder entsprechend ändern).
            Ich hoffe es geht so, habs bei mir nen bißchen anders (mit zwei verschiedenen Ports).

            MfG, Le0

            1. hallo ihr beiden,

              "localhost" braucht keinen virtuellen host, der localhost ist immer vorhanden. Wenn man denn möchte, kann man allerdings für "phpmyadmin" einen virtuellen host anlegen.

              Nimm mal das NameVirtualHost *:80 wieder in die Konfiguration

              Das ist sogar zwingend erforderlich, wobei wiederum der port nicht erforderlich ist.

              <VirtualHost *:80>
                  ServerName localhost

              Das ist überflüssig.

              Etwas leichter ist es, anstelle des * die lokale IP zu verwenden  -  und wenns keine gibt, dann eben die loopback-Adresse. Also:

              NameVirtualHost 127.0.0.1
              <VirtualHost 127.0.0.1>
                ServerName phpmyadmin
              ...

              Darauf hättet ihr auch kommen können, wenn ihr die Fehlermeldung

              [Mon Jan 12 15:51:23 2004] [warn] VirtualHost 127.0.0.1:80 overlaps with Virtual Host 127.0.0.1:80, the first has precedence, perhaps you need a NameVirtualHost directive

              richtig gelesen hättet. Genau das macht nämlich den Unterschied von IP-gestützten und namensgestützten virtualhosts aus.

              Ich persönlich habe (hier im Forum mehrfach geäußerte) Vorbehalte gegenüber der 127.0.0.1 bei virtualhosts  -  das bedeutet jedoch nicht, daß das nicht funktionieren würde.

              Wichtig ist noch, daß dieser virtuelle Host keine Adresse mit einer im Internet vorhandenen TLD bekommt  -  das hat bis Apache 2.0.3x noch funktioniert, mit den aktuellen Apaches gehts glücklicherweise nicht mehr.

              Beispiel: meine eigene Seite http://www.christoph-schnauss.de gibt es im Internet. Wenn ich jetzt für Updatezwecke und irgendwelche Basteleien, die ich später hochladen möchte, auch noch einen virtualhost in der Form

              NameVirtualHost 192.168.0.1
              <VirtualHost 192.168.0.1>
                ServerName www.christoph-schnauss.de
              ...

              einrichte und auch noch die hosts-Datei entsprechend einrichte, bekomme ich grundsätzlich unter http://www.christoph-schnauss.de meinen virtuellen host zu sehen  -  es sei denn, ich kommentiere den Eintrag in der hosts-Datei wieder aus.

              Das ist auch in Ordnung so. Der einzige Weg, _solche_ Konflikte zu umgehen, liegt meines Wissens darin, dem lokalen Apache dann halt eine andere Portnummer zu übergeben, beispielsweise 42 361 *g*. Oder man nimmt eben nach gründlicher Lektüre der Apache-Dokumentation _keine_ im Internet vorhandene TLD für den lokalen Apache, sonderbeispielsweise sowas:
              www.christoph-schnauss.test

              ... dann funktioniert es wieder.

              Etwas Lektüre gefällig? Die gibts unter http://httpd.apache.org/docs-2.0/vhosts/

              Grüße aus Berlin

              Christoph S.