it-swarm-eu.dev

k provedení požadované akce wordpress potřebuje přístup k webovému serveru. Zadejte prosím ftp

Sleduji Změna oprávnění k souborům "WordPress Codex , ale když se snažím aktualizovat a/nebo instalovat plugin a/nebo theme prostřednictvím wp-admin, dostávám následující:

Chcete-li provést požadovanou akci, WordPress potřebuje přístup ke svému webovému serveru. Chcete-li pokračovat, zadejte svá pověření FTP. Pokud si nepamatujete svá pověření, měli byste kontaktovat webového hostitele.

z úrovně souborového systému:

# 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 běží jako 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
$ 

Chci být schopen provést požadovanou akci (install a/nebo update) prostřednictvím /wp-admin bez pověření FTP.

Jak to mohu udělat?

21
alexus

Přidejte následující do wp-config.php:

define( 'FS_METHOD', 'direct' );

Dejte mi vědět, jak to funguje pro vás.

42
Narendra Solanki

To znamená, že WordPress má omezené oprávnění k provádění změn ve složce, ve které byl nainstalován.

Aby bylo možné tento problém vyřešit, je nutné poskytnout všechna potřebná oprávnění.

Po připojení k serveru přes SSH spusťte v terminálu/PuTTY/Commandline Prompt následující příkaz:

Sudo chown -R Apache:apache /var/www/html

Pokladna tento článek pro plné detaily.

12
Syamraj K

Není to přímá odpověď, ale pravděpodobně musí být řečeno - to je jeden problém, kterému byste se měli vyhnout, pokud nemluvíte o lokálním vývoji, v tomto případě můžete nastavit oprávnění na 777.

Důvodem je to, že pokud webový server může přepsat váš kód, pak jakýkoliv škodlivý kód běžící na něm bude schopen to udělat také. Riziko je o tolik větší, než je pohodlí spoření několika vteřin tím, že nemusíte zadávat pověření ftp.

1
Mark Kaplun

I když je naprosto správné mít vlastnictví jako root:Apache s oprávněními 775 a httpd spustit jako Apache, Wordpress se to nelíbí. Chce, aby byl vlastník Apache, podle 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 );
  }

Vaše by bylo:
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';
}

Pokud $ wp_file_owner je stejný jako $ temp_file_owner, pak pokračujte. Váš by byl zachycen v elseif, který podle komentáře neumožňuje smazat/vytvořit, ale pouze aktualizace (ověřil jsem to aktualizací kódu pluginu z aplikace Wordpress a fungovalo to).

Všiml jsem si, že jsem příliš nezkoumal kód, to je jen moje rychlá interpretace. Měl jsem stejný problém a jakmile jsem přepnul uživatele: skupina tak, že httpd uživatel je také vlastníkem souboru, to nebylo výzva pro FTP pověření už.

1
w00t

V mém případě jsem to vyřešil přepnutím z GIT zpět do režimu FTP.

Žádné další varování.

Možná to pomůže i někomu jinému.

0
MarkPraschan

I když tato otázka už není tak nová, chci k této otázce přidat i své dva centy.

Mnoho ppl má Centos (7) na svém VPS serveru a následující kódové řádky by mohly vyřešit jejich problém.

Imho má co dělat s SELinux, který zadržuje WordPress od dělání je to práce, jak si přál. Je to daleko vysvětlit, co SELinux je a co dělá. FYI úvod začíná:

Security-Enhanced Linux (SELinux) je povinný bezpečnostní mechanismus řízení přístupu (MAC) implementovaný v jádře.

Pouze tři kroky:

  • 1 Otevřete terminál (nebo přistupujte k serveru pomocí SSH)
  • 2 Přidejte následující kódový řádek chcon -R -t httpd_sys_content_t /var/www/html/wordpress
  • 3 Přidat druhý kódový řádek chcon -R -t httpd_sys_rw_content_t /var/www/html/wordpress

Žádné restartování ze serveru nebo restartování z jakéhokoli potřebného démona.

Nebudu říkat, že by to pomohlo všem, ale pro ty, kteří nevypnuli SELinux, by to mělo být úleva.

Na zdraví

Poznámka: Upravte si své vlastní potřeby (tj. Cesta k WordPressu)

upravit: ujistěte se, že jste odstranili řádek define("FS_METHOD", "direct"); když je/byl použit v wp-config.php, protože to je absolutně ne jít, když nad kódové řádky dělají, jak chtěl.

0
Charles