2 votos

Corregir los permisos en Apache

Estoy tratando de usar el servidor Apache incorporado en MacOS mojave.

En mi navegador, al acceder a http://localhost/~myusername/mypage.html (en el caso del usuario dir) o http://localhost/mypage.html (en el caso del dir por defecto) ambos arrojan el mismo error en el navegador:

Forbidden You don't have permission to access /mysite/ on this server.

Estoy tratando de hacer ambos el dir por defecto /Library/WebServer/Documents y un dir de usuario ~/myusername/Sites funciona. He probado dos soluciones:

  1. He intentado añadir un vhost en /etc/apache2/extra/httpd-vhosts.conf

    <VirtualHost *:80>
    ServerName localhost
    DocumentRoot /Library/WebServer/Documents/
    </VirtualHost>
  2. Intenté añadir un myusername.conf archivo en /etc/apache2/users con el siguiente contenido

    <Directory "/Users/myusername/Sites/">
    Options Indexes MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>

¿Existe una guía para entender los errores de permisos en Mojave usando Apache enviado por Apple?

EDIT: Parece que el respuesta aceptada aquí me resolvió el permiso de lectura. De la respuesta:

  1. Cargar el módulo mod_userdir en /etc/apache2/httpd.conf
  2. Al final de la httpd.conf asegúrese de cargar httpd-userdir.conf
  3. En httpd-userdir.conf incluir un archivo local en /etc/apache2/users/<username>.conf
  4. Coloque una sección de directorio en ese archivo, que contenga las reglas para el directorio donde se encuentran los archivos de su servidor web:

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

El acceso de escritura a los archivos sigue siendo un problema : Apache no puede editar un archivo si la propiedad es mía (el usuario administrador). Todavía me estoy preguntando si hay una forma adecuada de arreglar el permiso sin estropear los permisos de cada directorio cada nuevo proyecto.

Este es el script que estoy usando para probar el permiso de escritura:

<?php
    echo 'Current script owner: ' . get_current_user();
    echo 'Current user:' . system('whoami');
    $current = file_get_contents('people.txt');
    $current .= "John Smith\n";
    file_put_contents($file, $current);

Me sale el error:

Advertencia: file_put_contents(people.txt): failed to open stream: Permiso denegado

1 votos

¿Qué acción produce el error de permiso?

2 votos

Todas las acciones desde el navegador: cuando intento acceder a http://localhost/~myusername/mypage.html (en el caso del usuario dir) o http://localhost/mypage.html (en caso de que el dir sea por defecto)

1voto

Will Puntos 552

Parece que la respuesta aceptada me ha solucionado (al menos para el directorio de usuarios): PHP no funciona después de actualizar a OS Mojave He probado docenas de soluciones (y no las he revertido todas), así que no estoy totalmente seguro de que esos sean los únicos pasos necesarios

De la respuesta:

  1. Cargar el módulo mod_userdir en /etc/apache2/httpd.conf
  2. Al final de la httpd.conf asegúrese de cargar httpd-userdir.conf
  3. En httpd-userdir.conf incluya un archivo local en /etc/apache2/users/<username>.conf
  4. Coloque una sección de directorio en ese archivo, que contenga las reglas para el directorio donde se encuentran los archivos de su servidor web:

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

1voto

n8felton Puntos 56

Apache en MacOS Server se ejecuta como el _www usuario. Intente conceder a este usuario acceso de escritura al directorio con una entrada ACL.

chmod +a "_www allow list,search,add_file,add_subdirectory,delete_child,write,append,file_inherit,directory_inherit" "/Users/<user>/Sites"

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