Me acaba de instalar Mac OS X Yosemite fresco. He configurado Apache y chmodded «users/usuario/Sites» a 755. Cuando llegué a localhost puedo recibir un 403 Forbidden "You don't have permission to access /on this server". Ocurre lo mismo con los otros sitios a los que puedo añadir a mi archivo de hosts.

He intentado configurar los directorios de usuario ayuda de este post. Los chicos en este MacRumors hilo saber que hay un Apache problema, pero no ofrecen una gran cantidad de sugerencias.

Mi permisos de directorio de este aspecto

drwxr-xr-x  29 root             wheel  1054 Aug 11 07:30 /
drwxr-xr-x   6 root             admin   204 Aug 11 07:29 /Users/
drwxr-xr-x+ 26 zachshallbetter  staff   884 Aug 11 11:57 /Users/zachshallbetter/
 0: group:everyone deny delete
drwxr-xr-x   5 zachshallbetter  staff   170 Aug 11 10:16 /Users/zachshallbetter/Sites

¿Alguien puede ofrecer alguna sugerencia o ayuda? Aquí están los enlaces a mi hosts y httpd.conf archivos y los registros de error de referencia.

  • A menos que usted acaba de tener un par de secuencias de comandos web, usted debe mirar en configuración de Apache Virtual Hosts en Mac OS X en lugar de permitir a los directorios de usuario.
  • Dos cosas: 1) La actualización restablece el httpd.conf, así que usted necesitará para volver a incluir el vhost conf y volver a habilitar los módulos requeridos, como mahi describe a continuación. 2) en el «Directorio» de la sección de cada vhost definición, agregar «Requieren que todos los concedido». Esto reemplaza el viejo «Orden de deny, allow» directivas. (Parece que no me duele nada dejarlos en su lugar, sólo asegúrese de añadir el nuevo también.)

7 Comentarios

  1. 80

    NO quiero abrir la totalidad de su unidad de disco duro para el proceso del servidor web. De hecho, las líneas de 215-217 de httpd.conf decir:

    # Deny access to the entirety of your server's filesystem. You must
    # explicitly permit access to web content directories in other
    # <Directory> blocks below.
    

    Apache 2.4 (OSX 10.10 Yosemite) tiene una estructura diferente de Apache 2.2 (OSX 10.9) para la Directorio de la directiva en el Módulo mod_authz_core.

    EDICIÓN: Si está configurando Apache desde el INICIO, por favor, siga este conjunto de instrucciones a la instalación de apache y php en OSX 10.10 Yosemite.

    Asumiendo que usted tiene mod_userdir.so activado, el problema está dentro de tu usuario .conf archivo (/etc/apache2/users/username.conf), editar (o añadir) la siguiente.

    Apache 2.2:

    <Directory "/Users/jnovack/Sites/">
      Options Indexes MultiViews
      AllowOverride All
      # OSX 10.9 /Apache 2.2
      Order from deny, allow
    </Directory>
    

    Apache 2.4

    <Directory "/Users/jnovack/Sites/">
      Options Indexes MultiViews
      AllowOverride All
      # OSX 10.10 /Apache 2.4
      Require all granted
    </Directory>
    
    • Gracias por añadir esto a la discusión. He editado mi respuesta sugieren que la gente continúe leyendo otras respuestas para detalles de seguridad.
    • Esto no tiene ningún efecto aparente para mí. Puede mod_userdir.so ser discapacitado? (La mía era originalmente) Es el username.conf supone que para mi usuario de Mac o el usuario de Apache?
    • Sí, mod_userdir.so está deshabilitada de forma predeterminada. Por favor, siga las instrucciones completo conjunto publicado en mi tercer párrafo, para establecer desde el principio. Esta respuesta sólo las direcciones de los cambios entre 2.2 y 2.4 dentro de mod_userdir.so.
    • Gracias. He añadido Require all granted a todos mis vhost de httpd.conf y funciona como un encanto.
    • Esto parece que no funciona para mí. Acabo de encontrar un más completo de instrucciones en el sitio web oficial de apple: discussions.apple.com/docs/DOC-3083
    • Oh mi dios, yo podría darte un beso. Es el Require all granted que fue el doozy. Dios maldita sea, esta es la razón por la que yo odio la actualización de Mac

  2. 45

    Editar el archivo:
    /private/etc/apache2/httpd.conf

    en línea 250 (en Yosemite) cambio:

    Options FollowSymLinks Multiviews
    

    a:

    Options FollowSymLinks Multiviews Indexes
    

    a continuación, en la Terminal ejecutar:

    sudo apachectl restart
    
    • Gracias me funciona.
    • Si sus documentos está vacío, debe agregar «Índices» para mostrar la lista de archivos y carpetas.
    • ojalá que yo pudiera dar u 1000 abrazos ahora!!!
    • Esto funciona de la misma para El Capitan por cierto.
    • esto no funciona para mí en El Capitan
  3. 29

    Esto podría ser muy tarde la respuesta pero me ha seguido la mayoría de Desbordamiento de la Pila de soluciones, Ninguno de ellos me ayudó, por diversas razones. Así que lo hice restablecer el dispositivo como un fresco de Yosemite OS para obtener este localhost trabajo en Mac Yosemite (con enlaces Simbólicos demasiado),

    Pasos que hice exactamente :

    sudo nano /etc/apache2/httpd.conf
    

    Descomentar las siguientes líneas:

    #LoadModule php5_module libexec/apache2/libphp5.so
    to
    LoadModule php5_module libexec/apache2/libphp5.so
    
    
    #LoadModule userdir_module libexec/apache2/mod_userdir.so
    to
    LoadModule userdir_module libexec/apache2/mod_userdir.so
    
    
    #Include /private/etc/apache2/extra/httpd-userdir.conf
    to
    Include /private/etc/apache2/extra/httpd-userdir.conf
    

    Guardar y Salir (Ctrl+X pulse Enter y pulse S e introduzca de nuevo)

    sudo nano /etc/apache2/extra/httpd-userdir.conf
    

    y descomentar la siguiente línea en la línea 16:

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

    Guardar y Salir (Ctrl+X pulse Enter y pulse S e introduzca de nuevo).

    Ahora ir a apache carpeta de Usuarios para comprobar su archivo de configuración existe o no

    cd /etc/apache2/users/
    

    si usted no tiene el archivo de configuración en esta carpeta, crear una

    sudo nano /etc/apache2/users/<**YOUR USERNAME**>.conf
    

    Reemplazar <YOUR USERNAME> con el nombre de la máquina (tipo de whoami en la terminal y escriba ese nombre).

    después de la creación .conf archivo de copia debajo de las líneas en el archivo

    <Directory "/Users/<YOUR USERNAME>/Sites/">
        AddLanguage en .en
        LanguagePriority en fr de
        ForceLanguagePriority Fallback
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from localhost
         Require all granted
    </Directory>
    

    guardar y Salir

    Ahora reinicie el apache

    sudo apachectl restart
    

    Ahora ve a tu navegador y escriba localhost, que debería funcionar como se esperaba,

    Sólo como una Nota: si no funciona incluso después de que pruebe a reiniciar el equipo

    crear index.html como exactamente índice.html.es que usted debe encontrar aquí:

    open /Library/Webserver/Documents/
    

    haga clic derecho en el índice.html.en y duplicarlo para index.html dejando original como es

    inténtelo de nuevo en el navegador y si tiene éxito, puede eliminar el duplicado del archivo

    Sólo para ser claros, deje el archivo original index.html.en donde está, intacto y sin daños a lo largo de este paso.

    No sé por qué he tenido que tomar esta misteriosa desvío – probablemente algo locales para mi equipo, pero si usted está teniendo problemas después de seguir la guía de arriba, a ver si ayuda.

    Enlaces simbólicos :

    si tiene éxito, en el Navegador debería ver

    It works!
    

    Ahora crear un enlace simbólico para cualquier proyecto.

    ln -s <Path_to_your_Project(index_file)> <Path_to_webroot>
    

    Por ejemplo si usted tiene un proyecto en la carpeta Documentos ,entonces el punto de webroot a su archivo de índice

    ln -s /Users/<YOUR USERNAME>/Documents/project//Library/Webserver/documents/projectlink 
    

    usted puede ser que necesite permiso para crear un enlace simbólico (por encima de comando con Sudo)

    Configurar apache para seguir enlaces simbólicos ( Gracias a tomvon, no tengo suficientes puntos para votar)

    sudo nano /private/etc/apache2/httpd.conf
    

    en línea 250 (en Yosemite) cambio:

    Options FollowSymLinks Multiviews
    

    a:

    Options FollowSymLinks Multiviews Indexes
    

    a continuación, en la Terminal ejecutar:

    sudo apachectl restart
    

    Ahora ir a localhost/projectlink para ver si su proyecto de archivo de índice se muestra aquí en el navegador.

    Feliz Codificación..

    • Muy útil, gracias por los descriptivos de los pasos!
    • Funcionaba de maravilla..Gracias man 🙂
    • Esto funcionó para mí en El capitan.
    • Funciona a la perfección. Instrucciones similares en este artículo que enumera también las diferencias en los pasos de antiguas versiones de OSX (antes de Yosemite) – techzog.com/tips/mac-osx/set-web-server-mac-osx
    • Gracias! funcionó bien en Mac OS Sierra. En mi caso, me faltaba la línea: #Include /private/etc/apache2/extra/httpd-userdir.conf para Incluir /private/etc/apache2/extra/httpd-userdir.conf
    • Trabajó para mí en la Sierra también. Añadido Include /private/etc/apache2/users/*.conf a httpd-userdir.conf y todo salió bien. Gracias/

  4. 8

    El asesoramiento en este artículo me ayudó.

    Específicamente el «Yosemite Sólo» sección:

    Primer lugar, existe una directiva que ayuda a proteger su equipo por negar el acceso a todo el sistema de archivos por defecto. Te voy a mostrar cómo quitar la presente directiva, ya que me parece que es más fácil en una máquina pensada para el desarrollo. La sección de código se ejecuta desde la línea de 220 a través de 223. Puede comentar (lugar ‘#’ delante de cada línea) o simplemente eliminar esta sección.

    Y la sección es …

    <Directory />
     AllowOverride none
     Require all denied
    </Directory>
    

    Nota:

    Como otros han seguido en esto con más detalle, el método descrito anteriormente puede ser inseguro.

    • Toda la estructura de directorios es bloqueado por una razón. Ver a @jnovack la respuesta de abajo para una mejor solución. Versión corta: Permitir/Denegar ha cambiado la sintaxis en Apache 2.4, por lo que el viejo declaraciones anteriores con los archivos son ignorados.
  5. 2

    Hay 2 posibilidad por qué su localhost está prohibido, en primer lugar, puede ser debido a que su apache configuración no es correcta y en segundo lugar, puede ser debido a que se establece vhost y te olvidas de establecer localhost demasiado

    1. sudo nano /etc/apache2/extra/httpd-vhosts.conf
    2. Agregar este código

    `

    <VirtualHost *:80>
         ServerName localhost
         DocumentRoot "/Users/username/Sites"
         <Directory "Users/username/Sites">
            Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all
         </Directory>
     </VirtualHost>  
    
    1. Guardar y reiniciar el apache

    `

    sudo apachectl restart
    

    debe ser obras 🙂

  6. 0

    Sugerencias pueden centrarse en su propia cuenta de usuario específica conf de apache, pero por defecto esta configuración no puede ser cargado a todos.

    Editar el directorio de usuario de configuración del módulo:

    sudo vi /etc/apache2/extra/httpd-userdir.conf

    Quite el comentario de la de la de incluir en el directorio de usuarios de los archivos de configuración:

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

    Asegúrese de que usted tiene un directorio de usuario de configuración de acuerdo a nuestro propio nombre de usuario:

    sudo vi /etc/apache2/usuarios/.conf

    Asegúrese de que usted tiene una buena configuración para el directorio de inicio:

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

    Reiniciar apache (servidor web)

    sudo apachectl restart

    Comprobar su sitio!

  7. -3

    Acaba de crear el ‘Sitios’ carpeta en tu carpeta de usuario. Ir a

    cd ~

    mkdir ‘Sitios’

    • Como se puede ver en el post original, el directorio de Sitios que ya existe.

Dejar respuesta

Please enter your comment!
Please enter your name here