it-swarm.dev

Wie kann ich verhindern, dass WordPress mich bei Aktualisierungen zur Eingabe von FTP-Informationen auffordert?

Wie kann ich verhindern, dass WordPress mich bei Aktualisierungen zur Eingabe von FTP-Informationen auffordert?

29
artlung

Wenn Sie Ihre wp-config.php-Datei bearbeiten, können Sie diese FTP-Einstellungen als von WordPress gelesene Konstanten vorab laden. Denken Sie daran, dass Sie auf einem gemeinsam genutzten Host die möglichen Auswirkungen auf die Sicherheit berücksichtigen sollten. Weitere Informationen finden Sie unter Bearbeiten vonwp-config.php .

Ihre Einstellungen variieren, aber diese funktionieren für mich und mein Hosting-Setup. Ich habe einige der unbenutzten Konstanten eingefügt, vorangestellt:

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);
23
artlung

Überprüfen Sie Ihren Dateibesitz. Wenn der Benutzer, unter dem Apache ausgeführt wird, in die WordPress-Verzeichnisse schreiben kann, funktioniert der integrierte Upgrade-Prozess nur ohne FTP. Die FTP-Anmeldeinformationen gelten für den Fall, dass der Webserver nicht über die richtigen Berechtigungen für Ihre Dateien verfügt. WordPress fordert Sie dann zur Eingabe Ihrer FTP-Daten auf und versucht, diese zu verwenden, um einen FTP-Zugriff auf denselben Server zu ermöglichen, auf dem es die Datei schreiben kann Dateien, die es braucht.

12
pixeline

Es scheint, dass WordPress nicht nur prüft, ob die Verzeichnisse beschreibbar sind, sondern auch, ob der Apache-Benutzerdie Verzeichnisse besitzt (oder zumindest, ob der Apache-Benutzer die von ihm erstellte temporäre Datei besitzt). Beachten Sie die folgenden Codezeilen unter /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);
}

Eine schnelle Lösung besteht darin, diesen Befehl abzusetzen und Apache den Besitz der gesamten Wordpress-Installation zu übertragen:

Sudo chown -R www-data wordpress/

Wobei www-data der Apache-Benutzer ist und wordpress natürlich Ihr WordPress-Installationsordner.

Ich habe meine Lösung hier weiter dokumentiert: https://ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrade/

5
Ardee Aram

Bei der Feinabstimmung von Apache 2.4 über EasyApache4 zur Verbesserung der Ladegeschwindigkeit von Websites auf einem Centos 7 PHP 7-Server hatte ich mod_pagespeed aktiviert. Bei Aktivierung werden mod_ruid2 und mod_cgi automatisch deaktiviert (und die anderen beiden Module aktiviert). Wenn Sie mod_pagespeed deaktivieren, wird mod_ruid2 nicht automatisch wieder aktiviert - es wird nur mod_cgi wieder aktiviert. Ohne mod_ruid2 fordert Wordpress die FTP-Zugangsdaten an.

Es ist nicht erforderlich, wp-config.php fest zu codieren oder Dateiberechtigungen (gefährlich) auf 777 zu setzen. Aktivieren Sie mod_ruid2 einfach manuell, starten Sie Apache neu und das Problem mit den FTP-/Dateiberechtigungen ist behoben. Wordpress und Plugins können jetzt wie gewohnt aktualisiert und Medien in die Wordpress-Galerie hochgeladen werden. Es funktioniert sofort.

Ich habe gerade überprüft, dass beim Wechsel von MPM Prefork zu Worker mod_ruid2 deaktiviert wird. Wenn Sie von Worker zu Prefork zurückkehren, wird mod_ruid2 nicht aktiviert, wodurch das in diesem Beitrag beschriebene Problem verursacht wird.

In beiden Fällen muss mod_ruid2 überprüft und aktiviert werden.

Hoffe geholfen zu haben.

1
itmonitor