Respuestas:
Si edita su wp-config.php
archivo, puede precargar estas configuraciones FTP como constantes leídas por WordPress. Tenga en cuenta que, en un host compartido, debe tener en cuenta las posibles implicaciones de seguridad.
Vea Ediciónwp-config.php
para más información.
Su configuración variará, pero estos funcionan para mí y mi configuración de alojamiento. He incluido algunas de las constantes no utilizadas, con el prefijo:
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);
Verifique la propiedad de su archivo. Cuando el usuario que ejecuta Apache puede escribir en los directorios de WordPress, entonces el proceso de actualización integrado funciona sin ftp. Las credenciales de FTP son para si el servidor web no tiene los privilegios correctos en sus archivos, luego Wordpress le solicita sus detalles de FTP e intenta usarlos para volver a FTP en el mismo servidor en el que está para poder escribir el archivos que necesita.
Parece que WordPress no solo comprueba si los directorios son editables, sino que también comprueba si el usuario de Apache posee los directorios (o al menos, si el usuario de 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);
}
Entonces, 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/
Al ajustar Apache 2.4 a través de EasyApache4 para mejorar la velocidad de carga del sitio web en un servidor Centos 7 PHP 7, habilité 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 mod_ruid2 automáticamente, solo volverá a habilitar mod_cgi. Sin mod_ruid2, Wordpress solicitará las credenciales de FTP.
No hay necesidad de codificar wp-config.php o establecer permisos de archivos (peligrosamente) en 777. Simplemente habilite mod_ruid2 manualmente, reinicie Apache y se resolverá el problema de permiso de FTP / archivo. Wordpress y los complementos ahora se pueden actualizar como de costumbre y cargar los medios en la galería de Wordpress. Funciona de inmediato.
Acabo de comprobar que al cambiar de MPM Prefork a Worker, deshabilitará mod_ruid2. Al volver 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 haber ayudado.
1) No podría estar de acuerdo con la respuesta anterior porque es demasiado genérica
1a) Simplemente no quiero cambiar la propiedad de todos mis archivos de forma recursiva (como usar una escopeta para matar un mosquito). Sobre todo porque esto funciona perfectamente antes.
1b) Wordpress tiene la característica "furtiva" de repente de pedirle credenciales para ftp
2) Así que comencé a cavar más profundo usando la ventaja de Ardee Aram. Fui revisando el archivo file.php y verifiqué su propiedad. Parece que el archivo.php depende de su propia propiedad (que se configuró incorrectamente como root).
Arreglo: chown www file.php
NOTA: Reemplace www con cualquiera que sea su distribución o configuración (puede usar ps aux | egrep "php | http" y ver cuál es su propiedad en la primera columna.
Espero que esto ayude a alguien más a sentirse frustrado por esto. Ni siquiera entiendo por qué Wordpress no se "queja" en primer lugar y luego propone usar la alternativa FTP. Ahora es como una "característica" que de repente se introduce.