Risposte:
Se modifichi il tuo wp-config.php
file puoi precaricare queste impostazioni FTP come costanti lette da WordPress. Tieni presente, su un host condiviso, dovresti essere consapevole delle possibili implicazioni sulla sicurezza.
Vedere Modificawp-config.php
per ulteriori informazioni.
Le tue impostazioni possono variare, ma queste funzionano per me e per la mia configurazione di hosting. Ho incluso alcune delle costanti non utilizzate, con prefisso:
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);
Controlla la proprietà del tuo file. Quando l'utente che esegue Apache può scrivere nelle directory di WordPress, il processo di aggiornamento integrato funziona senza FTP. Le credenziali FTP sono se il server web non ha i privilegi giusti sui tuoi file, quindi wordpress ti richiede i tuoi dettagli FTP e tenta di riutilizzarli per FTP sullo stesso server su cui è in grado di scrivere il i file di cui ha bisogno.
Sembra che WordPress non solo controlli se le directory sono scrivibili, ma controlla se l'utente Apache PROPRIA le directory (o almeno, se l'utente Apache possiede il file temporaneo che crea). Osservare queste righe di codice su /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);
}
Quindi, una rapida soluzione sarà emettere questo comando e dare la proprietà dell'intera installazione di Wordpress ad Apache:
sudo chown -R www-data wordpress/
Dove www-data è l'utente Apache e, naturalmente, wordpress è la cartella di installazione di WordPress.
Ho ulteriormente documentato la mia soluzione qui: https://ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/
Quando ho messo a punto Apache 2.4 tramite EasyApache4 per migliorare la velocità di caricamento del sito Web in un server Centos 7 PHP 7, avevo abilitato mod_pagespeed. Attivandolo, disabiliterà automaticamente mod_ruid2 e mod_cgi (e abiliterà altri due moduli). Quando disabilita mod_pagespeed, non riattiverà mod_ruid2 automaticamente - riattiverà solo mod_cgi. Senza mod_ruid2 Wordpress richiederà le credenziali FTP.
Non è necessario codificare wp-config.php o impostare le autorizzazioni dei file (pericolosamente) su 777. Basta abilitare mod_ruid2 manualmente, riavviare Apache e il problema delle autorizzazioni FTP / file è risolto. Wordpress e plug-in ora possono essere aggiornati come al solito e file multimediali caricati nella galleria di Wordpress. Funziona subito.
Ho appena verificato che quando si passa da MPM Prefork a Worker, disabiliterà mod_ruid2. Quando si passa da Worker a Prefork non abiliterà mod_ruid2, causando il problema descritto in questo post.
In entrambi i casi, la chiave è controllare e abilitare mod_ruid2.
Spero di aver aiutato.
1) Non potrei essere d'accordo con la risposta sopra perché è troppo generica
1a) Non voglio semplicemente cambiare la proprietà di tutti i miei file in modo ricorsivo (come nell'usare un fucile per uccidere una zanzara). Soprattutto perché questo funziona perfettamente prima.
1b) Wordpress con la caratteristica "subdola" all'improvviso ti chiede credenziali per ftp
2) Quindi ho iniziato a scavare più a fondo usando Ardee Aram come protagonista. Sono andato a controllare il file file.php e ho verificato la sua proprietà. Sembra che il file.php dipenda dalla sua proprietà (che è stata erroneamente impostata come root).
Correzione: chown www file.php
NOTA: Sostituisci www con qualunque sia la tua distribuzione o impostazioni (potresti usare ps aux | egrep "php | http" e vedere qual è la sua proprietà nella prima colonna.
Spero che questo aiuti qualcun altro a sentirsi frustrato per questo. Non capisco nemmeno perché wordpress non "si lamenta" in primo luogo e quindi propone di utilizzare l'alternativa FTP. Ora è come una "caratteristica" che all'improvviso viene introdotta.