1 votos

Los permisos de los apaches

Estoy intentando que LAMP funcione en OSx Lion y tengo un pequeño problema.

Tengan Apache, MySQL y PHP configurados y funcionando bien. He activado "Sitio web" en Compartir en Configuración. Eliminé la carpeta original ~/user_name/Sites y creé un enlace simbólico de Sites a un directorio con ~/user_name.

Ahora cuando trato de correr http://localhost/~nombre_de_usuario Lo entiendo:

Prohibido No tienes permiso para acceder a /~nombre_de_usuario en este servidor.

¿Dónde y cómo cambio estos permisos?

3voto

Leeor Puntos 269

Cuando se accede a sitios web en su "localhost", se requieren varios permisos. El contenido del localhost puede estar en su directorio de sitios, en cuyo caso, estos comandos pueden ayudar a prevenir cualquier mensaje "Prohibido".

Asegúrate de que el directorio de usuarios permita el acceso al directorio de lectura:

cd /
sudo chmod -v 755 Users

Asegúrate de que el directorio de usuarios permita el acceso al directorio de lectura:

cd Users
sudo chmod -v 755 username

Asegúrate de que tu directorio de sitios permita el acceso al directorio de lectura:

cd ~
chmod -v 755 Sites

Cada subdirectorio de Sitios necesita acceso de lectura:

cd ~/Sites
find ~/Sites -type d -print -exec chmod 755 {} \;

Todos los archivos de los sitios y subdirectorios necesitan acceso de lectura:

cd ~/Sites
fing ~/Sites -type f -print -exec chmod 644 {} \;

Apache usa el grupo _www así que, para darle a Apache acceso completo a todo en el directorio de Sitios, establece los atributos extendidos con esto:

chmod -R +a "group:_www allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" ~/Sites

1voto

Adi Puntos 1105

Asumiendo que poca gente usa OS X en un entorno de producción, es bueno dejar que Apache haga lo que quiera con el documento Root. Puede hacerlo con la característica de "herencia" de las ACL:

sudo chmod -R +a "group:_www allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Library/WebServer/Documents/

El comando anterior dará al grupo predeterminado de apache acceso completo de lectura/escritura a todo lo que se encuentra en el documento predeterminado root y aplicará banderas de "herencia" para que cualquier nuevo archivo/directorio que se cree también pueda ser escrito por apache, incluso si apache no lo ha creado.

También me gusta dirigir este comando:

sudo chmod -R +a "group:staff allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Library/WebServer/Documents/

Lo que dará a los usuarios del "staff" (básicamente eso significa todos los usuarios "reales") acceso total a todo, incluso a los archivos creados por apache.

-1voto

Loren Charnley Puntos 100

Podrías usar chmod para establecer los permisos en la carpeta donde se encuentra su sitio. Asegúrate de que el usuario Apache se está ejecutando como puede leer cualquier cosa en esa carpeta.

  1. Terminal abierta
  2. cd /path/to/website
  3. chmod -r 644 .

Eso debería bastar. Tengan en cuenta que esto hará que sus archivos de fuente php sean legibles para cualquiera.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X