Eu configurei o Ubuntu 11.04 desktop 32 bits em uma VM do VirtualBox com uma pasta compartilhada no host. A pasta compartilhada é
/media/sf_Dev/
Quero alterar o Apache2 para apontar DocumentRoot
para essa pasta, então editei /etc/apache2/sites-available/default
para substituir os dois caminhos existentes nesse arquivo para / media / sf_Dev / em vez de / var / www e ele não mostrará index.html.
Quando olho /var
com ls -l
vejo
drwxr-xr-x 2 root root ... www
e quando ls -l /media/
eu vejo
drwxrwx--- 1 root vboxsf ... sf_Dev
e o Apache parece não ver o index.html que eu coloquei nesse diretório ( cp /var/www/index.html /media/sf_Dev/
iirc)
Também tentei editar os envvars para tornar o grupo vboxsf, mas acho que fiz essa parte errado.
export APACHE_RUN_GROUP=www-data
para
export APACHE_RUN_GROUP=vboxsf
O que estou fazendo de errado, o que preciso fazer para que o Apache2 sirva arquivos desse diretório? (tecnicamente, eu quero servir arquivos para o apache, /media/sf_Dev/apache/www
mas acho que um passo de cada vez, por isso, se isso ajudar você a causar um curto-circuito nas coisas, que assim seja)
fonte
Parece um problema de permissão. Você precisará de permissão de leitura e execução
/media/sf_Dev/
para "other" (o terceiro grupo de bits de permissão, que atualmente não têm permissão ou---
).Então, você precisará executar este comando (já que é Ubuntu, observe o sudo):
sudo chmod 775 /media/sf_Dev/
Isso adicionará leitura e execução para "outro" e deixará permissões totais para o proprietário e o grupo.
Verifique também se o arquivo de índice realmente existe em / media / sf_Dev /. (Presumo que você esqueceu o sudo no comando cp e que não está executando como root.)
fonte
sudo apache2ctl restart
sudo su
assim que começou a ser uma rapariga para que eu pudesse entrar em todos os diretórios e ver o que estava "quebrado" ... Vou fazer o que Josh sugeriu mais tarde com o arquivo PHP.Você não disse qual era o erro específico, apenas
O erro específico ajudaria. Você pode arquivar isso no Apache
error_log
, que normalmente está/var/log/apache2/error.log
sob Ubunt, mas pode ser configurado através de umaErrorLog
diretiva no seu<VirtualHost>
Sem o erro real, presumo que George Marian está correto e é um erro de permissão. Você pode verificar para qual grupo o Apache está executando usando:
Tente obter permissões
/media/sf_Dev/
como ele disse.Eu acho que é melhor lidar com isso com uma diretiva Alias, pois isso permitirá que você faça apenas certas partes do seu DocumentRoot apontar para locais fora:
EDIT: Se o servidor Apache tiver
mod_php
(não o FastCGI PHP) e não estiver usandosuexec
, você poderá determinar se o Apache está sendo executado sob o GID (ID do grupo) apropriado com o seguinte snippit do PHP:Verifique se retorna o mesmo GID que
vboxsf
. (Você pode encontrar o GID do vboxsf em/etc/groups
)fonte
vboxsf
. Você pode editar e publicar as partes relevantes em que alterouGroup
?Se você configurou a pasta compartilhada para ser montada automaticamente. Então você precisa primeiro desativar o mesmo e montar a pasta compartilhada manualmente. Se você precisar montá-lo automaticamente toda vez que iniciar o vm, precisará adicionar a entrada respectiva dentro do seu / etc / fstab. (Parece que há algum problema ao montar a pasta compartilhada do vbox através do fstab. Então, adicionar o comando abaixo mencionado dentro do /etc/rc.local funcionou para mim para montá-lo no início).
Carregar pasta compartilhada com usuário / grupo correto
Tanto quanto eu posso dizer, esse erro é devido ao proprietário e ao grupo da pasta compartilhada. O Apache espera que os arquivos renderizados pertençam ao grupo www-data. Por padrão, no entanto, a pasta compartilhada no VirtualBox pertence ao usuário vboxsf. Adicionaremos esse usuário ao grupo www-data. Para fazer isso, edite as propriedades do grupo no convidado:
sudo usermod -a -G vboxsf www-data
Agora vamos montar a pasta compartilhada e atribuí-la ao usuário e grupo www-data. Para verificar o ID do usuário e do grupo, você pode dar uma olhada no arquivo / etc / passwd na máquina convidada (cat / etc / passwd | grep 'www-data'). No sistema operacional baseado no Debian, os dois IDs geralmente são definidos com o valor 33. Portanto, basta emitir o seguinte comando no convidado:
mount -t vboxsf -o rw,uid=33,gid=33 website /media/sf_website
Observe que site é o nome da pasta compartilhada (conforme ilustrado na captura de tela acima) e / media / sf_website é onde a pasta será montada.
Para mais detalhes, consulte este link http://jimmybonney.com/articles/configure_virtualbox_shared_folder_apache_virtual_host/
fonte