Per eseguire l'azione richiesta WordPress ha bisogno di accedere al tuo server web. Inserisci i dati FTP

2 giu 2016, 19:13:57
Visualizzazioni: 213K
Voti: 85

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?

7
Commenti

È un'installazione in localhost? Se sì, consulta: http://wordpress.stackexchange.com/questions/19649/wordpress-on-localhost-lamp-doesnt-let-me-install-plugins

Greg McMullen Greg McMullen
2 giu 2016 20:55:03

@GregMcMullen no, questa NON è un'installazione in localhost e la risposta "accettata" dal link che hai commentato suggerisce di cambiare ricorsivamente la proprietà della directory di WordPress a nobody - questo non funzionerà nel mio caso perché httpd è eseguito come apache.

alexus alexus
2 giu 2016 22:32:37

@alexus Sembra che al momento i tuoi file siano di proprietà di root.apache. Hai provato con apache.apache invece di nobody?

Tim Malone Tim Malone
3 giu 2016 00:28:43

@TimMalone impostare file/directory come apache.apache o root.apache non farebbe alcuna differenza, finché httpd viene eseguito come apache, e l'uid di apache fa parte del gruppo gid di apache, è la stessa cosa, perché ho impostato i permessi su g+w.

alexus alexus
3 giu 2016 00:37:49

@alexus Ok, un'altra cosa da provare - imposta FS_METHOD su 'direct' in wp-config.php (https://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants)

Tim Malone Tim Malone
3 giu 2016 00:43:18

@TimMalone come da https://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants - Nota che la tua scelta qui ha serie implicazioni per la sicurezza.

alexus alexus
3 giu 2016 00:52:40
Mostra i restanti 2 commenti
Tutte le risposte alla domanda 7
9
185

Aggiungi il seguente codice al file wp-config.php:

define( 'FS_METHOD', 'direct' );

Fammi sapere se funziona per te.

22 giu 2017 17:34:31
Commenti

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

Toskan Toskan
28 set 2018 21:12:51

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.

JamesHoux JamesHoux
18 mag 2019 18:51:38

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.

Shawn Shawn
18 mar 2020 05:57:35

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

Cedric Ipkiss Cedric Ipkiss
10 nov 2020 03:48:04

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

Jacky Supit Jacky Supit
14 feb 2021 16:31:03

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

Flimm Flimm
2 set 2022 11:00:22

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

Altimus Prime Altimus Prime
5 apr 2023 06:53:57

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/

Patrik Rikama-Hinnenberg Patrik Rikama-Hinnenberg
3 mag 2024 17:46:31
Mostra i restanti 4 commenti
7
32

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
5 ago 2016 09:35:11
Commenti

i permessi sono corretti, rileggi la mia domanda)

alexus alexus
5 ago 2016 21:55:08

chown: utente non valido: ‘apache:apache’

numediaweb numediaweb
2 feb 2018 11:46:50

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.

MontyThreeCard MontyThreeCard
25 gen 2019 18:09:55

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

Top-Master Top-Master
8 gen 2020 13:38:45

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

Larzan Larzan
6 mag 2020 17:08:58

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

Cedric Ipkiss Cedric Ipkiss
10 nov 2020 03:46:45

Ha funzionato perfettamente :) evita di usare define( 'FS_METHOD', 'direct' );

Himanshu Rawat Himanshu Rawat
7 mar 2021 12:27:40
Mostra i restanti 2 commenti
3
10

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.

23 ago 2017 20:14:32
Commenti

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

ankush981 ankush981
30 ago 2018 06:45:02

scoperta interessante, approfondirò... grazie +1 da parte mia)

alexus alexus
16 dic 2019 19:07:15

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.

Ambulare Ambulare
5 feb 2021 16:29:32
0

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.

3 giu 2016 06:01:35
0

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.

2 mag 2018 02:07:39
2

aggiungi quanto segue al tuo file wp-config.php tra i 2 commenti

/* Aggiungi qualsiasi valore personalizzato tra questa riga e la riga "stop editing". */

define( 'FS_METHOD', 'direct' );

/* Questo è tutto, smetti di modificare! Buona pubblicazione. */
14 feb 2023 16:05:25
Commenti

È lo stesso della risposta esistente con più voti, tranne che per i commenti. Ha davvero importanza?

Rup Rup
15 feb 2023 12:45:39

Ho aggiunto la risposta perché sapere dove inserire il codice potrebbe davvero aiutare un altro principiante come me :)

shimii shimii
15 feb 2023 17:41:58
0

Nel mio caso, ho risolto passando dalla modalità GIT alla modalità FTP.

Nessun altro avviso.

Forse questo potrà aiutare anche qualcun altro.

16 ago 2018 21:12:32