Tengo algunos problemas para vincular mi /var/www/
a un nuevo Webroot
directorio dentro de mi carpeta de inicio. Creo que estos se derivan de mi falta de comprensión de los permisos de Linux.
Hasta donde yo sé, los enlaces simbólicos deben tomar la forma del directorio que desea vincular y el directorio al que desea vincular, por lo que en mi caso, ejecuté:
sudo ln -s ~/Webroot/* /var/www/
este tipo de ha funcionado, si me quedo ls
en /var/www/
lo que puedo ver todos los archivos en mi Webroot
directorio.
Cada vez que intento ejecutar un archivo que está en mi Webroot
carpeta, obtengo un error de permiso 403, ¿es esto porque los archivos en mi directorio Webroot los creo yo y la instancia de apache se ejecuta como www-data?
Si este es el caso, ¿significaría que necesito cambiar los permisos en cada archivo que creo para ejecutarlo?
Anteriormente ejecuté una instancia local de apache señalando la raíz del directorio de mi vhost predeterminado a la Webroot
carpeta, en esta instancia no tuve que alterar ningún permiso. Cualquier ayuda sería apreciada.
fuente
Respuestas:
Esta no es una buena práctica, estoy de acuerdo con Weboide. Pero hay una manera simple de lograr este objetivo.
1) habilite el módulo apache userdir.
Esto habilitará el módulo Apache userdir. Ahora puede poner el contenido del sitio web en
~/Webroot/
o dentro de su directorio de inicio.Nota: la carpeta predeterminada es
~/public_html
2) Haz los cambios necesarios a
/etc/apache2/mods-enabled/userdir.conf
.3) Reinicia el apache
Ahora puede acceder al sitio navegando por su navegador para http: // ip-address / ~ username . También puede establecer un host virtual para este sitio.
Si está buscando ejecutar archivos php, necesita hacer un paso más
edite
/etc/apache2/mods-enabled/php5.conf
y comente las siguientes líneas:Luego reinicie el apache.
Eso es. Estás listo.
Ref: https: //wiki.ubuntu.com/UserDirectoryPHP
Espero que esto ayude. Si tiene dificultades, no dude en publicarlo aquí.
fuente
Esta no es una buena práctica para lograr lo que quieres.
Si está utilizando PHP, es posible que desee echar un vistazo a suexec , suphp o php-fpm y fastcgi .
Tiene razón sobre su problema, este es un problema de permiso en el hecho de que sus
Webroot
archivos son propiedad de un usuario diferente dewww-data
.Aquí hay una solución no tan mala para solucionar su problema. Tenga en cuenta que probablemente necesitará usar sudo o iniciar sesión como root. ¡Asegúrese de comprender completamente todos los comandos que ejecutará!
Cambie su
Webroot
carpeta y subcarpetas y archivos para establecer la propiedad del grupowww-data
y establecer los permisos adecuados:Editar: Tenga en cuenta que seguramente necesitará ejecutar esos comandos nuevamente si agrega archivos / carpetas con su cuenta de usuario habitual.
fuente
Hice casi lo mismo con Debian Lenny, pero cambié al modo no hax, configuré Apache correctamente. Pero con enlace simbólico:
Creo que debería verificar el permiso de ~ y ~ / Webroot , creo que su directorio (~) está protegido contra lectura, es decir, debe ejecutar esto:
Para establecer los permisos correctos, use:
Creo que debería ayudar, pero dame más información sobre esto. Te sugiero que salgas del Webroot de tu directorio, ej. a / home como yo , porque puede ser un problema de seguridad.
"#" significa permisos de raíz , ej. escribe sudo antes de los comandos; "$" significa permiso de usuario único
fuente
Debe verificar los permisos no solo sobre su destino, sino también sobre sus padres.
fuente
Me enfrenté a este problema. Pero no me gustó la idea de cambiar el grupo de mi directorio de inicio a www-data. Este problema simplemente se puede resolver modificando el archivo de configuración para virtualHost. Simplemente configure la etiqueta del directorio para incluir estos
El
Require all granted
es una nueva característica, supongo; que tiene un valor predeterminado dedenied
.Consulte esta página como referencia: http://httpd.apache.org/docs/current/mod/core.html#directory
fuente