Resolver o erro Failed to Open Stream do WordPress

Resumo: O erro «failed to open stream» significa que o PHP não conseguiu ler ou abrir um arquivo que esperava encontrar. As causas mais comuns são permissões de arquivo incorretas, um arquivo ausente ou excluído, uma restrição open_basedir no seu host ou um caminho absoluto fixo no código que sobrou de uma migração do site. Use a tabela de decisão abaixo para ir direto à solução da sua mensagem de erro exata.

O erro do WordPress «Failed to Open Stream» aparece quando o PHP não consegue abrir um arquivo que o seu site espera encontrar. Ele se manifesta como um aviso do PHP no seu registro de erros e pode impedir que páginas, plugins ou temas carreguem corretamente.

Entendendo o erro «WordPress Failed To Open Stream»

Quando o WordPress ou um plugin chama fopen(), include() ou require() do PHP em um caminho de arquivo, o PHP devolve este erro se não conseguir concluir a operação. No WordPress 6.7 e posteriores, o erro costuma vir acompanhado de um stack trace em wp-content/debug.log quando o WP_DEBUG_LOG está ativado.

A redação exata do erro varia conforme a causa, e o sufixo informa exatamente o que deu errado:

  • failed to open stream: No such file or directory — o arquivo não existe nesse caminho.
  • failed to open stream: Permission denied — o arquivo existe, mas o PHP não tem acesso de leitura.
  • failed to open stream: Operation not permitted — uma restrição open_basedir no nível do servidor está bloqueando o acesso.

O que causa o erro Failed To Open Stream no WordPress?

Use esta tabela para associar o seu sufixo de erro exato à solução certa:

Sufixo de erro Causa raiz Ir para
No such file or directory Arquivo ausente ou excluído; caminho absoluto fixo no código do servidor antigo Método 4 ou Método 6
Permission denied Permissões de arquivo ou diretório restritivas demais Método 1
Operation not permitted Restrição open_basedir no seu host Método 5
Sem sufixo claro / genérico Conflito de plugin ou tema Método 2 ou Método 3

Causas raiz comuns:

  • Permissões de arquivo incorretas: Os arquivos devem ser 644 e os diretórios 755. Configurações mais restritivas impedem o PHP de ler os arquivos de que precisa.
  • Conflitos de plugins ou temas: Um plugin ou tema referenciando um caminho que não existe mais, ou dois plugins chamando o mesmo arquivo de formas incompatíveis.
  • Arquivos ausentes ou corrompidos: Arquivos excluídos durante uma atualização ou danificados por um envio parcial.
  • Restrições open_basedir: Alguns hosts restringem a quais diretórios o PHP pode acessar. Qualquer chamada fopen() ou include() fora do caminho permitido falha imediatamente.
  • Divergência de caminho absoluto após a migração: Se o seu site foi migrado para um servidor novo, os caminhos absolutos antigos armazenados no banco de dados (por exemplo, uma opção de plugin contendo /var/www/old-host/wp-content/...) fazem cada require() que aponta para eles falhar no novo servidor.

6 soluções eficazes para superar o erro

No suporte da WP STAGING, o gatilho mais comum que vemos são permissões de arquivo incorretas ou um plugin retendo um caminho de arquivo obsoleto após uma migração. Comece pelo método que corresponde ao seu sufixo de erro acima e avance a partir daí.

Método 1: Verificar as permissões de arquivo

Os arquivos da sua instalação do WordPress devem ser 644 e os diretórios 755. Você pode verificar e ajustar as permissões usando um cliente FTP ou o Gerenciador de Arquivos do seu host. No WordPress 6.7+, você também pode usar a tela de Saúde do site (Ferramentas → Saúde do site → Informações → Permissões do sistema de arquivos) para identificar diretórios com modos inesperados.

Diretório de destino do FileZilla
Diretório de destino do FileZilla

Método 2: Desativar plugins

Quando encontrar problemas com plugins específicos, desative-os um de cada vez para isolar o conflito. Desativar plugins permite que você identifique o problemático sem afetar o resto do seu site.

Veja como você pode desativar plugins:

Desativar plugin

Método 3: Mudar para o tema padrão

Mude para um tema padrão do WordPress (como o Twenty Twenty-Five) para descartar um erro de caminho específico do tema. Se o erro desaparecer após a mudança, o seu tema ativo é a origem do problema.

Veja como fazer:

Método 4: Reinstalar os arquivos do núcleo do WordPress

Se a causa forem arquivos do núcleo ausentes ou corrompidos, reinstalar o núcleo do WordPress os substitui de forma limpa. Faça primeiro um backup do seu site e, em seguida, siga os passos abaixo.

Lembre-se: Antes de prosseguir com qualquer modificação, é crucial criar um backup completo do seu site WordPress. Esse backup garante que você tenha uma cópia de todos os seus arquivos e bancos de dados, oferecendo uma rede de segurança caso algo dê errado durante o processo de reinstalação.

Preparativos essenciais para reinstalar os arquivos do núcleo do WordPress

Siga estes passos detalhados para reinstalar os arquivos do núcleo do WordPress e retomar o controle do seu site:

Passo 1: Baixar a versão mais recente do WordPress

Visite o site oficial do WordPress (https://wordpress.org) e baixe a versão mais recente do WordPress. Salve o pacote de instalação no seu computador local.

Passo 2: Extrair o pacote de instalação do WordPress

Quando o download terminar, extraia o conteúdo do pacote de instalação do WordPress no seu computador usando uma ferramenta de compactação como WinRAR ou 7-Zip. Você terá agora uma pasta contendo os arquivos extraídos.

Passo 3: Conectar-se ao seu site via FTP

Para prosseguir com a reinstalação, você precisa se conectar ao servidor do seu site usando FTP (Protocolo de Transferência de Arquivos). Você pode usar um cliente FTP como o FileZilla para estabelecer a conexão. Se você não tiver as suas credenciais de acesso FTP à mão, obtenha-as com o seu provedor de hospedagem.

FileZilla
Passo 4: Excluir os arquivos existentes do WordPress

Na visualização do servidor remoto do seu cliente FTP, navegue até o diretório raiz da sua instalação do WordPress. Exclua todos os arquivos e pastas, exceto a pasta «wp-content» e o arquivo «wp-config.php». Este passo garante um ponto de partida limpo para o processo de reinstalação.

Passo 5: Enviar os novos arquivos do WordPress

Na visualização local do seu cliente FTP, navegue até os arquivos do WordPress extraídos do Passo 2. Selecione todos os arquivos e pastas dentro da pasta extraída e envie-os para o diretório raiz da sua instalação do WordPress no servidor. Esse processo pode levar algum tempo, dependendo da velocidade da sua conexão com a internet.

Passo 6: Executar o script de instalação do WordPress

Quando a transferência de arquivos terminar, abra um navegador web e visite o seu site WordPress. Será exibido o script de instalação do WordPress. Siga as instruções para configurar os ajustes do seu banco de dados, criar uma conta de administrador e concluir o processo de instalação.

Passo 7: Verificar e testar

Após a instalação, faça login no seu painel do WordPress e verifique se todo o conteúdo, os temas e os plugins do seu site estão intactos. Teste várias funcionalidades para garantir que tudo está funcionando sem problemas.

Método 5: Resolver as restrições open_basedir

Alguns hosts web restringem a quais diretórios do sistema de arquivos o PHP pode acessar usando a diretiva open_basedir. Quando um plugin ou o núcleo do WordPress tenta abrir um arquivo fora do caminho permitido, o PHP gera failed to open stream: Operation not permitted, independentemente de as permissões do arquivo estarem corretas.

Como corrigir:

  1. Entre em contato com o seu host e peça para ampliar a configuração open_basedir para incluir o caminho que o PHP está tentando alcançar. Forneça o caminho exato do seu registro de erros.
  2. Mova o arquivo para um caminho que o open_basedir já permita — por exemplo, mova os scripts personalizados para wp-content/ em vez de um diretório acima da raiz web.
  3. Se você gerencia o seu próprio servidor, edite a diretiva open_basedir no php.ini ou na sua configuração por vhost e reinicie o PHP-FPM.

Método 6: Corrigir divergências de caminho absoluto após a migração do site

Se você migrou recentemente o seu site WordPress para um novo servidor ou provedor de hospedagem, os caminhos absolutos antigos armazenados no banco de dados podem causar este erro. Um plugin pode ter salvo o caminho do seu arquivo no momento da instalação — por exemplo, /var/www/old-host/wp-content/... — e cada require() ou fopen() que aponta para esse caminho falha no novo servidor porque o diretório não existe mais ali.

Como corrigir:

  1. Ative o registro de depuração: adicione define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); ao wp-config.php. Leia wp-content/debug.log para encontrar o caminho obsoleto exato que o PHP está tentando abrir.
  2. Use uma ferramenta de buscar e substituir para atualizar o caminho armazenado em todo o seu banco de dados. Com o WP-CLI (disponível na maioria dos hosts gerenciados), você pode executar: wp search-replace '/old/absolute/path' '/new/absolute/path' --all-tables. Execute primeiro em uma cópia de staging.
  3. Limpe qualquer cache de objetos após a substituição para que os valores em cache contendo o caminho antigo sejam apagados.

O que fazer se nenhuma das soluções funcionar

Se você tentou os seis métodos e o erro persiste, percorra esta lista de verificação:

  1. Leia a linha de erro completa em debug.log — o caminho que o PHP tentou abrir indica qual método repetir. Um caminho dentro de wp-content/plugins/ aponta para o Método 2; um caminho que aponta para um diretório inexistente aponta para o Método 6.
  2. Desative todos os plugins de uma vez — não apenas um de cada vez. Se o erro parar, reative-os em pares para restringir o conflito mais rapidamente.
  3. Mude para um tema padrão — se ainda não fez isso, troque para o Twenty Twenty-Five para eliminar o tema como origem.
  4. Pergunte ao seu host — forneça a linha de erro exata do debug.log. Os hosts podem confirmar se uma política open_basedir ou uma mudança de permissões do lado do servidor é a causa.
  5. Restaure a partir de um backup — se o erro começou após uma atualização ou uma mudança de configuração, use o fluxo de restauração da WP STAGING para voltar ao último estado funcional enquanto investiga a causa raiz.

Conclusão

Para resolver o «WordPress Failed to Open Stream Error», identifique o sufixo de erro em wp-content/debug.log e aplique a solução correspondente: verifique as permissões de arquivo (Método 1), desative os plugins em conflito (Método 2), troque de tema (Método 3), reinstale os arquivos do núcleo (Método 4), resolva as restrições open_basedir (Método 5) ou corrija as divergências de caminho absoluto após a migração (Método 6). Crie sempre um backup antes de fazer alterações. EXPERIMENTE O WP STAGING GRÁTIS

Artigos relacionados