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/www
ubicació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!!
Apache es el proceso que necesita tener los permisos apropiados para acceder /var/www
. Apache suele ser un usuario _www
de grupo _www
en 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 _www
con grupo _www
. Si está utilizando otra configuración, verifique el archivo de configuración apropiado para los mismos parámetros y reemplácelo _www
en la siguiente solución si la suya es diferente.
/var/www
con:chgrp -R _www /var/www
chmod -R 775 /var/www
Eso debería arreglar el error.
Como paso adicional, puede cambiar la propiedad de /var/www
y _www
luego agregarse a ese grupo para mantener sus privilegios de lectura y escritura.