Como corrigir o problema "PHP Fatal error: Unknown: Failed opening required wordfence-waf.php"
Após realizar uma migração de hospedagem de um outro servidor para a Hostoo é possível que o site fique inacessível (geralmente exibindo um erro 500 no navegador).
Caso o seu site seja feito em WordPress e possua instalado o plugin Wordfence, é necessário alterar alguns arquivos para que se adequem à estrutura de arquivos da nova hospedagem.
Para corrigir esse erro, primeiro acesse os arquivos da sua hospedagem (via FTP, SCP ou pelo Gerenciador de Arquivos do painel da Hostoo). Geralmente seu site estará localizado na pasta public_html. A partir daí, faça as correções listadas abaixo.
Obtenha o nome de usuário FTP de sua hospedagem
Antes de fazer as correções nos arquivos será necessário saber o nome de usuário FTP da sua hospedagem aqui na Hostoo. Para descobrir isso, acesse o painel da Hostoo, clique em sua hospedagem e vá até a aba Arquivos > FTP. O nome do usuário estará na seção Acesso FTP.
Após obter o nome de usuário FTP, copie-o pois ele será necessário nos passos a seguir.
Corrigindo o arquivo .user.ini
Já na pasta do seu site, busque por um arquivo com o nome .user.ini. Dentro deste arquivo, verifique se existe um código similar a este abaixo. Se o arquivo ou o código não existirem, basta pular para o próximo passo.
; Wordfence WAF
auto_prepend_file = '/home/xxxyyyzz/public_html/wordfence-waf.php'
; END Wordfence WAF
Para fazer a correção, altere o código para o formato abaixo. Lembre-se de alterar o texto NOME_USUARIO_FTP para o seu usuário FTP copiado no passo mais acima.
; Wordfence WAF
auto_prepend_file = '/home/NOME_USUARIO_FTP/public_html/wordfence-waf.php'
; END Wordfence WAF
Corrigindo o arquivo .htaccess
Ainda na pasta de arquivos do seu site, busque um arquivo com o nome .htaccess. Dentro deste arquivo, verifique se existe um código similar a este abaixo. Se o arquivo ou o código não existirem, basta pular para o próximo passo.
# Wordfence WAF
<IfModule LiteSpeed>
php_value auto_prepend_file '/home/xxxyyyzz/public_html/wordfence-waf.php'
</IfModule>
<IfModule lsapi_module>
php_value auto_prepend_file '/home/xxxyyyzz/public_html/wordfence-waf.php'
</IfModule>
# END Wordfence WAF
Corrija o código para o formato abaixo. Lembre-se de alterar o texto NOME_USUARIO_FTP para o seu usuário FTP copiado no passo mais acima.
# Wordfence WAF
<IfModule LiteSpeed>
php_value auto_prepend_file '/home/NOME_USUARIO_FTP/public_html/wordfence-waf.php'
</IfModule>
<IfModule lsapi_module>
php_value auto_prepend_file '/home/NOME_USUARIO_FTP/public_html/wordfence-waf.php'
</IfModule>
# END Wordfence WAF
Corrigindo o arquivo wordfence-waf.php
Agora busque pelo arquivo com o nome wordfence-waf.php. Dentro deste arquivo deverá ter um código similar a este abaixo.
if (file_exists('/home/xxxyyyzz/public_html/wp-content/plugins/wordfence/waf/bootstrap.php')) {
define('WFWAF_LOG_PATH', '/home/xxxyyyzz/public_html/wp-content/wflogs/');
include_once '/home/xxxyyyzz/public_html/wp-content/plugins/wordfence/waf/bootstrap.php';
}
Novamente, altere as ocorrências do caminho de pasta do servidor antigo (/home/xxxyyyzz/public_html) e altere para o caminho no servidor novo deixando similar ao formato abaixo:
if (file_exists('/home/NOME_USUARIO_FTP/public_html/wp-content/plugins/wordfence/waf/bootstrap.php')) {
define('WFWAF_LOG_PATH', '/home/NOME_USUARIO_FTP/public_html/wp-content/wflogs/');
include_once '/home/NOME_USUARIO_FTP/public_html/wp-content/plugins/wordfence/waf/bootstrap.php';
}
Feitas estas alterações, acesse o seu site novamente e ele deverá estar funcionando corretamente.
O erro continua após fazer as correções
Se mesmo após fazer estas correções o erro 500 continua a acontecer no seu site, existem algumas prováveis causas:
- As alterações podem não ter sido feitas corretamente;
- Existe outra coisa em seu site que está causando o problema;
- O site pode estar exibindo uma versão em cache.
Uma opção que é possível tentar seria a de remover o plugin do Wordfence manualmente do seu site. Para fazer isso, execute os seguintes passos:
- Acesse a pasta public_html/wp-content/plugins e remova ou renomeei a pasta wordfence;
- Volte até a pasta public_html, abra o arquivo .user.ini e apague o trecho de código citado anteriormente;
- Ainda na pasta public_html, abra o arquivo .htaccess e apague o trecho de código citado anteriormente;
- Agora exclua o arquivo wordfence-waf.php;
Após executar os passos acima, acesse o seu site novamente. Se o Wordfence era o único problema que estava causando erro no seu site, então deverá funcionar normalmente agora.
Se desejar continuar usando o Wordfence no site, acesse o painel administrativo do WordPress e instale o plugin novamente.