¿Cómo puedo evitar que WordPress me solicite información FTP al realizar actualizaciones?
¿Cómo puedo evitar que WordPress me solicite información FTP al realizar actualizaciones?

Si editas tu archivo wp-config.php
puedes precargar estos ajustes FTP como constantes leídas por WordPress. Ten en cuenta que, en un hosting compartido, deberías ser consciente de las posibles implicaciones de seguridad.
Consulta Editar wp-config.php
para más información.
Tus ajustes pueden variar, pero estos funcionan para mí y mi configuración de hosting. He incluido algunas constantes no utilizadas, con 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);

Verifica los permisos de propiedad de tus archivos. Cuando el usuario bajo el cual se ejecuta Apache tiene permisos de escritura en los directorios de WordPress, el proceso de actualización integrado funciona sin necesidad de FTP. Las credenciales FTP son para cuando el servidor web no tiene los privilegios adecuados sobre tus archivos, en cuyo caso WordPress te pedirá tus credenciales FTP e intentará usarlas para conectarse por FTP al mismo servidor donde está alojado y así poder escribir los archivos que necesita.

Parece que WordPress no solo verifica si los directorios tienen permisos de escritura, sino que también comprueba si el usuario de Apache ES EL PROPIETARIO de los directorios (o al menos, si el usuario de Apache es el propietario del archivo temporal que crea). Observa 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á ejecutar este comando y asignar la propiedad de toda la instalación de WordPress al usuario de Apache:
sudo chown -R www-data wordpress/
Donde www-data es el usuario de Apache y, por supuesto, wordpress es tu carpeta de instalación de WordPress.
He documentado más mi solución aquí: https://ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/

Ese enlace ya no funciona. Aquí hay un archivo: http://web.archive.org/web/20131213005955/http://rubiks.ph/solved-wordpress-asking-for-ftp-credentials-when-upgrading/

¿Alguien puede explicar los detalles de: "$allow_relaxed_file_ownership Opcional. Si permite permisos de escritura para Grupo/Mundo."

Al ajustar Apache 2.4 a través de EasyApache4 para mejorar la velocidad de carga del sitio web en un servidor CentOS 7 con PHP 7, habilité mod_pagespeed. Al activarlo, automáticamente se deshabilitará mod_ruid2 y mod_cgi (y se habilitarán otros dos módulos). Al desactivar mod_pagespeed, no se volverá a habilitar mod_ruid2 automáticamente, solo se reactivará mod_cgi. Sin mod_ruid2, WordPress solicitará las credenciales FTP.
No es necesario modificar manualmente wp-config.php ni establecer permisos de archivo (de manera peligrosa) a 777. Simplemente habilite mod_ruid2 manualmente, reinicie Apache y el problema de permisos/FTP se resolverá. WordPress y los plugins ahora se pueden actualizar como de costumbre, y se pueden subir archivos multimedia a 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 se volverá a habilitar mod_ruid2, lo que provoca el problema descrito en esta publicación.
En ambos casos, la clave es verificar y habilitar mod_ruid2.
Espero haber ayudado.

1) No estoy de acuerdo con la respuesta anterior porque es demasiado genérica
1a) Simplemente no quiero cambiar la propiedad de todos mis archivos recursivamente (como usar una escopeta para matar un mosquito). Especialmente porque esto funcionaba perfectamente antes.
1b) WordPress tiene la "sospechosa" característica de que de repente te pide credenciales para FTP.
2) Así que comencé a investigar más a fondo siguiendo la pista de Ardee Aram. Revisé el archivo file.php y verifiqué su propiedad. Parece que file.php depende de su propia propiedad (que estaba configurada incorrectamente como root).
Solución: chown www file.php
NOTA: Reemplaza www con lo que sea que use tu distribución o configuración (podrías usar ps aux | egrep "php|http" y ver cuál es la propiedad en la primera columna).
Espero que esto ayude a alguien más a no frustrarse con esto. Ni siquiera entiendo por qué WordPress no "se queja" desde el principio y luego propone usar la alternativa FTP. Ahora es como una "característica" que de repente se introduce.

Bienvenido a WPSE, th3penguinwhisperer. No dudes en realizar el recorrido. Respecto a 'la respuesta anterior', el orden de las respuestas puede cambiar en cualquier momento como resultado de los votos de los usuarios. Sería genial que editaras tu publicación para especificar a qué respuesta te refieres y así quede claro. ¡Gracias por compartir tus ideas!
