miarroba - Reparando 403 Forbidden en el directorio de alias con Apache
error 403 prestashop (11)
Estoy intentando configurar un alias para señalar algún directorio en mi sistema de archivos no en DocumentRoot. Ahora recibo una respuesta Prohibida 403. Estos son los pasos que se deben seguir: 1. edite http.conf, agregando:
Alias /example "/Users/user/Documents/example"
entonces...
<Directory "/Users/user/Documents/example">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all</Directory>
2. establecer permisos con chmod en terminal:
chmod 755 /Users/user/Documents/example
Ahora debería funcionar? en cambio, tengo prohibido el acceso. Este es el resultado de error_log:
[Sun Jul 24 06:57:57 2011] [error] [client xx.xx.xx.xx] (13)Permission denied: access to /example denied
Ciertamente se ve bien, haz un chequeo de cordura.
reinició Apache
verificar grupo y propiedad del usuario
Creo que las citas se pueden quitar
hay algo en / Users / user / Documents / example?
prueba 777
-sean
Compruebe el permiso en /Users/user/Documents/
, /Users/user/
(los permisos de nivel superior se aplican primero ...)
/bin/su
en el usuario que ejecuta Apache (como www, www-data) y cat
a file en el directorio /Users/user/Documents/example
. Eso podría indicarle problemas de permisos con su configuración.
Después de perder mucho tiempo, solucioné el problema y quería compartirlo para ahorrarle tiempo.
Todos los caballeros de arriba y en otros mensajes tienen algunas partes correctas en sus respuestas, pero debajo está la suma
En su archivo "/etc/apache2/httpd.conf":
1- cambia la raíz de tu documento
Original: DocumentRoot "/Library/WebServer/Documents"
Change to: DocumentRoot "/Users/yourname/www"
2- cambio
Original:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
Cambiar a:
<Directory /Users/yourname/www>
Options FollowSymLinks Includes ExecCGI
AllowOverride None
Order deny,allow
Deny from all
</Directory>
3- Cambio:
Original:
<Directory "/Library/WebServer/Documents">
Cambiar a:
<Directory "/Users/yourname/www">
4- Finalmente, puede que no necesites este paso si eres el usuario de la cena, esto es para establecer la permición correcta en tu nueva carpeta raíz
chmod 755 /Users/yourname/www
Espero que esto ayude
Estaba teniendo este problema en OS X también. Resultó que gliptak tenía razón, pero tengo más detalles para agregar.
Los dos estamos intentando configurar un directorio virtual para una carpeta bajo la carpeta de inicio de un usuario; Creo que es por eso que estamos teniendo el problema. En mi caso, tuve la siguiente configuración:
- La carpeta de inicio es
/Users/calrion
. - La carpeta del directorio virtual es
/Users/calrion/Path/to/www
. - Hay un enlace simbólico
/Users/calrion/Path
apunta a/Volumes/Other/Users/calrion/Path
.
El problema era que el usuario y el grupo _www
(que Apache ejecuta como en OS X) carecían de acceso de ejecución a /Users/calrion
y /Volumes/Other/Users/calrion
.
Al ejecutar chmod o+x /Users/calrion
y chmod o+x /Volumes/Other/Users/calrion
resolvió el problema (en OS X 10.7.4).
La regla aquí es que Apache requiere que se ejecute el acceso a todas las carpetas en la ruta para poder servir archivos. Sin esto, obtendrás un HTTP 403 (prohibido).
Estaba teniendo exactamente este mismo problema. Lo que encontré fue que SE_Linux estaba habilitado, y el contexto de seguridad de los archivos en mi directorio de Aliased era incorrecto, faltando httpd_sys_content_t.
Puede ver el contexto de seguridad con ls -Z
. Si sus archivos / carpetas no tienen httpd_sys_content_t, ¡apache no los almacenará! Puede agregar el contexto adecuado con algo como chcon -R --type=httpd_sys_content_t /new_html_directory
. Esto cambiará el contexto de los archivos actualmente en el directorio, pero no los archivos que se agreguen después (para eso tendrá que trabajar con semanage). Su otra opción es simplemente dejar los archivos en / var / www.
Estas son todas muy buenas respuestas. Ninguno de ellos funcionó para mí.
Tengo un alias especificado en el servidor OSX que apunta a un directorio de usuario. Pasé un largo tiempo chmodding y jugando con el usuario _www, agregando permisos ejecutables recursivamente, desinstalando macports y todo tipo de cosas tratando de hacer que esto funcione. Intenté 777. No. Ni idea de por qué no estaba funcionando.
Finalmente, acabo de marcar la casilla de verificación "carpeta compartida" en el Buscador para esa carpeta, y funcionó, en el dominio especificado, con php activo, de la manera que yo quería. : / ... así que fue fácil.
Esto es lo que me solucionó:
en /etc/apache2/httpd.conf
<Directory />
Options FollowSymLinks
AllowOverride None
# REMOVE THESE LINES
#Order deny,allow
#Deny from all
# ADD THIS LINE
Require all denied
</Directory>
Este cambio implementa los cambios realizados en la actualización de Apache de 2.2 a 2.4 . La actualización de OSX Yosemite trajo consigo la actualización de Apache (PSA: si planea actualizarse a Yosemite, haga un presupuesto de una semana para arreglar todo lo que se rompe).
Lo extraño es que ya tengo apache 2.4 funcionando, y de repente se rompe de nuevo ...
PSA: si está planeando actualizarse a Yosemite, haga un presupuesto de una semana para arreglar todo lo que se rompe
La última gota;) Local requerido en la entrada del directorio ...
me gusta
<Directory "/Users/user/Documents/example">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local
Order allow,deny
Allow from all
</Directory>
si todo lo demás no funciona (corregir alias, entrada de directorio en httpd.conf y corregir mod / usr / grp).
tenga en cuenta: si coloca su sitio en el espacio de usuario, ¡el usuario de apache (corriendo httpd) necesita acceso a su hogar!
SELinux fue el culpable para mí. Si tiene este problema en un cuadro de Linux y sus permisos de alias y archivos son correctos, intente hacer un "setenforce 0" para poner SELinux en modo permisivo. Eso hizo el truco para mí.
Solución rápida:
Use estos comandos como root en Linux:
find /var/www -type d -exec chmod 755 {} /;
find /var/www -type f -exec chmod 644 {} /;
Tuve que revertir mi archivo de configuración de Apache y luego configurar el servidor nuevamente. encontró esto útil: https://apple.stackexchange.com/questions/41143/how-to-revert-default-mac-apache-install-to-original