XAMPP/Apache-Serverdatei außerhalb von htdocs bereitstellen [geschlossen]
-
08-06-2019 - |
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.
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
- Öffnen Sie C:\xampp\apache\conf\extra\httpd-vhosts.conf.
- Kommentieren Sie ~Zeile 19 (
NameVirtualHost *:80
). 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>
Öffnen Sie Ihre Hosts-Datei (C:\Windows\System32\drivers\etc\hosts).
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).
- 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).
- Starten Sie Apache neu.
Jetzt können Sie auf dieses Verzeichnis zugreifen, indem Sie dorthin navigieren http://transitcalculator.localhost/.
Erstellen Sie einen Alias
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 einC:/xampp/htdocs
durch Ihr gewünschtes Verzeichnis ersetzt (in diesem FallC:/Projects
), um Ihrem Server die richtigen Berechtigungen für das neue Verzeichnis zu erteilen.Finden Sie die
<IfModule alias_module></IfModule>
Abschnitt (~Zeile 300) und hinzufügenAlias /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
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).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