¿Qué permisos debo otorgar para la configuración de mi servidor?

Estoy tratando de tener una configuración de servidor para mi aplicación web localmente en mi MacBook Pro. Instalé Apache, PHP con éxito y verifiqué el código de mi aplicación web en la /var/wwwubicación. Ahora hay un script en mi aplicación que escribe un archivo en formato /var/www/someDir. Para hacerlo estoy usando la siguiente línea:

$file = fopen($_SERVER['DOCUMENT_ROOT']."/abc.ini", "w");

Y en la ejecución veo el siguiente error en el registro de errores.

PHP Warning: fopen(/var/www/someDir/abc.ini): failed to open stream: Permission denied in /private/var/www/myscript.php on line 6

someDir es propiedad de usuario abhilash.goje(ese soy yo) y grupo wheel. He intentado dar los siguientes permisos.

$sudo chmod -R 755 www -> No resolvió el problema
$sudo chmod -R 775 www -> No resolvió el problema
$sudo chmod -R 777 www -> Resuelto el problema, pero no seguro.

el permiso 777 funciona, pero no prefiero usar esta solución ya que no es nada segura. Por favor, déjame cómo configuro los permisos correctos para esta carpeta.

¡¡Gracias de antemano!!

Respuestas (1)

Apache es el proceso que necesita tener los permisos apropiados para acceder /var/www. Apache suele ser un usuario _wwwde grupo _wwwen MacOS. Verifique esto con:

 grep -e '^Group\|^User' /etc/apache2/httpd.conf

Se deben imprimir dos líneas. Mi salida se parece a:

User _www
Group _www

Esto significa que en mi sistema, los procesos de Apache se ejecutan como usuario _wwwcon grupo _www. Si está utilizando otra configuración, verifique el archivo de configuración apropiado para los mismos parámetros y reemplácelo _wwwen la siguiente solución si la suya es diferente.

  1. Cambiar el grupo de /var/wwwcon:chgrp -R _www /var/www
  2. Cambie los permisos para agregar escritura grupal con:chmod -R 775 /var/www

Eso debería arreglar el error.

Como paso adicional, puede cambiar la propiedad de /var/wwwy _wwwluego agregarse a ese grupo para mantener sus privilegios de lectura y escritura.