Ankündigung

Einklappen
Keine Ankündigung bisher.

Virtueller Host bei Xampp nicht über absoluten Link erreichbar?

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Virtueller Host bei Xampp nicht über absoluten Link erreichbar?

    Guten Morgen!
    Ich habe meine Website jetzt ein wenig überarbeitet und komme um absolute Pfade (/test/...) nicht herum.
    Da ich mit Xampp das ganze lokal laufen lasse um da nicht an einem Aktivsystem rumzupfuschen und sich die Seite im Unterordner /dbsite befindet, dachte ich mir ich richte einen virtuellen Host ein.
    Ich folge diversen Tutorials im Netz, habe demnach die hosts datei bearbeitet und die httpd-vhosts.conf. Diese sieht so aus:
    Code:
    NameVirtualHost *:80
     <VirtualHost *:80>    
         DocumentRoot "H:/xampp/htdocs"    
         ServerName localhost    
         <Directory "H:/xampp/htdocs/">    
              AllowOverride All    
              Allow from All    
         </Directory>
    </VirtualHost>  
    <VirtualHost *:80>    
         ServerName dbsite.local    
         DocumentRoot H:/xampp/htdocs/dbsite    
         ErrorLog "logs/testseite-error.log"    
         CustomLog "logs/testseite-access.log" common    
         <Directory "H:/xampp/htdocs/dbsite/">    
              AllowOverride All    
              Allow from All    
         </Directory>
    </VirtualHost>
    Hier noch ein Abschnitt der hosts:
    Code:
    127.0.0.1 localhost
    127.0.0.1 dbsite.local
    ich kann die Seite auch über http://dbsite.local aufrufen. allerdings funktionieren die absoluten Pfade nach wie vor nicht.
    Auch das ändern der http.conf hat überhaupt keine Wirkung gezeigt, natürlich habe ich Apache danach auch neugestartet. Hat jemand eine Idee?


  • #2
    Probier mal die vhosts.conf auf das Grundlegende runterzubrechen:

    HTML-Code:
    <VirtualHost *:80>
        DocumentRoot "C:/xampp/htdocs/angebotsgenerator"
        ServerName angebot.dev
    </VirtualHost>

    Kommentar


    • #3
      Zitat von chim Beitrag anzeigen
      Probier mal die vhosts.conf auf das Grundlegende runterzubrechen:

      HTML-Code:
      <VirtualHost *:80>
      DocumentRoot "C:/xampp/htdocs/angebotsgenerator"
      ServerName angebot.dev
      </VirtualHost>
      Nö, hat nix gebracht. Gleiches Ergebnis.

      Kommentar


      • #4
        Dann sollte es nicht daran liegen, der Rest sieht in Ordnung aus, ggf. mal ne frische portable xampp version getestet?: https://sourceforge.net/projects/xampp/

        Kommentar


        • #5
          Zitat von chim Beitrag anzeigen
          Dann sollte es nicht daran liegen, der Rest sieht in Ordnung aus, ggf. mal ne frische portable xampp version getestet?: https://sourceforge.net/projects/xampp/
          Nö, funzt trotzdem nicht. gleicher Fehler: Warning: include(/requirements/Database.php): failed to open stream: No such file or directory in H:\xampp\htdocs\dbsite\requirements\MasterHandler. php on line 8

          Kommentar


          • #6
            Die Fehlermeldung hättest du ruhig vorher posten können, check mal deine Umgebungsvariablen:

            https://stackoverflow.com/questions/...to-open-stream

            Kommentar


            • #7
              Zitat von chim Beitrag anzeigen
              Die Fehlermeldung hättest du ruhig vorher posten können, check mal deine Umgebungsvariablen:

              https://stackoverflow.com/questions/...to-open-stream
              Ich hab jetzt in der php.ini das hier geändert
              Code:
              include_path=H:\xampp\htdocs\dbsite
              Funktioniert aber trotz allem nicht.
              Sorry, hab gedacht es geht ohne die Fehlermeldungen. Hier die ganzen:
              Code:
              Warning: include(/requirements/Database.php): failed to open stream: No such file or directory in H:\xampp\htdocs\dbsite\requirements\MasterHandler.php on line 8
              
              Warning: include(): Failed opening '/requirements/Database.php' for inclusion (include_path='H:\xampp\htdocs\dbsite') in H:\xampp\htdocs\dbsite\requirements\MasterHandler.php on line 8

              Kommentar


              • #8
                Zitat von JohnHSmith Beitrag anzeigen

                Code:
                Warning: include(/requirements/Database.php): failed to open stream: No such file or directory in H:\xampp\htdocs\dbsite\requirements\MasterHandler.php on line 8
                
                Warning: include(): Failed opening '/requirements/Database.php' for inclusion (include_path='H:\xampp\htdocs\dbsite') in H:\xampp\htdocs\dbsite\requirements\MasterHandler.php on line 8
                Was steht denn in der Zeile 8?

                Kommentar


                • #9
                  Zitat von chim Beitrag anzeigen

                  Was steht denn in der Zeile 8?
                  Zeile 8:
                  Code:
                  include("/requirements/Database.php");
                  Deshalb gehe ich davon aus, dass der virtuelle Host nicht so geht wie er soll

                  Kommentar


                  • #10
                    Ich gehe davon aus, dass die Datei nicht existert, der include Befehl hat doch mit deinen virtuellen Hosts nichts zu tun.
                    Du suchst sehr wahrscheinlich nach __DIR__ . "/requirements/Database.php" oder etwas ähnlichem.

                    Dein vorangstellter "/" leitet einen absoluten Pfad ein.

                    Kommentar


                    • #11
                      Zitat von ChromOxid Beitrag anzeigen
                      Ich gehe davon aus, dass die Datei nicht existert, der include Befehl hat doch mit deinen virtuellen Hosts nichts zu tun.
                      Du suchst sehr wahrscheinlich nach __DIR__ . "/requirements/Database.php" oder etwas ähnlichem.

                      Dein vorangstellter "/" leitet einen absoluten Pfad ein.
                      Das ist mir bewusst und so gewollt.
                      Das ist in etwa meine Ordnerstruktur:
                      Code:
                      -Hauptverzeichnis (H:/xampp/htdocs/dbsite)
                        - requirements
                          - Database.php
                          - Session.php
                          - User.php
                          - MasterHandler.php
                        - pages
                          -ordner1
                            -file1
                          -file 2
                          -file 3
                          -ordner2
                            -file 4
                      Ich muss in allen Dateien die 3 oben genannten requirements mit einbinden. Deshalb dachte ich daran, eine MasterHandler.php zu erstellen, damit ich nur pro File die MasterHandler includen (requiren) muss und nicht alle 3 .php dateien aus /requirements. Deshalb brauch ich ja da einen absoluten pfad, möglicherweise zwar nicht in der MasterHandler, aber zumindest in den anderen files. Und eben der funktioniert nicht.

                      Kommentar


                      • #12
                        /requirements wird aber als H:\requirements aufgelöst. Du musst den richtigen ansoluten Pfad angeben: H:\xampp\htdocs\dbsite\requirements

                        Kommentar


                        • #13
                          hellbringer Ich möchte quasi die gleiche Verzeichnisstruktur wie auf meinem Server simulieren. Dort ist DOMAIN.de/dbsite das verzeichnis. Und damit ich nicht immer alle Links ändern muss, hab ich das mit /dbsite lösen wollen. Aber wie ändere ich jetzt eben, dass H:\xampp\htdocs als Stammverzeichnis genutzt wird?

                          Kommentar


                          • #14

                            PHP-Code:
                            $_SERVER["DOCUMENT_ROOT"
                            Wobei ich nicht weiß was Php hier mit deinem virtuellen Host anstellt. Üblich ist die Nutzung von __DIR__, was den Pfad zur aktuell ausgeführten Datei enthält, damit kannst du dann problemlos per /.. "zurückgehen" und dann dene ntsprechenden Pfad benutzen.

                            Kommentar


                            • #15
                              Zitat von JohnHSmith Beitrag anzeigen
                              Ich möchte quasi die gleiche Verzeichnisstruktur wie auf meinem Server simulieren. Dort ist DOMAIN.de/dbsite das verzeichnis. Und damit ich nicht immer alle Links ändern muss, hab ich das mit /dbsite lösen wollen.
                              Das hat mit Links nichts zu tun. Links werden vom Browser aufgelöst und der macht HTTP-Abfragen.

                              Du hingegen möchtest aufs Dateisystem und nicht auf eine HTTP-Adresse zugreifen.

                              Zitat von JohnHSmith Beitrag anzeigen
                              Aber wie ändere ich jetzt eben, dass H:\xampp\htdocs als Stammverzeichnis genutzt wird?
                              Wurde dir schon gesagt. In __DIR__ steht das Verzeichnis der PHP-Datei, in der sich der Code befindet. Hiervon ausgehen kannst du alle anderen Dateipfade erstellen.

                              Kommentar

                              Lädt...
                              X