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

29

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

artlung
quelle

Antworten:

23

Wenn Sie Ihre wp-config.phpDatei bearbeiten, können Sie diese FTP-Einstellungen als von WordPress gelesene Konstanten vorab laden. Denken Sie daran, dass Sie auf einem gemeinsam genutzten Host mögliche Auswirkungen auf die Sicherheit berücksichtigen sollten. Weitere Informationen finden Sie unter Bearbeitenwp-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);
artlung
quelle
Dies ist der einfachste Weg, aber wie pixeline unten sagt, überprüfen Sie die Dateiberechtigungen. Zwei der drei Anmeldeinformationen sind in der Datenbank gespeichert, die dritte wird jedoch in eine Datei geschrieben (ich kann mich nicht erinnern, welche Datei sich auf meinem Kopf befindet).
John P Bloch
12

Ü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.

Pixeline
quelle
1
Sie sollten den Dateibesitz nicht an den des Webservers anpassen, da dies ein potenzielles Sicherheitsrisiko darstellt.
Otto
... es sei denn, es war schlecht eingerichtet, wie es in meinem Fall war :)
Pixeline
5

Es scheint , dass nicht nur Wordpress zu überprüfen , ob die Verzeichnisse beschreibbar sind, aber es prüft , ob der Apache Benutzer OWNS die Verzeichnisse (oder zumindest, wenn der Apache Benutzer die temporäre Datei besitzt schafft es). 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);
}

Daher besteht eine schnelle Lösung 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/

Ardee Aram
quelle
Dieser Link ist jetzt tot. Hier ist ein Archiv: web.archive.org/web/20131213005955/http://rubiks.ph/…
Sam Wilson
Kann jemand die Details von erklären: "$ allow_relaxed_file_ownership Optional. Ob Group / World beschreibbar sein soll."
Sam Wilson
@Sam Wilson Ich habe jetzt einige meiner Blog-Einträge auf einen kostenlosen WordPress-Account migriert. Alte Domain ist tot.
Ardee Aram
1

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.

itmonitor
quelle
-1

1) Ich konnte der obigen Antwort nicht zustimmen, da sie zu allgemein ist

1a) Ich möchte einfach nicht rekursiv den Besitzer aller meiner Dateien wechseln (wie bei der Verwendung einer Schrotflinte, um einen Musquito zu töten). Zumal dies einwandfrei funktioniert.

1b) Wordpress mit der "hinterhältigen" Funktion fragt Sie plötzlich nach Anmeldeinformationen für FTP

2) Also fing ich an, mit Ardee Arams Blei tiefer zu graben. Ich habe die Datei file.php eingecheckt und den Besitz überprüft. Es sieht so aus, als ob die Datei.php von ihrem eigenen Besitz abhängt (der fälschlicherweise als root festgelegt wurde).

Fix: chown www file.php

ANMERKUNG: Ersetzen Sie www durch Ihre Distribution oder Einstellungen (Sie können ps aux | egrep "php | http" verwenden und in der ersten Spalte sehen, was der Eigentümer ist.

Ich hoffe, das hilft jemand anderem, sich darüber zu ärgern. Ich verstehe nicht einmal, warum WordPress sich überhaupt nicht "beschwert" und dann vorschlägt, die FTP-Alternative zu verwenden. Jetzt ist es wie ein "Feature", das plötzlich eingeführt wird.

der Flüsterer
quelle
Willkommen bei WPSE, dem Flüsterer. Bitte nehmen Sie an der Tour teil . Bei der obigen Antwort kann sich die Reihenfolge aufgrund der Stimmen der Teilnehmer jederzeit ändern. Würde es lieben, wenn Sie Ihren Beitrag bearbeiten, um anzugeben, auf welche Antwort Sie sich beziehen, damit es klar ist. Vielen Dank für Ihre Meinung!
Tim Malone