Configuré el escritorio Ubuntu 11.04 de 32 bits en una VM VirtualBox con una carpeta compartida para el host. La carpeta compartida es
/media/sf_Dev/
Quiero cambiar Apache2 para que apunte DocumentRoot
a esa carpeta, así que edité /etc/apache2/sites-available/default
para reemplazar las dos rutas existentes en ese archivo a / media / sf_Dev / en lugar de / var / www y no mostrará index.html.
Cuando miro /var
con ls -l
veo
drwxr-xr-x 2 root root ... www
y cuando ls -l /media/
veo
drwxrwx--- 1 root vboxsf ... sf_Dev
y Apache no parece ver el index.html que puse en ese directorio ( cp /var/www/index.html /media/sf_Dev/
iirc)
También intenté editar envvars para hacer que el grupo sea vboxsf pero creo que hice esa parte mal.
export APACHE_RUN_GROUP=www-data
a
export APACHE_RUN_GROUP=vboxsf
¿Qué estoy haciendo mal? ¿Qué debo hacer para que Apache2 sirva los archivos de ese directorio? (técnicamente quiero servir archivos para apache, /media/sf_Dev/apache/www
pero calculo un paso a la vez, así que si eso te ayuda a cortocircuitar las cosas, que así sea)
fuente
Eso parece un problema de permisos. Necesitará leer y ejecutar el permiso
/media/sf_Dev/
para "otro" (el tercer grupo de bits de permiso, que actualmente no tienen permisos---
).Por lo tanto, deberá ejecutar este comando (ya que es Ubuntu, tenga en cuenta el sudo):
sudo chmod 775 /media/sf_Dev/
Eso agregará lectura y ejecución para "otro" y dejará permisos completos para el propietario y el grupo.
También asegúrese de que el archivo de índice realmente exista en / media / sf_Dev /. (Asumiré que olvidó el sudo en el comando cp y que no se está ejecutando como root).
fuente
sudo apache2ctl restart
sudo su
una vez que comenzó a ser una moza para poder ir a todos los directorios y ver qué estaba "roto" ... Haré lo que Josh sugirió más tarde con el archivo PHP.No dijiste cuál era el error específico, solo
El error específico ayudaría. Puede archivar esto en Apache
error_log
, que generalmente se encuentra/var/log/apache2/error.log
debajo de Ubunt, pero se puede configurar a través de unaErrorLog
Directiva en su<VirtualHost>
Sin el error real, supongo que George Marian es correcto y es un error de permisos. Puede verificar para ver en qué grupo se está ejecutando Apache usando:
Intenta encadenar permisos
/media/sf_Dev/
como él dijo.Creo que es mejor manejar esto con una directiva Alias, ya que eso le permitirá hacer que solo ciertas partes de su DocumentRoot apunten a ubicaciones externas:
EDITAR: si el servidor Apache tiene
mod_php
(no FastCGI PHP) y no está usandosuexec
, puede determinar si Apache se está ejecutando bajo el GID adecuado (ID de grupo) con el siguiente fragmento de código PHP:Asegúrese de que devuelve el mismo GID que
vboxsf
. (Puede encontrar el GID para vboxsf en/etc/groups
)fuente
vboxsf
. ¿Puedes editar y publicar las partes relevantes donde cambiaste elGroup
?Si ha configurado la carpeta compartida para que se monte automáticamente. Luego, primero debe deshabilitar el mismo y montar la carpeta compartida manualmente. Si necesita montarlo automáticamente cada vez que inicia el vm, debe agregar la entrada correspondiente dentro de su / etc / fstab. (Parece que hay algún problema al montar la carpeta compartida de vbox a través de fstab. Por lo tanto, agregar el comando mencionado a continuación dentro de /etc/rc.local me funcionó para montarlo al inicio).
Cargar carpeta compartida con usuario / grupo correcto
Por lo que puedo decir, este error se debe al propietario y al grupo de la carpeta compartida. Apache espera que los archivos pertenezcan al grupo www-data. Sin embargo, de manera predeterminada, la carpeta compartida en VirtualBox pertenece al usuario vboxsf. Agregaremos este usuario al grupo www-data. Para hacerlo, edite las propiedades del grupo en el invitado:
sudo usermod -a -G vboxsf www-data
Ahora montaremos la carpeta compartida y la asignaremos al usuario y grupo de www-data. Para verificar la identificación de usuario y grupo, puede ver el archivo / etc / passwd en la máquina invitada (cat / etc / passwd | grep 'www-data'). En el sistema operativo basado en Debian, ambos identificadores generalmente se establecen en el valor 33. Entonces, simplemente emita el siguiente comando en el invitado:
mount -t vboxsf -o rw,uid=33,gid=33 website /media/sf_website
Tenga en cuenta que el sitio web es el nombre de la carpeta compartida (como se ilustra en la captura de pantalla anterior) y / media / sf_website es donde se montará la carpeta.
Para más detalles, consulte este enlace http://jimmybonney.com/articles/configure_virtualbox_shared_folder_apache_virtual_host/
fuente