permisos de Apache

1

Estoy tratando de hacer que LAMP funcione en OSx Lion y estoy teniendo un pequeño problema.

Haga que Apache, MySQL y PHP estén configurados y funcionen bien. Han activado "Sitio web" en Compartir en Configuración. Se eliminó la carpeta original ~ / user_name / Sites y se creó un enlace simbólico de Sites a un directorio conint ~ / user_name.

Ahora, cuando intento ejecutar enlace , obtengo:

  

Prohibido No tiene permiso para acceder a / ~ nombre_usuario en este   servidor.

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

    
pregunta David 10.12.2011 - 19:17

3 respuestas

2

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

Asegúrese de que el directorio de Usuarios permita el acceso al directorio de lectura:

cd /
sudo chmod -v 755 Users

Asegúrese de que el directorio del nombre de usuario permita el acceso al directorio de lectura:

cd Users
sudo chmod -v 755 username

Asegúrese de que su 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 {} \;

Cada archivo en sitios y subdirectorios necesita acceso de lectura:

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

Apache usa el grupo _www, por lo tanto, para darle a Apache acceso completo a todo lo que hay en el directorio de Sitios, establezca 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
    
respondido por el Tom Jones 16.08.2012 - 04:46
1

Suponiendo que pocas personas utilicen OS X en un entorno de producción, es bueno dejar que Apache haga lo que quiera con la raíz del documento. Puede hacer esto con la función de "herencia" de 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 le dará al grupo de apache predeterminado acceso completo de lectura / escritura a todo en la raíz del documento por defecto y aplicará banderas de "herencia" para que cualquier nuevo archivo / directorio creado también pueda ser escrito por apache, incluso si apache no creó ellos.

También me gusta ejecutar 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 "personal" (básicamente, eso significa que todos los usuarios "reales") tendrán acceso completo a todo, incluso a los archivos creados por apache.

    
respondido por el Abhi Beckert 13.08.2012 - 01:44
-1

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

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

Eso debería hacerlo. Tenga en cuenta que esto hará que sus archivos fuente de php sean legibles para cualquier persona.

    
respondido por el mikezter 10.12.2011 - 21:04

Lea otras preguntas en las etiquetas