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:
-
He intentado añadir un vhost en
/etc/apache2/extra/httpd-vhosts.conf
<VirtualHost *:80> ServerName localhost DocumentRoot /Library/WebServer/Documents/ </VirtualHost>
-
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:
- Cargar el módulo
mod_userdir
en/etc/apache2/httpd.conf
- Al final de la
httpd.conf
asegúrese de cargarhttpd-userdir.conf
- En
httpd-userdir.conf
incluir un archivo local en/etc/apache2/users/<username>.conf
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) ohttp://localhost/mypage.html
(en caso de que el dir sea por defecto)