2012-03-03 44 views
10

Configuré WordPress en una instancia de Amazon EC2. Está utilizando Amazon Linux y es una configuración estándar (solo php5 y mysql).Configuración de permisos para WordPress en Amazon EC2 (Amazon Linux)

WordPress funciona bien, pero hay algunos problemas de permisos. Específicamente, no puedo cargar medios, actualizar enlaces permanentes, complementos, etc. No tengo permiso de escritura para el usuario ec2 y porque cargué todos los archivos a través de WinSCP, el propietario actual es ec2-user.

Mi pregunta es ¿cuál es la mejor manera de corregir este problema? Probablemente podría solucionarlo cambiando la propiedad de todas las carpetas/archivos a la raíz, pero esa no es una solución muy elegante o dinámica.

La ruta a mi directorio web es/var/www/html. ¿Puedo permitirle al usuario ec2 los permisos correctos? Tal vez al tener un grupo que comparten el usuario Apache y el usuario ec2?

Cualquier idea sería apreciada

+0

Vea http://stackoverflow.com/questions/8686125/update-wordpress-theme-on-ec2 y mire la respuesta de Jake Espero que esto ayude! – Yannick

+0

¿Obtuviste alguna solución para esto? Puedo trabajar con la solución sugerida por @stink, pero ¿existe una forma elegante en la que no tenga que cambiar la propiedad/los permisos para realizar actualizaciones a través de FTP/web? –

Respuesta

7

Ver http://blog.david-jensen.com/development/wordpress-amazon-ec2-apache-permissions-wordpress/ entre otros resultados de Google. Él parece haber tenido buena suerte:

que he estado haciendo todo lo posible para averiguar la configuración de Amazon EC2 Apache de permisos para habilitar WordPress para ser capaz de gestionar todos los archivos en mi instancia de Amazon EC2 sin WordPress solicita permisos de FTP cuando intento subir un complemento o tema a través del sitio de administración. Terminé teniendo que dar propiedad de archivo y grupo de los archivos en mi carpeta html al usuario de apache para WordPress para que se ejecute correctamente. http://www.chrisabernethy.com/why-wordpress-asks-connection-info/ y sus comentarios me ayudaron a llegar a esta conclusión.

Desde la página web:

Run

sudo su chown -R apache:apache /vol/html 

que después fijar los permisos a lo que la guía de WordPress endurecimiento recomienda para mi raíz HTML como todos mis archivos de WordPress son allí como estoy corriendo MultiSite con múltiples dominios.

find /vol/html/ -type d -exec chmod 755 {} \; 
find /vol/html/ -type f -exec chmod 644 {} \; 

como Apache no tiene un inicio de sesión me siento esto vale la pena el riesgo, aunque es probable que haya una mejor manera de hacer esto. Luego añade EC2-usuario al grupo Apache y cambiado los permisos de la carpeta wp-content tenga permiso de escritura del grupo 775.

useradd -G apache ec2-user 
sudo chmod -R 775 /vol/html/wp-content 

Esto permite FileZilla o cualquier otro programa iniciado la sesión como EC2-usuario la posibilidad de cambiar archivos y carpetas en la carpeta wp-content solamente. Si alguien tiene una mejor manera de hacer esto, me gustaría saberlo. Solo estoy usando SSH y SFTP para acceder al servidor con archivos clave.

0

Me encontré con esta pregunta en busca de la respuesta. Establecí toda la propiedad y propiedad del grupo en Apache. Sin embargo, si deseo cargar algo ftp, tengo que cambiar los permisos a ec2-user, cargar el archivo y volver a cambiarlo. Pensé que era un pequeño precio a pagar para tener los permisos establecidos en la configuración recomendada de WordPress.

2

Configuré el propietario en ec2-user: apache, luego realizo el endurecimiento y luego ajusto los permisos de escritura y lectura grupal para las carpetas.

sudo chown -R ec2-user:apache /vol/html 
sudo chmod -R 755 /vol/html 

sudo find /vol/html/ -type d -exec chmod 755 {} \; 
sudo find /vol/html/ -type f -exec chmod 644 {} \; 

sudo chgrp -R apache /vol/html 
sudo chmod -R g+rw /vol/html 
sudo chmod -R g+s /vol/html 

A continuación, edite /wordpress-install/wp-config.php y definir el fs_method

define('FS_METHOD', 'direct'); 

Ahora WordPress puede actualizar/carga, etc, y todavía se puede archivos SFTP sin cambiar los permisos de cada hora.

1

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hosting-wordpress.html

Para fijar los permisos de archivo para el servidor web Apache

Algunas de las características disponibles en WordPress requieren acceso de escritura a la raíz de documentos de Apache (como los medios de comunicación subir a pesar de las pantallas de administración ) El servidor web se ejecuta como el usuario apache, por lo que debe agregar ese usuario al grupo www que se creó en el tutorial del servidor web LAMP .

Agregue el usuario apache al grupo www.

[ec2-user wordpress] $ sudo usermod -a -G www apache Cambia el archivo propietario de/var/www y su contenido al usuario de apache.

[ec2-user wordpress] $ sudo chown -R apache/var/www Cambie el grupo propietario de/var/www y sus contenidos al grupo www.

[wordpress EC2-Usuario] $ sudo chgrp -R www/var/www Cambie el directorio permisos de/var/www y sus subdirectorios para agregar escritura del grupo permisos y establecer el ID de grupo en futuras subdirectorios.

[ec2-user wordpress] $ sudo chmod 2775/var/www [ec2-user wordpress] $ find/var/www -type d -exec sudo chmod 2775 {} \; Cambia recursivamente los permisos de archivo de/var/www y sus subdirectorios para agregar el grupo permisos de escritura.

[ec2-user wordpress] $ encuentra/var/www -type f -exec sudo chmod 0664 {} \; Reinicie el servidor web Apache para seleccionar el nuevo grupo y los permisos .

[EC2-usuario de WordPress] $ sudo service httpd httpd restart Parar:
[OK] httpd de inicio: [ OK]

0

Probé la solución aportada en el answer by @markratledge para mi instancia AWS EC2 (Amazon Linux).

Wordpress (apache) era bueno, pero SFTP (ec2-user) estaba dando errores de permiso.

Luego he intentado lo siguiente:

añadí EC2-usuario al grupo Apache:

usermod -a -G apache ec2-user 

Siguiente puse 'Apache' como grupo propietario y 'EC2-usuario como usuario propietario para el directorio de instalación de WordPress (/ var/www/html en mi caso):

chown -R apache:ec2-user /var/www/html 

por último, WordPress estaba feliz y pude SFTP también. ¡Gracias!