Come posso impedire a WordPress di chiedermi di inserire le informazioni FTP durante gli aggiornamenti?


29

Come posso impedire a WordPress di chiedermi di inserire le informazioni FTP durante gli aggiornamenti?

Risposte:


23

Se modifichi il tuo wp-config.phpfile 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);

Questo è il modo più semplice, ma come dice la pixeline di seguito, controlla le autorizzazioni dei file. Due delle tre credenziali sono archiviate nel database, ma la terza è scritta in un file (non ricordo quale sia al di sopra della mia testa).
John P Bloch,

12

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.


1
Non dovresti davvero modificare la proprietà dei file con quella del server web, poiché si tratta di un potenziale rischio per la sicurezza.
Otto

... a meno che non sia stato impostato male, come nel mio caso :)
pixeline

5

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/


Quel collegamento è morto ora. Ecco un archivio: web.archive.org/web/20131213005955/http://rubiks.ph/…
Sam Wilson,

Qualcuno può spiegare i dettagli di: "$ allow_relaxed_file_ownership Facoltativo. Se consentire il gruppo / mondo scrivibile."
Sam Wilson,

@Sam Wilson Ora ho migrato alcune delle voci del mio blog su un account WordPress gratuito. Il vecchio dominio è morto.
Ardee Aram,

1

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

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.


Benvenuti in WPSE, th3penguinwhisperer. Non esitate a fare il tour . Ri 'la risposta sopra', le risposte possono cambiare ordine in qualsiasi momento a seguito dei voti delle persone. Mi piacerebbe che tu modifichi il tuo post per specificare a chi stai riferendo la risposta, quindi è chiaro. Grazie per aver aggiunto i tuoi pensieri!
Tim Malone,
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.