Frage

Ist eine Konfiguration möglich? xampp um eine Datei außerhalb des bereitzustellen htdocs Verzeichnis?

Angenommen, ich habe eine Datei wie folgt:

C:\projects\transitCalculator\trunk\TransitCalculator.php

und mein xampp Dateien werden normalerweise bereitgestellt von:

C:\xampp\htdocs\

(weil das die Standardkonfiguration ist) Gibt es eine Möglichkeit, Apache dazu zu bringen, meine zu erkennen und bereitzustellen TransitCalculator.php Datei, ohne sie darunter zu verschieben htdocs?Vorzugsweise möchte ich, dass Apache den gesamten Inhalt des Projektverzeichnisses bereitstellt bzw. Zugriff darauf hat, und ich möchte das Projektverzeichnis nicht darunter verschieben htdocs.

bearbeiten:bearbeitet, um Apache zum Fragentitel hinzuzufügen, um Fragen und Antworten besser durchsuchbar zu machen.

War es hilfreich?

Lösung

Ok, pro pix0r'S, Funken' Und DaveIn den Antworten sieht es so aus, als gäbe es drei Möglichkeiten, dies zu tun:


Virtuelle Hosts

  1. Öffnen Sie C:\xampp\apache\conf\extra\httpd-vhosts.conf.
  2. Kommentieren Sie ~Zeile 19 (NameVirtualHost *:80).
  3. Fügen Sie Ihren virtuellen Host hinzu (~Zeile 36):

    <VirtualHost *:80>
        DocumentRoot C:\Projects\transitCalculator\trunk
        ServerName transitcalculator.localhost
        <Directory C:\Projects\transitCalculator\trunk>
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
    
  4. Öffnen Sie Ihre Hosts-Datei (C:\Windows\System32\drivers\etc\hosts).

  5. Hinzufügen

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    bis zum Ende der Datei (vor dem Spybot - Search & Destroy-Zeug, falls Sie das installiert haben).

  6. Speichern (Möglicherweise müssen Sie es auf dem Desktop speichern, die Berechtigungen für die alte Hosts-Datei ändern (Rechtsklick > Eigenschaften) und die neue in das Verzeichnis über der alten kopieren (oder die alte umbenennen), falls Sie sie verwenden Vista und habe Probleme).
  7. Starten Sie Apache neu.

Jetzt können Sie auf dieses Verzeichnis zugreifen, indem Sie dorthin navigieren http://transitcalculator.localhost/.


Erstellen Sie einen Alias

  1. Beginnen Sie mit ~Zeile 200 von Ihnen http.conf Datei, kopieren Sie alles dazwischen <Directory "C:/xampp/htdocs"> Und </Directory> (~Zeile 232) und fügen Sie es direkt darunter mit ein C:/xampp/htdocs durch Ihr gewünschtes Verzeichnis ersetzt (in diesem Fall C:/Projects), um Ihrem Server die richtigen Berechtigungen für das neue Verzeichnis zu erteilen.

  2. Finden Sie die <IfModule alias_module></IfModule> Abschnitt (~Zeile 300) und hinzufügen

    Alias /transitCalculator "C:/Projects/transitCalculator/trunk"
    

    (oder was auch immer für Ihre Wünsche relevant ist) unten Alias Kommentarblock, innerhalb der Modul-Tags.


Ändern Sie Ihr Dokumentstammverzeichnis

  1. Bearbeiten Sie ~Zeile 176 in C:\xampp\Apache\conf\httpd.conf;ändern DocumentRoot "C:/xampp/htdocs" Zu #DocumentRoot "C:/Projects" (oder was auch immer Sie wollen).

  2. Bearbeiten Sie ~Zeile 203 so, dass sie Ihrem neuen Standort entspricht (in diesem Fall C:/Projects).


Anmerkungen:

  • Sie müssen Schrägstriche „/“ statt Backslashes „\“ verwenden.
  • Fügen Sie am Ende nicht das nachgestellte „/“ ein.
  • Starten Sie Ihren Server neu.

Andere Tipps

Sie können es verschieben, indem Sie die bearbeiten Dokument Root Einstellung in XAMPP\Apache\conf\httpd.conf.

Es sollte derzeit sein:

C:/xampp/htdocs

Ändern Sie es in:

C:/projects/transitCalculator/trunk

Ein VirtualHost würde hierfür ebenfalls funktionieren und könnte für Sie besser funktionieren, da Sie mehrere Projekte hosten können, ohne dass Unterverzeichnisse erforderlich sind.So machen Sie es:

httpd.conf (oder extra\httpd-vhosts.conf relativ zu httpd.conf.Nachgestellte Schrägstriche „\“ könnten dazu führen, dass es nicht funktioniert):

NameVirtualHost *:80
# ...
<VirtualHost *:80>  
    DocumentRoot C:\projects\transitCalculator\trunk\
    ServerName transitcalculator.localhost
    <Directory C:\projects\transitCalculator\trunk\>  
        Order allow,deny  
        Allow from all  
    </Directory>
</VirtualHost> 

HOSTS-Datei (normalerweise c:\windows\system32\drivers\etc\hosts):

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

Starten Sie nun XAMPP neu und Sie sollten darauf zugreifen können http://transitcalculator.localhost/ und es wird direkt diesem Verzeichnis zugeordnet.

Dies kann hilfreich sein, wenn Sie versuchen, eine Produktionsumgebung zu replizieren, in der Sie eine Site entwickeln, die sich im Stammverzeichnis eines Domänennamens befindet.Sie können beispielsweise auf Dateien mit absoluten Pfaden verweisen, die auf den Server übertragen werden:

<img src="/images/logo.png" alt="My Logo" />

wohingegen Sie in einer Umgebung, die Aliase oder Unterverzeichnisse verwendet, genau im Auge behalten müssen, wo sich das Verzeichnis „images“ relativ zur aktuellen Datei befindet.

Sie können Apache so einstellen, dass Seiten von überall aus mit allen Einschränkungen bereitgestellt werden, die Verteilung erfolgt jedoch normalerweise in einer sichereren Form.

Durch Bearbeiten Ihrer Apache-Dateien (http.conf ist einer der gebräuchlicheren Namen) können Sie jeden Ordner so festlegen, dass er in Ihrem Webroot angezeigt wird.

BEARBEITEN:

Alias ​​myapp c:\myapp\

Ich habe meine Antwort so bearbeitet, dass sie das Format zum Erstellen eines Alias ​​in die http.conf-Datei einfügt, was einer Art Verknüpfung in Windows oder einem Symlink unter un*x ähnelt, wo Apache „vorgibt“, ein Ordner sei im Webroot.Dies wird Ihnen auf lange Sicht wahrscheinlich von größerem Nutzen sein.

Wenn Sie versuchen, XAMPP dazu zu bringen, ein Netzlaufwerk als Dokumentstammverzeichnis zu verwenden, müssen Sie UNC-Pfade in httpd.conf verwenden.XAMPP erkennt Ihre zugeordneten Netzwerklaufwerke nicht.

Zum Beispiel funktioniert das folgende nicht, documentRoot "x:/webroot".

Aber dies wird documentRoot "//192.168.10.100/webroot" (beachten Sie die Vorwärts -Schrägstriche, nicht die Rückenstöpsel)

Lösung, um Apache 2 das Hosten von Websites außerhalb von htdocs zu ermöglichen:

Unter der „DocumentRoot“-Direktive in httpd.conf sollten Sie einen Verzeichnisblock sehen.Ersetzen Sie diesen Verzeichnisblock durch:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Allow from all
</Directory> 

Denken Sie daran, diese Konfiguration nicht in einer realen Umgebung zu verwenden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top