Como impedir o WordPress de solicitar que eu insira informações de FTP ao fazer atualizações?

29

Como impedir o WordPress de solicitar que eu insira informações de FTP ao fazer atualizações?

artlung
fonte

Respostas:

23

Se você editar seu wp-config.phparquivo, poderá pré-carregar essas configurações de FTP como constantes lidas pelo WordPress. Lembre-se de que, em um host compartilhado, você deve estar ciente das possíveis implicações de segurança. Consulte Ediçãowp-config.php para mais informações.

Suas configurações variam, mas elas funcionam para mim e minha configuração de hospedagem. Eu incluí algumas das constantes não utilizadas, prefixadas:

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
fonte
Essa é a maneira mais simples, mas, como diz a pixeline abaixo, verifique as permissões de arquivo. Duas das três credenciais são armazenadas no banco de dados, mas a terceira é gravada em um arquivo (não me lembro qual delas está no topo da minha cabeça).
John P Bloch
12

Verifique a propriedade do arquivo. Quando o usuário que o apache executa como pode gravar nos diretórios wordpress, o processo de atualização integrado tudo funciona sem o ftp. As credenciais de FTP servem para que, se o servidor da Web não tiver os privilégios corretos em seus arquivos, o wordpress solicitará seus detalhes de FTP e tentará usá-los no FTP de volta para o mesmo servidor em que será capaz de escrever o arquivo. arquivos necessários.

pixeline
fonte
1
Você realmente não deve modificar a propriedade do arquivo para a do servidor da Web, pois esse é um risco potencial à segurança.
Otto
... a menos que foi mal configurado, como foi no meu caso :)
pixeline
5

Parece que não só faz verificação WordPress se os diretórios são graváveis, mas verifica se o usuário Apache POSSUI os diretórios (ou pelo menos, se o usuário Apache possui o arquivo temporário, ele cria). Observe estas linhas de código em /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);
}

Portanto, uma solução rápida será emitir este comando e dar a propriedade de toda a instalação do Wordpress para o Apache:

sudo chown -R www-data wordpress/

Onde www-data é o usuário do Apache e, claro, o wordpress é a sua pasta de instalação do WordPress.

Documentei ainda mais minha solução aqui: https://ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/

Ardee Aram
fonte
Esse link está morto agora. Aqui está um arquivo: web.archive.org/web/20131213005955/http://rubiks.ph/…
Sam Wilson
Alguém pode explicar os detalhes de: "$ allow_relaxed_file_ownership Opcional. Se deseja permitir a gravação por grupo / mundo."
Sam Wilson
@ Sam Wilson Agora eu migrei algumas das entradas do meu blog para uma conta gratuita do WordPress. O domínio antigo está morto.
Ardee Aram
1

Ao ajustar o Apache 2.4 através do EasyApache4 para melhorar a velocidade de carregamento do site em um servidor Centos 7 PHP 7, habilitei o mod_pagespeed. Ao ativá-lo, ele desativará automaticamente o mod_ruid2 e o mod_cgi (e ativará outros dois módulos). Ao desativar o mod_pagespeed, ele não reativará o mod_ruid2 automaticamente - reativará apenas o mod_cgi. Sem mod_ruid2, o Wordpress solicitará as credenciais do FTP.

Não há necessidade de codificar wp-config.php ou definir permissões de arquivo (perigosamente) para 777. Basta ativar o mod_ruid2 manualmente, reinicie o Apache e o problema de permissão de FTP / arquivo foi resolvido. O Wordpress e os plugins agora podem ser atualizados como de costume e a mídia carregada na galeria do Wordpress. Funciona imediatamente.

Acabei de verificar que, ao mudar do MPM Prefork para o Worker, ele desativará o mod_ruid2. Ao reverter do Worker para o Prefork, ele não ativará o mod_ruid2, causando o problema descrito nesta postagem.

Nos dois casos, a chave é verificar e ativar o mod_ruid2.

Espero ter ajudado.

itmonitor
fonte
-1

1) Não concordo com a resposta acima por ser muito genérica

1a) Eu só não quero mudar a propriedade de todos os meus arquivos recursivamente (como no uso de uma espingarda para matar um mosquito). Especialmente porque isso funciona perfeitamente antes.

1b) Wordpress com o recurso "furtivo" de repente pede credenciais para ftp

2) Então comecei a ir mais fundo usando a liderança de Ardee Aram. Fui verificar o arquivo file.php e verifiquei sua propriedade. Parece que o file.php depende de sua propriedade (que foi configurada incorretamente como raiz).

Correção: chown www file.php

NOTA: Substitua www por qualquer que seja sua distribuição ou configuração (você pode usar ps aux | egrep "php | http" e ver qual é a propriedade dela na primeira coluna.

Espero que isso ajude alguém a ficar frustrado com isso. Eu nem entendo por que o wordpress não "reclama" em primeiro lugar e depois propõe usar a alternativa de FTP. Agora é como um "recurso" que, de repente, é apresentado.

th3penguinwhisperer
fonte
Bem-vindo ao WPSE, o penguinwhisperer. Por favor, sinta-se livre para fazer o passeio . Re 'a resposta acima', as respostas podem mudar de ordem a qualquer momento, como resultado dos votos das pessoas. Gostaria que você editasse sua postagem para especificar a quem você está se referindo, para que fique claro. Obrigado por adicionar seus pensamentos!
Tim Malone