Ist es möglich, xampp so zu konfigurieren , dass eine Datei außerhalb des htdocs
Verzeichnisses bereitgestellt wird ?
Angenommen, ich habe eine Datei wie folgt:
C:\projects\transitCalculator\trunk\TransitCalculator.php
und meine xampp- Dateien werden normalerweise bereitgestellt von:
C:\xampp\htdocs\
(weil dies die Standardkonfiguration ist) Gibt es eine Möglichkeit, Apache dazu zu bringen, meine TransitCalculator.php
Datei zu erkennen und bereitzustellen, ohne sie zu verschieben htdocs
? 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 verschieben htdocs
.
edit: bearbeitet, um Apache zum Fragentitel hinzuzufügen, um Q / A "durchsuchbarer" zu machen
quelle
php -S <host>:<port>
. Zum Beispielphp -S localhost:80
.Antworten:
Ok, laut den Antworten von pix0r , Sparks und Dave gibt es drei Möglichkeiten, dies zu tun:
Virtuelle Hosts
NameVirtualHost *:80
).Fügen Sie Ihren virtuellen Host hinzu (~ Zeile 36):
Öffnen Sie Ihre Hosts-Datei (C: \ Windows \ System32 \ drivers \ etc \ hosts).
Hinzufügen
bis zum Ende der Datei (vor dem Spybot - Search & Destroy-Zeug, wenn Sie das installiert haben).
Jetzt können Sie auf dieses Verzeichnis zugreifen, indem Sie zu http: //transitcalculator.localhost/ navigieren .
Machen Sie einen Alias
Beginnen Sie mit ~ Zeile 200 Ihrer
http.conf
Datei, kopieren Sie alles zwischen<Directory "C:/xampp/htdocs">
und</Directory>
(~ Zeile 232) und fügen Sie es unmittelbar darunter ein, wobei Sie esC:/xampp/htdocs
durch das gewünschte Verzeichnis ersetzen (in diesem FallC:/Projects
), um Ihrem Server die richtigen Berechtigungen für das neue Verzeichnis zu erteilen.Suchen Sie den
<IfModule alias_module></IfModule>
Abschnitt (~ Zeile 300) und fügen Sie ihn hinzu(oder was auch immer für Ihre Wünsche relevant ist) unterhalb des
Alias
Kommentarblocks innerhalb der Modul-Tags.Ändern Sie Ihren Dokumentstamm
Bearbeiten Sie ~ Zeile 176 in C: \ xampp \ apache \ conf \ httpd.conf; wechseln
DocumentRoot "C:/xampp/htdocs"
zu#DocumentRoot "C:/Projects"
(oder was auch immer Sie wollen).Bearbeiten Sie ~ Zeile 203 entsprechend Ihrem neuen Standort (in diesem Fall
C:/Projects
).Anmerkungen:
quelle
Order allow,deny Allow from all
hat bei mir nicht funktioniert, aberRequire all granted
funktioniert.Sie können es verschieben, indem Sie die DocumentRoot- Einstellung in XAMPP \ apache \ conf \ httpd.conf bearbeiten.
Es sollte derzeit sein:
Ändern Sie es in:
quelle
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):
HOSTS-Datei (normalerweise c: \ windows \ system32 \ drivers \ etc \ hosts):
Starten Sie nun XAMPP neu und Sie sollten auf http: //transitcalculator.localhost/ zugreifen können, 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:
In einer Umgebung mit Aliasnamen oder Unterverzeichnissen müssen Sie genau verfolgen, wo sich das Verzeichnis "images" relativ zur aktuellen Datei befindet.
quelle
X:\myfolder
. B. ). Wenn ich diese Methode verwende, wird die Warnung "Zugriff verboten" angezeigt. Bedeutet dies, dass der Apache-Benutzer keinen Lesezugriff auf das Laufwerk hat?Directory
ersetzenOrder allow,deny
undAllow from all
mitRequire all granted
. Siehe stackoverflow.com/questions/9110179/…Sie können Apache so einstellen, dass Seiten von überall mit Einschränkungen bereitgestellt werden, diese werden jedoch normalerweise 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
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
Lösung, mit der Apache 2 Websites außerhalb von htdocs hosten kann:
Unter der Anweisung "DocumentRoot" in httpd.conf sollte ein Verzeichnisblock angezeigt werden. Ersetzen Sie diesen Verzeichnisblock durch:
Denken Sie daran, diese Konfiguration nicht in einer echten Umgebung zu verwenden
quelle