it-swarm-es.com

¿Cómo puedo evitar que WordPress me pida que ingrese información de FTP cuando hago actualizaciones?

¿Cómo puedo evitar que WordPress me pida que ingrese información de FTP cuando hago actualizaciones?

29
artlung

Si edita su archivo wp-config.php puede precargar estas configuraciones de FTP como constantes leídas por WordPress. Tenga en cuenta que, en un host compartido, debe tener en cuenta las posibles implicaciones de seguridad. Consulte Ediciónwp-config.php para obtener más información.

Su configuración variará, pero esto funciona para mí y para mi configuración de alojamiento. He incluido algunas de las constantes no utilizadas, prefijadas:

define('FS_METHOD', 'direct');
define('FTP_BASE', '/usr/home/username/public_html/my-site.example.com/wordpress/');
define('FTP_CONTENT_DIR', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/plugins/');
// define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
// define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'my-ftp-username');
define('FTP_PASS', 'my-ftp-password');
define('FTP_Host', 'ftp.my-site.example.com');
// define('FTP_SSL', false);
23
artlung

Compruebe la propiedad de su archivo. Cuando el usuario con el que se ejecuta Apache puede escribir en los directorios de wordpress, el proceso de actualización integrado funciona sin ftp. Las credenciales de FTP son para si el servidor web no tiene los privilegios adecuados para sus archivos, WordPress le solicita sus detalles de FTP e intenta usarlos para volver a enviarlos al mismo servidor en el que está para poder escribir archivos que necesita.

12
pixeline

Parece que WordPress no solo comprueba si los directorios son de escritura, sino que también verifica si el usuario ApachePOSEE LOS DIRECTORIOS(o al menos, si el usuario Apache posee el archivo temporal que crea). Observe estas líneas de código en /wp-admin/includes/file.php: get_filesystem_method ():

if ( $temp_handle ) {
    if ( getmyuid() == @fileowner($temp_file_name) )
        $method = 'direct';
    @fclose($temp_handle);
    @unlink($temp_file_name);
}

Por lo tanto, una solución rápida será emitir este comando y otorgar la propiedad de toda la instalación de Wordpress a Apache:

Sudo chown -R www-data wordpress/

Donde www-data es el usuario de Apache y, por supuesto, wordpress es su carpeta de instalación de WordPress.

He documentado aún más mi solución aquí: https://ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/

5
Ardee Aram

Al ajustar con precisión Apache 2.4 a través de EasyApache4 para mejorar la velocidad de carga del sitio web en un servidor Centos 7 PHP 7, había habilitado mod_pagespeed. Al habilitarlo, deshabilitará automáticamente mod_ruid2 y mod_cgi (y habilitará otros dos módulos). Al deshabilitar mod_pagespeed, no volverá a habilitar a mod_ruid2 automáticamente, solo volverá a habilitar a mod_cgi. Sin mod_ruid2, Wordpress solicitará las credenciales de FTP.

No es necesario codificar el código wp-config.php o configurar los permisos de archivo (peligrosamente) a 777. Simplemente active mod_ruid2 manualmente, reinicie Apache y se solucionará el problema de permisos de FTP/archivo. Wordpress y los complementos ahora se pueden actualizar como de costumbre y los medios se pueden cargar en la galería de Wordpress. Funciona de inmediato.

Acabo de comprobar que al cambiar de MPM Prefork a Worker, se deshabilitará mod_ruid2. Al revertir de Worker a Prefork, no habilitará mod_ruid2, causando el problema descrito en esta publicación.

En ambos casos, la clave es verificar y habilitar mod_ruid2.

Espero haberte ayudado.

1
itmonitor