Um die gewünschte Aktion auszuführen, muss WordPress auf Ihren Webserver zugreifen. Bitte geben Sie Ihr FTP ein

Ich folge dem Ändern von Dateiberechtigungen «WordPress Codex , aber wenn ich versuche, plugin und / oder theme über wp-admin zu aktualisieren und / oder zu installieren, bekomme ich folgendes:

Um die angeforderte Aktion auszuführen, muss WordPress auf Ihren Webserver zugreifen. Bitte geben Sie Ihre FTP-Zugangsdaten ein, um fortzufahren. Wenn Sie sich nicht an Ihre Anmeldeinformationen erinnern, sollten Sie sich an Ihren Webhost wenden.

von Dateisystemebene:

 # 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 läuft als 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 $ 

Ich möchte in der Lage sein, die angeforderte Aktion ( install und / oder update ) über /wp-admin ohne FTP-Zugangsdaten durchzuführen.

Wie kann ich das machen?

Solutions Collecting From Web of "Um die gewünschte Aktion auszuführen, muss WordPress auf Ihren Webserver zugreifen. Bitte geben Sie Ihr FTP ein"

Dies bedeutet, dass WordPress eingeschränkte Berechtigungen für Änderungen in dem Ordner hat, in dem es installiert wurde.

Um dies zu beheben, müssen Sie lediglich die erforderlichen Berechtigungen für das gleiche bereitstellen.

Führen Sie den folgenden Befehl in Ihrer Terminal / Putty / Commandline-Eingabeaufforderung aus, nachdem Sie eine Verbindung zu Ihrem Server über SSH hergestellt haben:

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

Überprüfen Sie diesen Artikel für alle Details.

Fügen Sie wp-config.php Folgendes hinzu:

 define( 'FS_METHOD', 'direct' ); 

Lass mich wissen, wie es für dich funktioniert.

Nicht eine direkte Antwort, aber wahrscheinlich muss gesagt werden – das ist ein Problem, das Sie lösen sollten, es sei denn Sie sprechen über eine lokale Entwicklung, in diesem Fall können Sie nur Berechtigungen auf 777 setzen.

Der Grund dafür ist, dass, wenn der Webserver Ihren Code überschreiben kann, jeder bösartige Code, der darauf ausgeführt wird, das auch kann. Das Risiko ist nur so viel größer als die Bequemlichkeit, einige Sekunden zu sparen, indem man die ftp-Anmeldeinformationen nicht eingeben muss.

Obwohl es völlig korrekt ist, den Besitz als root:apache mit den Berechtigungen 775 und httpd, um als apache zu laufen, mag WordPress das nicht. Er möchte, dass der Besitzer apache , wie in 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 ); } 

Dein wäre:
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'; } 

Wenn $ wp_file_owner gleich $ temp_file_owner ist, fahren Sie fort. Ihre würden in der elseif abgefangen werden, die nach dem Kommentar nicht erlauben, löschen / erstellen, sondern nur Updates (Ich überprüft dies durch die Aktualisierung des Codes eines Plugins in WordPress, und es hat funktioniert).

Hinweis: Ich habe den Code nicht ausführlich durchgesehen, dies ist nur meine schnelle Interpretation. Ich hatte das gleiche Problem und sobald ich Benutzer: Gruppe wechselte, so dass der httpd Benutzer auch der Dateiinhaber ist, forderte es nicht mehr für FTP Anmeldeinformationen an.