Como executo o Apache em uma VM, mas ele serve arquivos do host?

Como executo o Apache em uma VM, mas ele serve arquivos do host?

OK, isso é um pouco complicado de explicar, mas farei o meu melhor.

Estou executando o Apache em uma VM (modo Windows XP) e quero:

  1. Armazenar e editar arquivos do site na minha máquina principal (host)
  2. Servi-los no navegador dentro da VM (convidado)

Atualmente estou armazenando, editando e servindo tudo na VM, mas obviamente isso é inútil para backup, git, etc, então quero tirá-los da máquina virtual e colocá-los em diretórios físicos.

Meu arquivo de hosts da VM atualmente aponta todos os domínios para 127.0.0.1:

127.0.0.1    davestewart.local
127.0.0.1    davestewart.remote

Meu arquivo VM Apache httpd-vhosts.conf se parece com isto:

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>

A versão .local do site funciona perfeitamente e é totalmente visível na VM, mas a versão .remote gera um acesso XAMPP 403 proibido! página.

Minhas habilidades de servidor se estendem a algumas edições de .htaccess e .conf, geralmente hackeando coisas de tutoriais on-line, mas sem nenhum conhecimento real do que estou fazendo (ao contrário da codificação, que considero muito mais fácil).

Obrigado, Dave

Responder1

Considere usarVagabundo. Por padrão, a VM terá todos os arquivos da pasta raiz disponíveis em formato /vagrant. Assim, você pode configurar o Apache (na VM) para servir arquivos /vagrant/web- e os arquivos servidos serão aqueles no websubdiretório da pasta onde o Vagrantfile está localizado. Você pode saber mais nodocumentos.

Responder2

Por que você não tenta links simbólicos? Eu sei que funciona no Linux. Basta ter os arquivos em sua unidade host. Em seguida, faça um link simbólico na sua VM para a unidade host. Voilá. Os arquivos estão no host, mas a VM "pensa" que eles são locais.

Atualmente, usamos essa configuração como uma espécie de backdoor em nossos arquivos por meio do site do escritório, para que possamos ter acesso aos nossos arquivos de trabalho em campo. Mas não queremos nossos arquivos de trabalho "no" servidor web, mas precisamos que o servidor web os envie para o campo através do nosso site. Links simbólicos estão funcionando muito bem para nós.

informação relacionada