per eseguire l'azione richiesta wordpress deve accedere al tuo server web. per favore inserisci il tuo ftp


28

Sto seguendo la modifica dei permessi dei file «WordPress Codex , ma quando provo ad aggiornare e / o installare plugine / o themetramite wp-admin, sto seguendo:

Per eseguire l'azione richiesta, WordPress deve accedere al tuo server web. Inserisci le tue credenziali FTP per procedere. Se non ricordi le tue credenziali, dovresti contattare il tuo host web.

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/
# 

httpdfunziona 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 ( installe / o update) /wp-admin senza le credenziali FTP.

Come lo posso fare?


1
Si tratta di un'installazione localhost? In tal caso, consultare: wordpress.stackexchange.com/questions/19649/…
Greg McMullen,

1
@GregMcMullen no, NON si tratta dell'installazione di localhost e della risposta "accettata" dal link in cui si commenta è la modifica ricorsiva della proprietà di una directory di wordpress in nobody- questo non funzionerà per me a causa delle httpdesecuzioni come apache.
alexus,

@alexus Sembra che al momento i tuoi file siano di proprietà di root.apache. Hai provato apache.apache invece di nessuno?
Tim Malone,

@TimMalone impostazione file / directory come apache.apacheo root.apachenon farebbe alcuna differenza, purchéhttpd corre come apache, e apache's uidfa parte di apache gid' s gruppo, è tutto lo stesso, perché i miei permessi impostati g+w.
alexus,

@alexus Ok, qualcos'altro da provare - imposta FS_METHOD su 'direct' in wp-config.php ( codex.wordpress.org/… )
Tim Malone,

Risposte:


52

Aggiungi quanto segue a wp-config.php:

define( 'FS_METHOD', 'direct' );

Fammi sapere come funziona per te.



ha funzionato per me a meno che tu non abbia cattive autorizzazioni nel file system. A proposito, l'ho aggiunto all'inizio del wp-config.php
Toskan,

Assicurati di leggere il post a cui Alexus è collegato prima di utilizzare questo metodo. Questo metodo funziona sicuramente (ha risolto il problema per me), ma non dovresti assolutamente usare questo metodo in un ambiente di hosting condiviso o in qualsiasi ambiente a rischio in cui potresti compromettere la sicurezza in questo modo.
JamesHoux,

16

Ciò significa che WordPress ha autorizzazioni limitate per apportare modifiche nella cartella in cui è stato installato.

Per risolvere questo problema, tutto ciò che devi fare è fornire le autorizzazioni necessarie per lo stesso.

Esegui il seguente comando nel tuo Terminale / Putty / Prompt della riga di comando dopo la connessione al tuo server tramite SSH:

sudo chown -R apache:apache /var/www/html

Check-out questo articolo per tutti i dettagli.


i permessi vanno bene,
rileggi la

3
chown: utente non valido: 'apache: apache'
numediaweb

2
Ricorda, Apache può essere utenti diversi in diverse versioni di Linux. Quindi puoi provare i gruppi <nomeutente> e vedere se si verificano errori o meno, poiché l'utente e il gruppo per Apache sono generalmente gli stessi. Quindi utilizzare l'utente corretto. Il più comune in Ubuntu è "www-data: www-data" o "www: www" per la creazione di file Apache.
MontyThreeCard

2

Anche se è del tutto corretto possedere la proprietà come root:apachecon le autorizzazioni 775 e httpd da eseguire come apache, Wordpress non piace questo. Vuole che il proprietario sia apache, come da wp-admin/includes/file.php:

    // Attempt to determine the file owner of the WordPress files, and that of newly created files
   $wp_file_owner = $temp_file_owner = false;
   if ( function_exists('fileowner') ) {
      $wp_file_owner = @fileowner( __FILE__ );
      $temp_file_owner = @fileowner( $temp_file_name );
  }

Il tuo sarebbe:
wp_file_owner = root
temp_file_owner = apache

if ( $wp_file_owner !== false && $wp_file_owner === $temp_file_owner ) {
    // WordPress is creating files as the same owner as the WordPress files,
    // this means it's safe to modify & create new files via PHP.
    $method = 'direct';
    $GLOBALS['_wp_filesystem_direct_method'] = 'file_owner';
} elseif ( $allow_relaxed_file_ownership ) {
    // The $context directory is writable, and $allow_relaxed_file_ownership is set, this means we can modify files
    // safely in this directory. This mode doesn't create new files, only alter existing ones.
    $method = 'direct';
    $GLOBALS['_wp_filesystem_direct_method'] = 'relaxed_ownership';
}

Se $ wp_file_owner è uguale a $ temp_file_owner, procedere. Il tuo verrebbe catturato nell'altro, che secondo il commento non consente l'eliminazione / creazione, ma solo gli aggiornamenti (l'ho verificato aggiornando il codice di un plugin da Wordpress e ha funzionato).

Nota: non ho esaminato ampiamente il codice, questa è solo la mia rapida interpretazione. Ho avuto lo stesso problema e una volta cambiato utente: gruppo in modo che l'utente httpd sia anche il proprietario del file, non ha più richiesto le credenziali FTP.


Sì, cambiando il proprietario in ha www-datalavorato per me. WordPress divertente!
ankush981

1

Non è una risposta diretta, ma probabilmente deve essere detto: questo è un problema che dovresti evitare di risolvere a meno che non parli di uno sviluppo locale, nel qual caso puoi semplicemente impostare le autorizzazioni su 777.

Il motivo è che se il server web può sovrascrivere il tuo codice, anche qualsiasi codice dannoso in esecuzione su di esso sarà in grado di farlo. Il rischio è molto più grande della comodità di risparmiare qualche secondo senza dover digitare le credenziali ftp.


0

Anche se la domanda non è più così nuova, voglio aggiungere anche i miei due centesimi su questo problema.

Molti ppl hanno Centos (7) sul loro server VPS e le seguenti righe di codice potrebbero risolvere il loro problema.

Imho ha tutto a che fare con SELinux che impedisce a WordPress di fare il suo lavoro come desiderato. Va molto lontano per spiegare cos'è SELinux e cosa fa. Cordiali saluti l'introduzione inizia con:

Security-Enhanced Linux (SELinux) è un meccanismo di sicurezza obbligatorio di controllo degli accessi (MAC) implementato nel kernel.

Solo 3 passaggi per seguire:

  • 1 Aprire un terminale (o accedere al server tramite SSH)
  • 2 Aggiungi la seguente riga di codice chcon -R -t httpd_sys_content_t /var/www/html/wordpress
  • 3 Aggiungi seconda riga di codice chcon -R -t httpd_sys_rw_content_t /var/www/html/wordpress

Nessun riavvio dal server o riavvio da qualsiasi demone necessario.

Non dirò che aiuta tutti, ma per coloro che non hanno disabilitato SELinux dovrebbe essere un sollievo.

Saluti

Nota: si prega di adattarsi alle proprie esigenze (significato percorso per WordPress)

modifica: assicurati di rimuovere la riga define("FS_METHOD", "direct");quando è / è stata utilizzata wp-config.phpperché è assolutamente impossibile quando le righe di codice sopra fanno come desiderato.


0

Nel mio caso, ho risolto il problema passando da GIT alla modalità FTP.

Niente più avvertimenti.

Forse questo aiuterà anche qualcun altro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.