30 votos

¿Cómo arreglar el 403 en el Apache integrado de Mac OS X?

Estoy tratando de establecer un entorno local en mi nuevo Macbook Air 13": Apache incorporado con mi propio DocumentRoot , PHP, y MySQL. Suelo actualizar /etc/hosts sólo para ejecutar mis sitios web locales con un bonito permalink: local/example . En cuanto a las referencias, suelo comprobarlas:

Esta vez simplemente estoy recibiendo un 403 Prohibido error cada vez que pulso 127.0.0.1 , localhost o local . Primero vi a través del terminal que tanto Apache como PHP se están ejecutando (aunque no puedo ver las páginas de PHP); luego actualicé todos los permisos de acuerdo a Permisos de Apache Ahora estoy desesperado. Aquí están las configuraciones relevantes de Apache:

  • /etc/hosts ( ver archivo - se ha añadido una línea)
  • /etc/apache2/httpd.conf ( ver archivo - actualizó el DocumentRoot )
  • /etc/apache2/users/joao.conf ( ver archivo - creó este archivo)
  • /etc/apache2/extra/httpd-vhosts.conf ( ver archivo - actualizado VirtualHost )

Parece que Apache me está negando de alguna manera el acceso a mi DocumentRoot (que por cierto es ~/Sites ). Porque ~/Sites es en realidad un enlace simbólico, entonces traté de actualizar DocumentRoot con las siguientes rutas (todas apuntan al mismo directorio):

  • ~/Sites
  • /Users/joao/Sites
  • /Users/joao/Dropbox/Workflow/Sites (el original directorio)

Sigue lanzando 403 . ¿Alguna idea de cómo arreglar/depurar esto?

Actualización rápida - esto es lo que mi /var/log/apache2/joao.pt-error_log parece:

[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied

2voto

sudip Puntos 111

Paso 1: Cree un directorio "Sites" en /users/USERNAME

Paso 2: sudo vi /etc/apache2/httpd.conf

Descomente las siguientes líneas:

LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule include_module libexec/apache2/mod_include.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Include /private/etc/apache2/extra/httpd-userdir.conf

Cambia "Usuario" y "Grupo" por lo siguiente :

User USERNAME
Group staff

Paso 3: sudo vi /etc/apache2/users/USERNAME.conf

Añade las siguientes líneas :

<Directory "/Users/USERNAME/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>

Paso 4: vi /etc/apache2/extra/httpd-userdir.conf

Descomente la siguiente línea:

Include /private/etc/apache2/users/*.conf

1voto

BobK77 Puntos 29

OP describe un problema que surge al tratar de configurar un entorno de servidor web local en un Mac, utilizando Apache, PHP y MySQL, con un DocumentRoot personalizado, e incluyendo una mención de usar VirtualHost (vhost). El OP informa que obtiene un error 403 Forbidden cuando accede a localhost.

Un artículo en coolestguidesontheplanet describe cómo la configuración de hosts virtuales en Apache provoca la "pérdida de Localhost". En otras palabras, la causa principal del problema del operador podría ser una habilitación incompleta de los vhosts.

"Una vez que [los hosts virtuales están] configurados, se pierde el documento antiguo Root anteriormente en /Library/WebServer/Documents o accedido en el navegador en http://localhost -- se obtiene un error 403 Forbidden".

El artículo continúa explicando cómo arreglar el localhost en un entorno vhost.

Add these lines to file /etc/apache2/extra/httpd-vhosts.conf:

   <VirtualHost *:80> 
   ServerName localhost 
   DocumentRoot /Library/WebServer/Documents/ 
   </VirtualHost>

También explica cómo solucionar "los problemas de permisos con cosas como las actualizaciones y la autenticación" asociados con "el uso de la carpeta Users/username/Sites para los vhosts".

Instead of using the default UID _www, use your own User and Group.

In the terminal, enter command 

    id

Find your UID and GID. 
Update file httpd.conf
In section <IfModule unixd_module>
Change User and Group to your local UID and GID.

https://coolestguidesontheplanet.com/set-virtual-hosts-apache-mac-osx-10-10-yosemite/

0 votos

Gracias por su respuesta :) Desgraciadamente, las respuestas cortas como ésta no proporcionan suficientes detalles o contexto para ayudar a muchos usuarios. En su lugar, ¿podría editar su respuesta para incluir un resumen del contenido al que enlaza? Esto hará que tu respuesta sea más completa y ayudará a preservarla para otros usuarios en el futuro.

0 votos

Gracias, Monomeeth. Te agradezco los comentarios. He actualizado la respuesta.

1voto

kiusau Puntos 11

Estoy trabajando en un entorno MacOS 10.15.4 con una carpeta /Sites migrada desde un Mac mucho más antiguo. He utilizado el instrucciones de etresoft para configurar mi servidor.

Todo siguió bien hasta que llegué al punto "¡Funciona!". En el siguiente paso recibí el mismo código de error HTTP que tú, es decir, 403. Este problema se solucionó cambiando los valores del Usuario y Grupo directivas en el archivo /private/etc/apache2/httpd.conf de _www a las de mi carpeta /Sites:

Usuario nombre de usuario

Personal del grupo

Después de hacer estas dos ediciones muy importantes, me aseguré de que los permisos para todas mis carpetas y archivos se establecieran en lectura y escritura -- es decir, 755 y 644 respectivamente, y apliqué el comando sudo apachectl restart. La configuración de los permisos para el contenido de su carpeta /Sites puede lograrse fácilmente en el panel GetInfo de la carpeta /Sites. Desbloquee el panel y busque el icono del engranaje.

Mi carpeta /Sites está ahora disponible como un sitio web navegable con funcionalidad PHP. Simplemente introduzco localhost/~ nombre de usuario / en la ventana de mi navegador y hacer clic en "Return". A partir de ahí es sólo una cuestión de establecer la ruta adecuada a su contenido.

Pues a mí me ha funcionado. Tal vez pueda funcionar para ti.

0voto

Stephen R. Puntos 84

Estaba usando ACL's para establecer los permisos, siguiendo las instrucciones en " Cómo configurar los permisos de archivos y directorios de Apache en Mac OS X ", pero sigue recibiendo:

[Wed Feb 12 15:43:51 2014] [error] [client ::1] (13)Permission denied: access to /trace/trace.php denied (filesystem path '/Library/WebServer/Documents/trace/trace.php') because search permissions are missing on a component of the path

Luego leí " (13) Permiso denegado " (vinculado a en Respuesta de João Ramos ) y traté de añadir "ejecutar" a la ACL. Eso funcionó.

0voto

Stefan Pintilie Puntos 101

Reinicie su ordenador Esto me ha funcionado.

Pero primero de todo lo que había cambiado el usuario bajo apache a mí mismo (de _www), ya que es un entorno local / prueba. Así que en última instancia tiene algo que ver con los permisos.

A continuación, reinicie la máquina, al igual que Windows ;).

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