WordPress en EC2 requiere credenciales de FTP para instalar complementos

4 minutos de lectura

avatar de usuario
Antonio

Acabo de instalar WordPress 3.5.2 en una microinstancia Amazon Linux AMI EC2. Cuando traté de instalar el complemento wp-db-backup (Complementos -> Agregar nuevo), se me solicitó un Nombre de host, Nombre de usuario FTP, Contraseña FTP y Tipo de conexión.

La respuesta a esta pregunta recomendaba que passwd hacerse en la línea de comando. No tengo claro exactamente lo que estoy haciendo en la línea de comandos según esta respuesta. Así que busqué en Google y encontré un artículo sobre configurando vsftpd. El artículo analiza la generación de un certificado en el servidor y me pregunto si me estoy desviando al seguir este artículo. Estoy usando CentOS 6.3 localmente y una AMI de Amazon Linux en EC2).

Cualquier ayuda/orientación será apreciada. Gracias por adelantado.


EDITAR


estaba leyendo el Códice de WordPress que discutió las constantes ftp para el archivo wp-config.php. Recomendó que defina la menor cantidad de estas constantes que sea necesario para corregir mis problemas de actualización. ¿Estoy en el camino correcto aquí (especialmente en lo que respecta a la seguridad)? He enumerado las constantes a continuación. Cualquier orientación será apreciada.

define('FS_METHOD', 'ftpext');
define('FTP_BASE', '/path/to/wordpress/');
define('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/');
define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'username');
define('FTP_PASS', 'password');
define('FTP_HOST', 'ftp.example.org');
define('FTP_SSL', false);

avatar de usuario
albahaca abas

El problema principal aquí es que apache no tiene acceso a las carpetas. El permiso predeterminado se otorga al usuario ec2 en la AMI.

ejecute esto en su terminal y debería estar listo para comenzar.

sudo chown -R apache:apache /var/www/html

Una vez hecho esto, debería poder cargar temas, complementos, actualizaciones, etc.

  • Esto me ayudó, en lugar de 100 soluciones alternativas e instalar FTP, establecer permisos para Apache es la forma correcta de hacerlo. Gracias compañero, esta es la solución más rápida que existe.

    – Clain Dsilva

    31/08/2014 a las 15:50


  • ¡Gracias por esto! Funcionó perfectamente para mí.

    – deewilcox

    6 de enero de 2015 a las 11:13

  • Funcionó perfectamente, aunque tuve que reemplazar “apache” con “www-data”.

    – Wonko el Cuerdo

    16 de julio de 2015 a las 13:52

  • El usuario que posee mis procesos apache2 no era “apache”, así que busqué qué usuario los estaba iniciando y era “www-data”, ¡entonces funcionó perfectamente!

    – Tyler Blanco

    18/09/2015 a las 16:41

  • Una mejor manera sería crear un grupo ‘www’ y permitir el acceso de grupo a los archivos, y agregar el usuario de apache al grupo ‘www’. Instrucciones completas aquí

    – Carlos P.

    29 de febrero de 2016 a las 11:04

Pruebe este código en su archivo de configuración de wp

define('FS_METHOD', 'direct');

  • +1 Gracias por tu respuesta. Resolví el problema abriendo puertos para FTP (ver respuesta arriba). Gracias de nuevo

    – Antonio

    29 de septiembre de 2013 a las 2:07

  • Esto funcionó para mí. Muy simple. Ya tenía el propietario establecido como dicen las respuestas de Saurabh y Basil.

    – Acuariano

    26/04/2016 a las 17:51


  • @sparkandshine y otros que descubren que esto no funciona, combinan esta respuesta con la otra respuesta, hacen que los archivos sean propiedad del usuario correcto. sudo chown -R apache:apache /var/www/html

    – deweydb

    26 de septiembre de 2016 a las 1:48

  • Impresionante. Trabajó. Gracias

    – tushonline

    27 mayo 2017 a las 13:31

avatar de usuario
Saurabh Chandra Patel

cambiar propietario del directorio de wordpress

sudo chown -R www-data:www-data /var/www/wordpress

O tratar

define('FS_METHOD', 'direct');

  • ¿No utiliza la AMI de Amazon Linux apache usuario para httpd? Esta respuesta funcionó para mí, pero al igual que el OP, tenía la AMI de Amazon Linux y tuve que usar apache usuario.

    usuario393219

    23 de febrero de 2016 a las 15:57

Esto funcionó para mí:

Primero siga lo que dijo Faizan y ponga la siguiente línea si su wp-config.php:

# you will want this as close to the bottom as possible
define('FS_METHOD', 'direct');

Luego, debe cambiar TEMPORALMENTE los permisos de su archivo a un estado más abierto. En la línea de comando escribe lo siguiente:

sudo chmod 777 -R /your_whole_wp_project

Ahora ejecute sus actualizaciones y luego vuelva a cambiar los permisos a algo cuerdo como:

sudo chmod 664 -R /your_whole_wp_project

Soy consciente de que se trata de un problema de seguridad y tal vez no sea la mejor manera de hacerlo, pero es lo único que pude probar que me funcionó.

avatar de usuario
Antonio

Encontré la respuesta a esta pregunta en Publicación de blog de Stephen White.

En pocas palabras, tengo que

  • crear reglas personalizadas para Port Ranges 20-21 y algunos puertos adicionales en mi instancia EC2 FW
  • instalar y configurar el servidor FTP vsftpd
  • crear y configurar un usuario FTP
  • y poner mi configuración de FTP en el archivo wp-config.php

    Esto funciona muy bien para mí ahora.

avatar de usuario
Hugo Scavino

El ‘define(‘FS_METHOD’, ‘directo’);’ la sugerencia funcionó para mí después de editar mi grupo de seguridad en EC2 para permitir el acceso saliente al puerto 443 (HTTPS)

avatar de usuario
Heena Manglani

sudo chown -R apache:apache /var/www/html

si esto no funciona, intente reemplazar “apache” con “www-data” y estará listo para comenzar.

¿Ha sido útil esta solución?