Wie führe ich Apache in einer VM aus, lasse ihn aber Dateien vom Host bereitstellen?

Wie führe ich Apache in einer VM aus, lasse ihn aber Dateien vom Host bereitstellen?

OK, das ist ein bisschen schwierig zu erklären, aber ich werde mein Bestes geben.

Ich führe Apache in einer VM aus (Windows XP-Modus) und möchte:

  1. Website-Dateien auf meinem Hauptcomputer (Host) speichern und bearbeiten
  2. Stellen Sie sie dem Browser innerhalb der VM (Gast) zur Verfügung.

Derzeit speichere, bearbeite und stelle ich alles in der VM bereit, aber das ist offensichtlich für Backups, Git usw. nutzlos, deshalb möchte ich es aus der virtuellen Maschine in physische Verzeichnisse verschieben.

Meine VM-Hosts-Datei verweist derzeit alle Domänen auf 127.0.0.1:

127.0.0.1    davestewart.local
127.0.0.1    davestewart.remote

Die Datei httpd-vhosts.conf meiner VM Apache sieht folgendermaßen aus:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "c:/xampp/htdocs"
</VirtualHost>

<VirtualHost *:80>
    ServerName davestewart.local
    ServerAlias www.davestewart.local
    DocumentRoot "c:/xampp/htdocs/davestewart.co.uk"
    <Directory "c:/xampp/htdocs/davestewart.co.uk">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName davestewart.remote
    DocumentRoot "//dave-desktop/work"
    <Directory "//dave-desktop/work">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Die .local-Version der Site läuft einwandfrei und ist in der VM vollständig sichtbar, die .remote-Version gibt jedoch eine XAMPP 403-Seite „Zugriff verboten!“ aus.

Meine Serverkenntnisse reichen bis zur Bearbeitung von .htaccess- und .conf-Dateien. Normalerweise hacke ich Sachen aus Online-Tutorials zusammen, ohne jedoch wirklich zu wissen, was ich tue (im Gegensatz zum Codieren, was ich viel einfacher finde).

Danke, Dave

Antwort1

Erwägen Sie die VerwendungLandstreicher. Standardmäßig hat die VM alle Dateien im Stammordner in verfügbar /vagrant. Sie können also Apache (auf der VM) so konfigurieren, dass Dateien in bereitgestellt werden /vagrant/web- und die bereitgestellten Dateien sind diejenigen im webUnterverzeichnis des Ordners, in dem sich die Vagrant-Datei befindet. Weitere Informationen finden Sie imDokumente.

Antwort2

Warum versuchst du es nicht mit symbolischen Links? Ich weiß, dass das unter Linux funktioniert. Lege die Dateien einfach auf dein Host-Laufwerk. Erstelle dann in deiner VM einen symbolischen Link zum Host-Laufwerk. Voilà. Die Dateien sind auf dem Host, aber die VM „denkt“, dass sie lokal sind.

Wir verwenden dieses Setup derzeit als eine Art Hintertür zu unseren Dateien über unsere Büro-Site, damit wir vor Ort auf unsere Jobdateien zugreifen können. Wir möchten unsere Jobdateien jedoch nicht „auf“ dem Webserver haben, sondern wir benötigen den Webserver, um sie über unsere Website an das Feld zu senden. Symbolische Links funktionieren für uns hervorragend.

verwandte Informationen