Onkel Schnitzel: Pfad eines lokalen Servers ändern

Hallo,

ich hatte meinen lokalen Apache-Server bis jetzt im Verzeichnis 'TSW-Testserver' zu laufen. Dieses Verzeichnis habe ich jetzt mal in 'testserver' umbenannt, weil ein bestimmtes PHP-Script lokal nicht funktioniert und meine Hoffnung ist, daß es an dem Bindestrich liegt. Nach dem Umbenennen findet mein Browser jetzt unter 'http://localhost/index.php' gar nichts mehr (404 Not Found). An welcher Stelle muß ich jetzt den neuen Pfad angeben, damit der Browser den localhost wieder findet? Hab völlig vergessen, wie man sowas macht. Das Einrichten des Servers war mir damals schon ein Graus.

Danke schonmal,
Onkel Schnitzel

  1. hallo Onkel Schnitzel,

    ich hatte meinen lokalen Apache-Server bis jetzt im Verzeichnis 'TSW-Testserver' zu laufen. Dieses Verzeichnis habe ich jetzt mal in 'testserver' umbenannt, weil ein bestimmtes PHP-Script lokal nicht funktioniert und meine Hoffnung ist, daß es an dem Bindestrich liegt. Nach dem Umbenennen findet mein Browser jetzt unter 'http://localhost/index.php' gar nichts mehr (404 Not Found). An welcher Stelle muß ich jetzt den neuen Pfad angeben, damit der Browser den localhost wieder findet? Hab völlig vergessen, wie man sowas macht. Das Einrichten des Servers war mir damals schon ein Graus.

    Wow. Für jemanden, der (wie du) doch gelegentlich schonmal hier ins Forum hereingeschaut hat, ist diese "Fehlerbeschreibung" eigentlich ein Todesurteil. Du wirst nicht versetzt, gehst nicht über Los (und ziehst keine 4000 Euro ein), sondern wanderst sofort ab in die Klasse für Minderbegabte.

    Also erstmal: welches Betriebssystem betrifft es (aus einigen Andeutungen kann man schließen, daß du Windows meinst)?
    Zweitens: welche Apache-Version läuft da?
    Drittens bis Siebzehntens: was sagen deine Serverlogs?

    weil ein bestimmtes PHP-Script lokal nicht funktioniert

    Was funktioniert lokal an deinem PHP-Script nicht?

    und meine Hoffnung ist, daß es an dem Bindestrich liegt.

    Womit hast du das geprüft, und woher nimmst du diese Hoffnung? Ich kann dir mitteilen, daß es am "Bindestrich" höchstwahrscheinlich nicht liegt. Möglicherweise an der Groß-/Kleinschreibung, möglicherweise daran, daß das DocumentRoot jetzt woandershin zeigt, möglicherweise an einer anderen Einstellung in deiner httpd.conf.

    An welcher Stelle muß ich jetzt den neuen Pfad angeben, damit der Browser den localhost wieder findet?

    Wenn du nicht weißt, daß das normalerweise in der httpd.conf einzustellen ist, solltest du dir seit dem Datum deines Eintritts hier ins Forum mal sämtliche postings, die mit dem Apache zu tun haben, aus dem Archiv fischen. Die Antwort ist irgendwo da draußen im Archiv ...

    Konkretisiere bitte deine Anfrage. Du hast schon besser und genauer zu fragen gewußt und kennst den "Laden" hier ein bißchen.

    Grüße aus Berlin

    Christoph S.

    1. Hi Christoph,

      Wow. Für jemanden, der (wie du) doch gelegentlich schonmal hier ins Forum hereingeschaut hat, ist diese "Fehlerbeschreibung" eigentlich ein Todesurteil. Du wirst nicht versetzt, gehst nicht über Los (und ziehst keine 4000 Euro ein), sondern wanderst sofort ab in die Klasse für Minderbegabte.

      Ich hau mich weg :-)

      Was funktioniert lokal an deinem PHP-Script nicht?

      Ich kann dir mitteilen, daß es am "Bindestrich" höchstwahrscheinlich nicht liegt.

      Also, ich hab jetzt das Verzeichnis erstmal wieder zurück benannt, damit ich dir den Fehler mal beschreiben kann. Und zwar möchte ich ein Script in meine Seite includen. Beim Anzeigen kommt u.a. diese Fehlermeldung:  main(c:\programme estserver\apache2\htdocs\lmo/init.php): failed to open stream: No such file or directory in <b>C:\Programme\TSW-Testserver\Apache2\htdocs\news.php</b> on line <b>106</b><br />
      <br />

      Das kann auch nicht funktionieren, denn der Pfad c:\programme estserver\apache2 ist ja völlig falsch, das Verzeichnis heißt wie gesagt 'TSW-Testserver'. Daher meine Vermutung, daß der Bindestrich vielleicht den Fehler hervorruft.

      Das Script habe ich folgendermaßen eingebunden:

      $multi="viewer";
        require("c:\programme\testserver\apache2\htdocs\lmo/init.php");
        include("c:\programme\testserver\apache2\htdocs\lmo\addon\viewer/viewer.php");

      In der viewer.php gibt es u.a. diese Zeilen:

      require(dirname(__FILE__).'/../../init.php');
      require_once(PATH_TO_ADDONDIR."/viewer/ini.php");

      Auch wenn ich hier anstelle der Funktionen den Pfad von Hand angebe, erscheint diese Fehlermeldung mit dem falschen Pfad. Wo kann das noch herrühren? Ich weiß natürlich nicht, ob das so jetzt überhaupt nachzuvollziehen ist.

      Grüße aus Berlin

      Christoph S.

      Grüße aus dem Umland,

      Onkel Schnitzel :-)

      1. Moment, Korrektur!

        Die Einbindung sieht so aus (hatte noch das umbenannte Verzeichnis drin):

        $multi="viewer";
          require("c:\programme\tsw-testserver\apache2\htdocs\lmo/init.php");
          include("c:\programme\tsw-testserver\apache2\htdocs\lmo\addon\viewer/viewer.php");

        Und die Fehlermeldung entsprechend (aber auch nicht viel besser):

        main(c:\programme sw-testserver\apache2\htdocs\lmo/init.php): failed to open stream: No such file or directory in C:\Programme\TSW-Testserver\Apache2\htdocs\news.php on line 106

        Auch dort steht nicht der korrekte Pfad.

        Gruß,
        Onkel Schnitzel

        1. hallo,

          require("c:\programme\tsw-testserver\apache2\htdocs\lmo/init.php");

          Da würde ich dir auch nur mit einem Schulterzucken antworten wollen:

          main(c:\programme sw-testserver\apache2\htdocs\lmo/init.php): failed to open stream: No such file or directory

          Schau es dir mal genau an:
             require("c:\programme\tsw-testserver [...]
             main(c:\programme sw-testserver [...]
          Was siehst du?

          Richtig, hinter "c:\programme" steht in der Fehlermeldung kein Backslash. Und dort, wo in deinem Script "\tsw" steht, steht in der Fehlermeldung " sw".

          Welche Schlußfolgerung ziehst du daraus für die Rolle des Backslash in einer Pfadangabe?

          (Wenn du jetzt von ganz allein auf die Antwort "er darf da nicht eingesetzt werden" kommst, darfst du auch wieder versetzt werden, aber über Los gehen und 4000 Euro einziehen, gilt immer noch nicht, es sei denn, du läßt mir 3999 als mildtätige Spende auf eine 0190er Nummer zukommen).

          Grüße aus Berlin

          Christoph S.

          1. (Wenn du jetzt von ganz allein auf die Antwort "er darf da nicht eingesetzt werden" kommst, darfst du auch wieder versetzt werden, aber über Los gehen und 4000 Euro einziehen, gilt immer noch nicht, es sei denn, du läßt mir 3999 als mildtätige Spende auf eine 0190er Nummer zukommen).

            Das Geld ist unterwegs. Danke für Deine Hilfe.

            Hab übrigens schon die nächste Fehlermeldung (Fatal error: Maximum execution time of 60 seconds exceeded...), aber die bekämpfe ich alleine. Erstmal... ;-)

            Gute Nacht,
            Onkel Schnitzel

          2. Moin!

            Schau es dir mal genau an:
               require("c:\programme\tsw-testserver [...]
               main(c:\programme sw-testserver [...]
            Was siehst du?

            Richtig, hinter "c:\programme" steht in der Fehlermeldung kein Backslash. Und dort, wo in deinem Script "\tsw" steht, steht in der Fehlermeldung " sw".

            Welche Schlußfolgerung ziehst du daraus für die Rolle des Backslash in einer Pfadangabe?

            (Wenn du jetzt von ganz allein auf die Antwort "er darf da nicht eingesetzt werden" kommst, darfst du auch wieder versetzt werden, aber über Los gehen und 4000 Euro einziehen, gilt immer noch nicht, es sei denn, du läßt mir 3999 als mildtätige Spende auf eine 0190er Nummer zukommen).

            Solange die Antwort lautet "Ein Backslash ist ein Escape-Zeichen im String, \t bedeutet 'Tabulator', und wenn man einen echten Backslash im String haben will, sollte man einen doppelten Backslash \ eingeben" - ok.

            Aber viel sinnvoller scheint mir, überhaupt keine absoluten Pfadangaben einzugeben. Das Verzeichnis, in dem sich die Skripte des aktuellen Webspace befinden, erhält man auch mittels $_SERVER['DOCUMENT_ROOT']. Wenn man diese Variable zusammensetzt mit den eventuellen Unterverzeichnissen, in denen sich die Datei befindet, kommt man genauso gut zum Ziel. Oder man verzichtet gleich auf eine absolute Pfadangabe und verwendet nur relative Angaben, die sich dann logischerweise relativ zum Ort des ausgeführten Skriptes beziehen.

            Die allerletzte Möglichkeit wäre, den Include-Path von PHP entsprechend zu ergänzen und auf absolute Pfadangaben beim Include zu verzichten.

            - Sven Rautenberg

            --
            My sssignature, my preciousssss!