it-swarm-pt.tech

Como posso impedir o WordPress de obter informações sobre o FTP ao fazer atualizações?

Como posso impedir o WordPress de solicitar informações de FTP ao fazer atualizações?

29
artlung

Se você editar seu arquivo wp-config.php, 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 Editandowp-config.php para mais informações.

Suas configurações podem variar, mas elas funcionam para mim e para minha configuração de hospedagem. Eu incluí algumas das constantes não usadas, 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);
23
artlung

Verifique a propriedade do seu arquivo. Quando o usuário que o Apache executa pode gravar nos diretórios do wordpress, o processo de atualização integrado simplesmente funciona sem o ftp. As credenciais de FTP são para se o servidor web não tiver os privilégios certos em seus arquivos, então o wordpress solicita seus detalhes de FTP, e tenta usá-los para FTP de volta para o mesmo servidor que está em para poder gravar o arquivos necessários.

12
pixeline

Parece que o WordPress não só verifica se os diretórios são graváveis, como também verifica se o usuário do ApachePOSSUIos diretórios (ou, pelo menos, se o usuário do Apache possui o arquivo temporário criado). 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);
}

Então, uma solução rápida será a de 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 é sua pasta de instalação do WordPress.

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

5
Ardee Aram

Quando ajustei o Apache 2.4 através do EasyApache4 para melhorar a velocidade de carregamento do site em um servidor Centos 7 PHP7, eu tinha habilitado o mod_pagespeed. Ao ativá-lo, ele desabilitará automaticamente o mod_ruid2 e o mod_cgi (e habilitará outros dois módulos). Ao desabilitar o mod_pagespeed, ele não irá reativar o mod_ruid2 automaticamente - ele reativará apenas o mod_cgi. Sem mod_ruid2 o Wordpress solicitará as credenciais de FTP.

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

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

Em ambos os casos, a chave é verificar e ativar o mod_ruid2.

Espero ter ajudado.

1
itmonitor