it-swarm-pt.tech

para executar a ação solicitada, o wordpress precisa acessar seu servidor web. por favor digite seu ftp

Estou seguindo Alterando Permissões de Arquivos "WordPress Codex , mas quando tento atualizar e/ou instalar plugin e/ou theme através de wp-admin, estou seguindo:

Para executar a ação solicitada, o WordPress precisa acessar seu servidor da web. Por favor insira suas credenciais de FTP para prosseguir. Se você não se lembra de suas credenciais, você deve entrar em contato com seu web host.

do nível do sistema de arquivos:

# 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 é executado como 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
$ 

Gostaria de poder executar a ação solicitada (install e/ou update) até /wp-admin without credenciais de FTP.

Como eu posso fazer isso?

21
alexus

Adicione o seguinte ao wp-config.php:

define( 'FS_METHOD', 'direct' );

Deixe-me saber como isso funciona para você.

42
Narendra Solanki

Isso significa que o WordPress está tendo permissão limitada para fazer alterações na pasta em que foi instalado.

Para corrigir isso, tudo o que você precisa fazer é fornecer as permissões necessárias para o mesmo.

Execute o seguinte comando no Terminal/PuTTY/Linha de Comando após conectar-se ao seu servidor via SSH:

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

Checkout este artigo para detalhes completos.

12
Syamraj K

Não é uma resposta direta, mas provavelmente tem que ser dito - este é um problema que você deve evitar resolver a menos que você esteja falando sobre um desenvolvimento local, caso em que você pode apenas definir permissões para 777.

O motivo é que, se o servidor da Web puder substituir seu código, qualquer código mal-intencionado em execução poderá fazer isso também. O risco é muito maior do que a conveniência de economizar alguns segundos por não ter que digitar as credenciais de ftp.

1
Mark Kaplun

Mesmo que seja totalmente correto ter a propriedade como root:Apache com permissões 775, e o httpd para executar como Apache, o Wordpress não gosta disso. Ele quer que o proprietário seja Apache, conforme 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 );
  }

Seu seria:
wp_file_owner = raiz
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';
}

Se $ wp_file_owner for o mesmo que $ temp_file_owner, prossiga. Seu seria pego no elseif, que de acordo com o comentário não permite excluir/criar, mas apenas atualizações (eu verifiquei isso atualizando o código de um plugin de dentro do Wordpress, e funcionou).

Note que eu não olhei extensivamente através do código, esta é apenas a minha interpretação rápida. Eu tive o mesmo problema e uma vez que eu mudei user: group para que o usuário do httpd também seja o dono do arquivo, ele não solicitou mais credenciais de FTP.

1
w00t

No meu caso, resolvi isso mudando do GIT de volta para o modo FTP.

Não há mais aviso.

Talvez isso ajude alguém também.

0
MarkPraschan

Embora a questão não seja tão nova, quero acrescentar meus dois centavos também nesta edição.

Um monte de pessoas tem Centos (7) em seu servidor VPS e seguindo as linhas de código poderia resolver o seu problema.

O Imho tem tudo a ver com o SELinux, que impede que o WordPress faça o trabalho desejado. Vai longe para explicar o que SELinux é e o que faz. FYI a introdução começa com:

O Security-Enhanced Linux (SELinux) é um mecanismo de segurança de controle de acesso (MAC) obrigatório implementado no kernel.

Apenas 3 passos para seguir:

  • 1 Abra um terminal (ou acesse o servidor por meio do SSH)
  • 2 Adicione a seguinte linha de código chcon -R -t httpd_sys_content_t /var/www/html/wordpress
  • 3 Adicione a segunda linha de código chcon -R -t httpd_sys_rw_content_t /var/www/html/wordpress

Não reinicialize a partir do servidor ou reinicie a partir de qualquer daemon necessário.

Não vou dizer que ajuda a todos, mas para aqueles que não desativaram o SELinux, isso deveria ser um alívio.

Felicidades

Nota: Por favor, ajuste suas próprias necessidades (caminho para o WordPress)

edit: certifique-se de remover a linha define("FS_METHOD", "direct"); quando ela é/foi usada em wp-config.php, porque isso é absolutamente desnecessário quando as linhas de código estão acima do desejado.

0
Charles