¿Cómo verificar qué grupo de Apache puedo usar para que escriba el servidor web?


13

Estoy tratando de hacer que Wordpress funcione. Actualmente tengo este mensaje de error:

Could not create directory. /var/www/html/wp-content/upgrade/theme_name

cuando intentas subir un tema. Estos son los permisos establecidos en/var/www/html/wp-content/upgrade/

drwxrwxr-x 3 ec2-user apache 4096 Jun 21 00:30 upgrade

chmod 777 upgradehace que el error desaparezca Pero eso no se considera la mejor práctica. Sin embargo, creo que esto también debería funcionar ... ¿por qué no?

Supongo que el servidor web puede no estar incluido en los permisos anteriores. ¿Qué grupo debo usar para permitir que el servidor web escriba?

(Mi configuración es Amazon EC2, Amazon Linux AMI con httpd)

Respuestas:


16

No sé nada sobre Amazon EC2, pero debería poder:

  1. Recupere el nombre del usuario que ejecuta Apache con un comando similar a este:

    ps aux | grep apache # The username should be in the first column.
    
  2. Recupere los grupos de los que este usuario forma parte con el groups(1)comando:

    groups [USERNAME]
    

La primera columna es apache, y los grupos apache devuelven apache: apache. Una línea del primer comando se ve así: apache 11171 0.0 3.4 39984 21516? S Jun20 0:02 / usr / sbin / httpd

1
El usuario apache claramente tiene permisos para escribir en el directorio. Dices que chmod 777resuelve el problema, así que supongo que estás usando un usuario diferente para subir tus temas. No conozco Wordpress muy bien. De acuerdo con esta respuesta, intente cambiar la propiedad al usuario www-data.
rahmu

Gracias por tomarse el tiempo de buscar el artículo y todo. De hecho, era un usuario diferente, ya que me di cuenta de que Wordpress usaba FTP para hacer su trabajo. Descubrí a ese usuario por lo que se sugiere a continuación y luego agregué apache grupal, descubierto en el paso 1. Eso lo resolvió.


1

La actualización de chmod 777 hace que el error desaparezca.

Bueno, en ese caso ls -ld /var/www/html/wp-content/upgrade/theme_namedebería revelar las credenciales del creador, que puede usar para otorgar acceso de forma precisa.

Y es mejor usar 1777(como para /tmp) ya que al menos garantiza que solo el propietario de un archivo podrá desvincularlo.


1
¡Haz que el error desaparezca! Enfoque interesante para la resolución de problemas. Esto no es una solución, es una mentira.
iharob

¿Cómo se llama "mentira", citando el texto original del autor? :) o sugerencia para utilizar al menos 1777 en lugar de 777? :) o descubriendo la propiedad del creador y usándolo para "otorgar acceso preciso"?
Poige

Es una mentira para el sistema, porque 777no es correcto en ningún contexto que conozca.
iharob
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.