¿Cómo ejecuto Apache en una máquina virtual, pero hago que entregue archivos desde el host?

¿Cómo ejecuto Apache en una máquina virtual, pero hago que entregue archivos desde el host?

Vale, esto es un poco complicado de explicar, pero haré lo mejor que pueda.

Estoy ejecutando Apache en una máquina virtual (modo Windows XP) y quiero:

  1. Almacenar y editar archivos del sitio web en mi máquina principal (host)
  2. Servirlos al navegador dentro de la VM (invitado)

Actualmente, estoy almacenando, editando y sirviendo todo en la máquina virtual, pero obviamente esto es inútil para copias de seguridad, git, etc., por lo que quiero sacarlos de la máquina virtual y colocarlos en directorios físicos.

Mi archivo de hosts de VM actualmente apunta a todos los dominios a 127.0.0.1:

127.0.0.1    davestewart.local
127.0.0.1    davestewart.remote

Mi archivo VM Apache httpd-vhosts.conf tiene este aspecto:

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>

La versión .local del sitio funciona muy bien y se puede ver completamente en la máquina virtual, pero la versión .remote genera un XAMPP 403 ¡Acceso prohibido! página.

Mis habilidades de servidor se extienden a algunas ediciones de .htaccess y .conf, generalmente pirateando cosas de tutoriales en línea, pero sin ningún conocimiento real de lo que estoy haciendo (a diferencia de la codificación, que me resulta mucho más fácil).

Gracias, dave

Respuesta1

Considere usarVagabundo. De forma predeterminada, la VM tendrá todos los archivos de la carpeta raíz disponibles en formato /vagrant. Por lo tanto, puede configurar Apache (en la máquina virtual) para que entregue archivos /vagrant/web, y los archivos servidos serán aquellos en el websubdirectorio de la carpeta donde se encuentra Vagrantfile. Puedes saber más en eldocumentos.

Respuesta2

¿Por qué no pruebas con enlaces simbólicos? Sé que funciona en Linux. Solo tenga los archivos en su disco host. Luego cree un enlace simbólico en su VM a la unidad host. Listo. Los archivos están en el host, pero la VM "piensa" que son locales.

Actualmente utilizamos esta configuración como una especie de puerta trasera a nuestros archivos a través del sitio de nuestra oficina para que podamos tener acceso a nuestros archivos de trabajo en el campo. Pero no queremos que nuestros archivos de trabajo estén "en" el servidor web, sino que necesitamos que el servidor web los envíe al campo a través de nuestro sitio web. Los enlaces simbólicos nos funcionan muy bien.

información relacionada