tutorial sierra mac instalar high php macos apache localhost privileges

php - sierra - Privilegios de escritura-localhost-Mac OSX



xampp mac (4)

Soy nuevo en el mundo mac y acabo de configurar mi servidor web. Utilicé la siguiente guía: http://echo.co/blog/os-x-107-lion-development-native-mamp-mysql-installer

He transferido mis sitios y bases de datos y todo va bastante bien. El único problema que tengo es con los permisos de escritura. Por ejemplo, hay un archivo de configuración que debe escribirse, y tuve que hacer clic derecho, ir a Obtener información y luego habilitar la lectura y escritura para el personal y para todos.

No puedo acceder y habilitar manualmente estos privilegios de escritura para cada archivo / carpeta. No necesité hacer esto usando WAMP e hice el desarrollo mucho más rápido.

Entonces, me pregunto acerca de 2 posibles soluciones: a) agregar mi cuenta de usuario a una lista blanca para el servidor local de modo que los 644 privilegios sean suficientes b) establecer los privilegios de escritura recursivamente


Soy el autor de la publicación del blog mencionado. Para los permisos de archivos del servidor web, querrá otorgar acceso de escritura al usuario _www para obtener archivos. Para config.inc.php, lo configuraría de varias maneras:

Tener el archivo y tener permisos de escritura.

$ sudo chown _www config.inc.php $ chmod u+w config.inc.php

Haga que su usuario sea dueño del archivo, cambie el grupo a _www, y otorgue permisos de escritura grupales:

$ sudo chgrp _www config.inc.php $ chmod g+w config.inc.php

O bien, si se siente cómodo permitiendo que todos los usuarios escriban, lo cual no recomendaría por razones de seguridad, déles a todos los usuarios la capacidad de escribir:

$ chmod a+w config.inc.php

Si el usuario _www debe escribir una carpeta completa, puede ser propietaria de la carpeta y de todos los archivos:

$ sudo chown -R _www:_www folder/

o puede otorgar permisos de escritura y ejecución a la carpeta por todos:

$ chmod a+wx folder/

La razón por la que chmod 774 le dio errores prohibidos fue porque el usuario _www cayó bajo el permiso ''4'', que es ''de solo lectura''. Para los directorios, un usuario necesita ''ejecutar'' para atravesar la carpeta. chmod 775 permitiría usuario y grupo a rwx, y otros a rx. Aquí hay más información sobre los permisos de archivos de Unix .

Además, su usuario podría conservar la plena propiedad y agregar ciertos permisos para el usuario _www en lugar de cambiar el nivel de acceso para TODOS los usuarios mediante el uso de listas de control de acceso.

$ sudo chmod -R +a ''_www allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit'' folder $ sudo chmod +a ''_www allow read,write'' config.inc.php

Si vas a seguir la ruta de las ACL, te sugiero que leas más para ver qué niveles de acceso necesitas proporcionar. Aquí hay un gran lugar para comenzar .


Recomiendo la configuración de los privilegios de escritura recursivamente para su raíz web.

Puede hacerlo a través de la consola / terminal usando chmod -R 774 /my/web/root . Para mí, el propietario y el grupo están configurados para: www-data:myUserName , que se puede configurar mediante chown . No te olvides de verificar quién es tu usuario web primero.

Editar: para una mejor comprensión, por qué no tienes acceso:

Chmod 774, cada número representa derechos específicos: usuario, grupo, otros. Si el usuario está configurado para www-data y el grupo para www-data (la mayoría de los usuarios en un sistema Unix están en un grupo que se nombra por su nombre de usuario). Por lo tanto, si no está en el grupo www-data , tiene que unirse, o tiene que cambiar de propietario (chown) o tiene que cambiar los permisos (chmod). Hay varios tutoriales disponibles para obtener más información.


Encontré que la mejor solución era cambiar los ajustes de usuario y grupo de apache. Las instrucciones se pueden encontrar en: http://paulmason.name/item/change-apache-user-group-in-lion-os-x

  1. Abrir Terminal y Entrar

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

  2. Encuentra y cambia el código http.conf de

    User _www Group _www

    A

    User your_mac_username Group staff

    Nota: Con versiones anteriores como Leopard, capitalice al personal del Staff. Puedes obtener tu nombre de usuario y grupo escribiendo "id" y pulsando enter en terminal

  3. Reiniciar Apache

    sudo apachectl restart


Estoy ejecutando Apache en OSX y esto lo solucionó para mí:

sudo chown -R _www:_www <mywebfolder> sudo chmod -R 775 <mywebfolder>

Actualización # 1:

Sintaxis: sudo chown <user>:<group> <file-or-folder> . El usuario de Apache en OSX es _www .

Para mantener la propiedad pero otorgar permisos Apache rwx:

sudo chown -R <your-username>:_www <mywebfolder> sudo chmod -R 775 <mywebfolder>

Actualización # 2:

Me gusta más este método. Configura Apache para que se ejecute como tú.

  1. En terminal id tipo para obtener uid=123(Myname) .

  2. Abra /etc/apache2/httpd.conf y edítelo para usar su nombre de usuario.

    <IfModule unixd_module> User Myname Group staff </IfModule>

  3. Volver al terminal: sudo apachectl restart