Tutorial completo de resolução de problemas para a incapacidade do Wordfence do WordPress de criar o arquivo wordfence-waf.php.

Alguém mencionou que, após instalar o Wordfence em seu site, continuava recebendo erros informando que o arquivo wordfence-waf.php não podia ser criado no diretório raiz. Pedi que me enviasse uma captura de tela; a mensagem de erro era apenas uma linha, indicando um problema de permissão de arquivo.

Pensei nisso por um momento e percebi que já tinha me deparado com isso antes. Passei horas tentando resolver, quase achando que o provedor de hospedagem estava aprontando alguma coisa. Acabou sendo um problema de permissões e propriedade, mas a lógica do painel de controle da hospedagem pode ser realmente confusa.

Tutorial completo de resolução de problemas para a incapacidade do Wordfence do WordPress de criar o arquivo wordfence-waf.php.

Primeiramente, gostaria de esclarecer o que é este arquivo wordfence-waf.php.

Trata-se, na verdade, do arquivo de proteção do firewall Wordfence, que deve ser gravado no diretório raiz do site, no mesmo nível do arquivo wp-config.php.

Sem esse arquivo, o firewall não pode ser iniciado; é como se você tivesse instalado uma fechadura, mas a chave não pudesse ser inserida.

Opção 1: Modificação de permissões com um clique através do painel de controle (BT Panel/)Hestia CP/cPanel)

Se você usa o BT Panel, o processo é ainda mais simples. Acesse seu site, encontre a página correspondente, clique em Configurações e depois em Permissões de Diretório. Altere a permissão do diretório raiz do site para 755 e a permissão de todos os arquivos para 644. Em seguida, verifique se o usuário que está executando o site é "www"; caso contrário, altere-o. Clique no botão "Reparar Permissões", aguarde a conclusão, atualize o Wordfence e tente novamente.

Para o HestiaCP, acesse a página de edição do site e habilite a opção "Permitir acesso de gravação à raiz da web". Em seguida, execute alguns comandos SSH para unificar o proprietário e as permissões do diretório do site.

chown -R admin:www-data /home/admin/web/你的域名/public_html
chmod -R 755 /home/admin/web/你的域名/public_html
find /home/admin/web/你的域名/public_html -type f -print0 | xargs -0 chmod 644

O cPanel é mais intuitivo. Abra o gerenciador de arquivos, ative a opção "Mostrar arquivos ocultos" no canto superior direito, clique com o botão direito do mouse no diretório e altere as permissões para 755, altere as permissões do arquivo para 644 e também há uma função para definir o proprietário do arquivo nas opções avançadas.

Opção 2: Alterar permissões manualmente via SSH (geral)Linux)

Se o painel de controle não suportar, use SSH manualmente. Após conectar-se ao servidor, unifique a propriedade primeiro. Em um ambiente LNMP/LEMP, o grupo de tempo de execução da web é normalmente www-data ou www.

chown -R 你的面板用户:www-data /网站根目录完全路径

Em seguida, defina as permissões da pasta para 755 e as permissões do arquivo para 644.

find /网站根目录 -type d -print0 | xargs -0 chmod 755
find /网站根目录 -type f -print0 | xargs -0 chmod 644

Após a conclusão do processo, retorne ao painel administrativo do WordPress e reative o firewall; isso provavelmente resolverá o problema.

Opção 3: Criar manualmente o arquivo wordfence-waf.php (uma solução excelente quando as permissões estão bloqueadas)

Se você não conseguir alterar nada pelo painel SSH, faça manualmente. Crie um arquivo chamado wordfence-waf.php no diretório raiz e cole o seguinte código nele.

<?php
if (!defined('WFWAF_VERSION')) {
    define('WFWAF_VERSION', '7.11.0');
}
$wafConfig = array(
    'wafAutoPrepend' => true,
    'wafFile' => __FILE__,
    'wpContentDir' => dirname(__FILE__) . '/wp-content',
    'wpPluginsDir' => dirname(__FILE__) . '/wp-content/plugins',
    'wafLogDir' => dirname(__FILE__) . '/wp-content/wflogs',
);
require_once $wafConfig['wpPluginsDir'] . '/wordfence/lib/waf/waf.php';

Lembre-se de substituir a versão 7.11.0 pela sua versão atual do Wordfence. Defina as permissões do arquivo para 644 e certifique-se de que o proprietário corresponda ao site. Em seguida, edite o arquivo wp-config.php e adicione a seguinte linha no início do arquivo.

require_once 'wordfence-waf.php';

Salve e atualize o Wordfence. O firewall o reconhecerá automaticamente e não reportará mais erros.

Opção 4: Verifique as regras que restringem o acesso de escrita.

Às vezes, o problema não está nas permissões, mas sim no arquivo de configuração que está bloqueando o acesso. Abra o arquivo .htaccess e remova todas as regras que restringem a gravação de arquivos ou impedem a criação de arquivos PHP. No caso do Nginx, verifique a configuração do seu site em busca de restrições como "somente leitura no caminho raiz" ou "create_file off" e remova-as.

Outro cenário é que o próprio host virtual ou hospedagem em nuvem leve restrinja a geração de arquivos PHP no diretório raiz. Nesse caso, você precisa entrar em contato com seu provedor de hospedagem para remover a restrição ou alterar o modo de proteção do Wordfence. Acesse o menu do Wordfence, Todas as Opções, WAF e altere o modo do mecanismo de proteção para Proteção Estendida para ignorar a criação de arquivos na raiz.

Solução 5: Conflitos de plugins causando bloqueio

Alguns plugins de cache ou segurança podem bloquear essa operação. Desative temporariamente plugins de cache como WP Rocket, W3 Total Cache e LiteSpeed ​​Cache, bem como plugins de segurança como Sucuri e iThemes Security. Em seguida, limpe o cache do servidor e o opcache e reinicie o serviço PHP.

systemctl restart php8.3-fpm

Sequência rápida de resolução de problemas (recomenda-se seguir os passos em ordem).

Sugiro que siga esta ordem para evitar complicações. Primeiro, unifique as permissões e a propriedade; isso tem a maior probabilidade de resolver o problema. Se isso não funcionar, reinicie o PHP-FPM e atualize o painel administrativo. Se ainda assim não funcionar, crie manualmente um novo arquivo e modifique o wp-config. Em seguida, verifique se a configuração do Nginx ou do Apache está bloqueando a criação de novos arquivos PHP no diretório raiz. Por fim, considere alterar o modo do firewall.

Uma coisa que preciso lembrar é que você nunca deve definir permissões para 777. As permissões de pastas devem ser 755 e as de arquivos, 644; esse é o padrão. Definir permissões para 777 expõe diretamente seu site, representando um risco de segurança extremamente alto. Se você for hackeado, será tarde demais para se arrepender.

Sinceramente, não tenho certeza se essas soluções funcionarão para o seu caso, mas compartilhei as dificuldades que encontrei e os métodos que descobri. Se você receber outras mensagens de erro, tire uma captura de tela e me envie, que eu posso dar uma olhada.

Já que você leu até aqui, se achou útil, curta e compartilhe. Se quiser receber atualizações em primeira mão, você também pode me seguir!

Obrigado por ler meu artigo. Até a próxima!

发表 评论

Seu endereço de e-mail não será publicado. 必填 项 已 用 * 标注

Voltar ao Topo