php - Erstellen Sie eine XAMPP / Apache-Servedatei außerhalb von htdocs

Translate

Ist es möglich zu konfigurierenxamppeine Datei außerhalb derhtdocsVerzeichnis?

Angenommen, ich habe eine Datei wie folgt:

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

und meinxamppDateien werden normalerweise bereitgestellt von:

C:\xampp\htdocs\

(weil dies die Standardkonfiguration ist) Gibt es eine Möglichkeit, Apache dazu zu bringen, meine zu erkennen und zu bedienen?TransitCalculator.phpDatei, ohne sie zu verschiebenhtdocs? Am liebsten möchte ich, dass Apache den gesamten Inhalt des Projektverzeichnisses bereitstellt und Zugriff darauf hat, und ich möchte das Projektverzeichnis nicht unter verschiebenhtdocs.

edit: bearbeitet, um Apache zum Fragentitel hinzuzufügen, um Q / A "durchsuchbarer" zu machen

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Ok, perpix0r's,Funken' undDaveEs sieht 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. Kommentar entfernen ~ 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, wenn 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 Datei in das Verzeichnis über die alte kopieren (oder die alte umbenennen), wenn Sie sie verwenden Vista und habe Probleme).
  7. Starten Sie Apache neu.

Jetzt können Sie auf dieses Verzeichnis zugreifen, indem Sie zu navigierenhttp: //transitcalculator.localhost/.


Machen Sie einen Alias

  1. Start ~ Zeile 200 von Ihnenhttp.confDatei, kopieren Sie alles zwischen<Directory "C:/xampp/htdocs">und</Directory>(~ Zeile 232) und fügen Sie es unmittelbar darunter mit einC:/xampp/htdocsdurch Ihr gewünschtes Verzeichnis ersetzt (in diesem FallC:/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) unter demAliasKommentarblock innerhalb der Modul-Tags.


Ändern Sie Ihren Dokumentstamm

  1. Bearbeiten Sie ~ Zeile 176 in C: \ xampp \ apache \ conf \ httpd.conf; VeränderungDocumentRoot "C:/xampp/htdocs"zu#DocumentRoot "C:/Projects"(oder was auch immer du willst).

  2. Bearbeiten Sie die Zeile 203 entsprechend Ihrem neuen Standort (in diesem Fall)C:/Projects).


Anmerkungen:

  • Sie müssen Schrägstriche "/" anstelle von Schrägstrichen "\" verwenden.
  • Fügen Sie am Ende nicht das nachfolgende "/" ein.
  • Starten Sie Ihren Server neu.
Quelle
Translate

Sie können es verschieben, indem Sie das bearbeitenDokument RootEinstellung in XAMPP \ apache \ conf \ httpd.conf.

Es sollte derzeit sein:

C: / xampp / htdocs

Ändern Sie es in:

C: / projects / transitCalculator / trunk

Quelle
Translate

Ein VirtualHost würde auch dafür funktionieren und möglicherweise besser für Sie funktionieren, da Sie mehrere Projekte ohne Unterverzeichnisse hosten können. So geht's:

httpd.conf (oder extra \ httpd-vhosts.conf relativ zu httpd.conf. Nachgestellte Schrägstriche "\" können 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önnenhttp: //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" />

In einer Umgebung mit Aliasnamen oder Unterverzeichnissen müssen Sie genau verfolgen, wo sich das Verzeichnis "images" relativ zur aktuellen Datei befindet.

Quelle
Translate

Sie können Apache so einstellen, dass Seiten von überall mit Einschränkungen bereitgestellt werden, aber normalerweise wird es in einer sichereren Form verteilt.

Durch Bearbeiten Ihrer Apache-Dateien (http.conf ist einer der gebräuchlichsten Namen) können Sie einen beliebigen Ordner so einstellen, dass er in Ihrer Webroot angezeigt wird.

BEARBEITEN:

alias myapp c: \ myapp \

Ich habe meine Antwort so bearbeitet, dass sie das Format zum Erstellen eines Alias in der Datei http.conf enthält, das einer Verknüpfung in Windows oder einem Symlink unter un * x ähnelt, bei dem Apache vorgibt, ein Ordner befindet sich in der Webroot. Dies wird Ihnen auf lange Sicht wahrscheinlich nützlicher sein.

Quelle
Translate

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

Zum Beispiel funktioniert Folgendes nicht: DocumentRoot "X: / webroot"

Dies wird jedoch DocumentRoot "//192.168.10.100/webroot" (beachten Sie die Schrägstriche vorwärts, nicht die Schrägstriche hinten).

Quelle
Hyman Lee
Translate

Lösung, mit der Apache 2 Websites außerhalb von htdocs hosten kann:

Unter der Direktive "DocumentRoot" in httpd.conf sollte ein Verzeichnisblock angezeigt werden. Ersetzen Sie diesen Verzeichnisblock durch:

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

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

Quelle