Per eseguire l'azione richiesta WordPress ha bisogno di accedere al tuo server web. Inserisci i dati FTP
Sto seguendo Modifica dei permessi dei file « WordPress Codex, ma quando provo ad aggiornare e/o installare un plugin
e/o un theme
attraverso wp-admin
, ottengo il seguente messaggio:
Per eseguire l'azione richiesta, WordPress ha bisogno di accedere al tuo server web. Inserisci le tue credenziali FTP per procedere. Se non ricordi le tue credenziali, dovresti contattare il tuo hosting provider.
dal livello del file system:
# ls -ld wp-content/ wp-content/plugins/ wp-content/themes/
drwxrwxr-x. 6 root apache 4096 Jun 2 12:01 wp-content/
drwxrwxr-x. 28 root apache 4096 Jun 2 00:00 wp-content/plugins/
drwxrwxr-x. 11 root apache 4096 May 11 16:34 wp-content/themes/
#
httpd
viene eseguito come apache
:
$ ps auxw | grep httpd
root 20158 0.0 0.1 533080 26192 ? Ss 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20233 0.0 0.2 612608 34908 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20234 0.0 0.2 538772 46904 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20235 0.0 0.1 536832 24268 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20236 0.0 0.2 626272 35640 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20237 0.0 0.0 535296 9592 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20322 0.0 0.1 537088 26620 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20380 0.0 0.2 626060 33816 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20429 0.0 0.1 538216 29184 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20447 0.0 0.2 629380 43180 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20448 0.0 0.2 626172 35224 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
alexus 24073 0.0 0.0 112652 972 pts/9 R+ 15:13 0:00 grep --color=auto httpd
$
Vorrei poter eseguire l'azione richiesta (installare
e/o aggiornare
) attraverso /wp-admin
senza credenziali FTP.
Come posso farlo?


ha funzionato per me a meno che non ci siano problemi con i permessi del filesystem. A proposito, l'ho aggiunto all'inizio del file wp-config.php

Assicurati di leggere il post linkato da Alexus prima di utilizzare questo metodo. Questo metodo funziona sicuramente (ha risolto il problema nel mio caso), ma non dovresti assolutamente usarlo in un ambiente di hosting condiviso o in qualsiasi situazione a rischio dove potresti compromettere la sicurezza facendo questo.

dopo aver aggiunto questo ho ricevuto questo errore:
Update Failed: The update cannot be installed because we will be unable to copy some files. This is usually due to inconsistent file permissions.

Questo è potenzialmente pericoloso per gli utenti che migrano interi siti da localhost a un server live. Preferirei che usassi il metodo di @Syamraj K per modificare i permessi dei file, o rimuovere questo dal tuo wp-config.php
prima della migrazione online

amico!! sei il mio eroe. grazie per avermi fatto risparmiare ore del mio tempo con questo

Se preferisci usare WP CLI, puoi eseguire questo comando invece: wp config set FS_METHOD direct
. Questo modificherà il file wp-config.php

Per favore spiega cosa fa questo prima che tanti lo inseriscano ciecamente nel loro file di configurazione.

WP ospitato su Google Cloud compute: ho aggiunto il define( 'FS_METHOD', 'direct' ); in wp-config poi ho aggiunto i permessi con sudo chown -R www-data:www-data /home/miosito/public_html/ poi ho aggiornato il plugin e ripristinato i permessi con sudo chown -R miosito:miosito /home/miosito/public_html/

Ciò significa che WordPress ha permessi limitati per apportare modifiche nella cartella in cui è stato installato.
Per risolvere questo problema, tutto ciò che devi fare è fornire i permessi necessari.
Esegui il seguente comando nel tuo Terminale / Putty / Prompt dei comandi dopo esserti connesso al tuo Server via SSH:
sudo chown -R apache:apache /var/www/html

Ricorda che Apache può essere associato a utenti diversi nelle diverse distribuzioni Linux. Puoi provare groups <nomeutente> per vedere se restituisce un errore o meno, dato che di solito l'utente e il gruppo di Apache coincidono. Poi usa l'utente corretto. I più comuni in Ubuntu sono "www-data:www-data" o "www:www" per i comandi chown sui file di Apache.

Dopo aver trovato il nome utente corretto, ha funzionato perfettamente (vedi anche comando per elencare tutti gli utenti)

Se vuoi usarlo su OSX, usa _www:_www (Mojave, non so come sarebbe in altre versioni)

Questa è una risposta migliore. La risposta più votata è pericolosa per molti utenti inesperti che migrano intere directory del sito da localhost a un server live, anche quando usano plugin WordPress

Anche se è totalmente corretto avere la proprietà come root:apache
con i permessi 775, e httpd in esecuzione come apache
, a WordPress questo non piace. Vuole che il proprietario sia apache
, come da wp-admin/includes/file.php
:
// Tentativo di determinare il proprietario dei file di WordPress e quello dei nuovi file creati
$wp_file_owner = $temp_file_owner = false;
if ( function_exists('fileowner') ) {
$wp_file_owner = @fileowner( __FILE__ );
$temp_file_owner = @fileowner( $temp_file_name );
}
Nel tuo caso sarebbe:
wp_file_owner = root
temp_file_owner = apache
if ( $wp_file_owner !== false && $wp_file_owner === $temp_file_owner ) {
// WordPress sta creando file con lo stesso proprietario dei file di WordPress,
// ciò significa che è sicuro modificare e creare nuovi file via PHP.
$method = 'direct';
$GLOBALS['_wp_filesystem_direct_method'] = 'file_owner';
} elseif ( $allow_relaxed_file_ownership ) {
// La directory $context è scrivibile e $allow_relaxed_file_ownership è impostato, ciò significa che possiamo modificare file
// in modo sicuro in questa directory. Questa modalità non crea nuovi file, ma modifica solo quelli esistenti.
$method = 'direct';
$GLOBALS['_wp_filesystem_direct_method'] = 'relaxed_ownership';
}
Se $wp_file_owner è uguale a $temp_file_owner, allora procede. Nel tuo caso finiresti nell'elseif, che secondo il commento non permette di eliminare/creare, ma solo di aggiornare (ho verificato questo aggiornando il codice di un plugin da dentro WordPress, e ha funzionato).
Nota che non ho esaminato approfonditamente il codice, questa è solo la mia rapida interpretazione. Avevo lo stesso problema e una volta cambiato user:group in modo che l'utente httpd fosse anche il proprietario dei file, non ha più chiesto le credenziali FTP.

Sì, cambiare il proprietario in www-data
ha funzionato per me. Divertente WordPress!

Nel caso qualcuno avesse questo problema - ha funzionato solo se ho cambiato il proprietario di TUTTI i file/directory di WordPress all'utente del mio webserver. Cambiare solo la directory wp-content e tutti i suoi figli non ha risolto il problema. Ho dovuto cambiare ricorsivamente la directory root di wordpress e tutti i suoi figli per farlo funzionare.

Non è una risposta diretta, ma probabilmente va detto - questo è un problema che dovresti evitare di risolvere a meno che non si tratti di uno sviluppo locale, nel qual caso puoi semplicemente impostare i permessi a 777.
Il motivo è che se il server web può sovrascrivere il tuo codice, allora anche qualsiasi codice malevolo in esecuzione su di esso sarà in grado di farlo. Il rischio è semplicemente molto più grande della comodità di risparmiare qualche secondo non dovendo inserire le credenziali FTP.

Anche se la domanda non è più così recente, voglio aggiungere la mia opinione su questo problema.
Molte persone hanno CentOS(7) sul loro server VPS e le seguenti righe di codice potrebbero risolvere il loro problema.
Secondo me, tutto ha a che fare con SELinux che impedisce a WordPress di svolgere il proprio lavoro come desiderato. Andare troppo oltre per spiegare cosa sia SELinux e cosa faccia. Per vostra informazione, l'introduzione inizia con:
Security-Enhanced Linux (SELinux) è un meccanismo di sicurezza a controllo d'accesso obbligatorio (MAC) implementato nel kernel.
Solo 3 passaggi da seguire:
- 1 Aprire un terminale (o accedere al server tramite SSH)
- 2 Aggiungere la seguente riga di codice
chcon -R -t httpd_sys_content_t /var/www/html/wordpress
- 3 Aggiungere la seconda riga di codice
chcon -R -t httpd_sys_rw_content_t /var/www/html/wordpress
Non è necessario riavviare il server o riavviare alcun demone.
Non dirò che aiuti tutti, ma per coloro che non hanno disabilitato SELinux dovrebbe essere un sollievo.
Saluti
Nota: Si prega di adattare alle proprie esigenze (ovvero il percorso verso WordPress)
modifica: assicurati di rimuovere la riga define("FS_METHOD", "direct");
quando è/stata utilizzata in wp-config.php
perché è assolutamente da evitare se le righe di codice sopra fanno ciò che si desidera.
