Corrigir o erro PHP "open_basedir restriction in effect" no LWS Panel

Procédure

  

Serviço em causa : alojamento web partilhado LWS Panel
Painel em causa : LWS Panel
Nível : intermédio

O erro open_basedir restriction in effect aparece quando um script PHP tenta aceder a um ficheiro ou a uma pasta situada fora do espaço autorizado no seu alojamento.

Pode surgir nomeadamente após a migração de um site, devido a um caminho antigo guardado na configuração, a uma extensão mal configurada ou a um script personalizado.

Antes de começar

Guarde uma cópia do ficheiro antes de o modificar. Deve também dispor da mensagem de erro completa para identificar o caminho recusado e o ficheiro PHP na origem do problema.

Compreender a mensagem de erro

A mensagem pode parecer-se com este exemplo :

Código
Warning: include(): open_basedir restriction in effect.
File(/home/ancien-hebergeur/public_html/config.php)
is not within the allowed path(s):
(/var/www/exemple.com/htdocs/:/tmp/)
in /var/www/exemple.com/htdocs/index.php on line 24

Contém várias informações úteis :

  • /home/ancien-hebergeur/public_html/config.php é o ficheiro ao qual o script tenta aceder ;
  • /var/www/exemple.com/htdocs/ corresponde ao espaço dentro do qual os ficheiros do seu site podem ser utilizados ;
  • /var/www/exemple.com/htdocs/index.php é o script que tentou abrir o ficheiro ;
  • line 24 indica a linha em causa neste script.

Neste exemplo, o site ainda utiliza um caminho proveniente de um alojamento antigo. O PHP bloqueia, portanto, o acesso ao ficheiro.

Encontrar o erro nos registos PHP

Se o seu site apresentar apenas uma página em branco ou um erro 500, consulte os registos do alojamento :

  1. Abra a ferramenta Logs Apache / PHP.
  2. Reproduza a ação que provoca o problema no seu site.
  3. Atualize os registos e procure a linha que contém open_basedir restriction in effect.
  4. Anote o caminho recusado e o ficheiro PHP indicado no final da mensagem.

As linhas mais recentes encontram-se geralmente no fim do registo.

Corrigir o caminho utilizado pelo site

1. Verifique a localização real do ficheiro

No LWS Panel, os ficheiros públicos de um site são geralmente colocados numa pasta deste tipo :

Código
/var/www/votre-domaine.fr/htdocs/

Substitua votre-domaine.fr pelo nome de domínio em causa.

Verifique depois, através do gestor de ficheiros ou por FTP, se o ficheiro procurado se encontra efetivamente nessa pasta ou numa das suas subpastas.

2. Encontre o caminho antigo

O caminho incorreto pode estar registado :

  • num ficheiro de configuração ;
  • num script PHP personalizado ;
  • nos parâmetros de uma extensão ou de um tema ;
  • na configuração de uma pasta de cache, de importação, de cópia de segurança ou de ficheiros temporários ;
  • em dados conservados após uma migração.

Procure em primeiro lugar a parte característica do caminho antigo, por exemplo :

Código
/home/ancien-hebergeur/

Não modifique aleatoriamente os ficheiros internos do WordPress, PrestaShop ou de outra aplicação. Comece por verificar a configuração da extensão ou do módulo indicado na mensagem de erro.

3. Substitua o caminho incorreto

Substitua o caminho antigo pelo caminho real do ficheiro no seu alojamento LWS.

Por exemplo :

Código
Caminho antigo :
/home/ancien-hebergeur/public_html/cache/

Novo caminho :
/var/www/votre-domaine.fr/htdocs/cache/

Num script PHP personalizado, é muitas vezes preferível construir o caminho a partir da pasta do script em vez de guardar o caminho completo do servidor.

Por exemplo :

Código
require __DIR__ . '/config.php';

Esta escrita permite ao script procurar config.php na sua própria pasta.

A diretiva open_basedir não pode ser modificada ou desativada a partir de um ficheiro .user.ini no LWS Panel.

Esta proteção não deve ser contornada. Deve corrigir o caminho utilizado pelo site, pelo script ou pela extensão.

4. Limpe a cache da aplicação

Depois de corrigir o caminho, esvazie a cache a partir da interface do seu CMS ou da sua aplicação.

Um caminho antigo pode continuar registado num ficheiro de cache, mesmo após a modificação da configuração.

Verificar se tudo funciona

Reproduza exatamente a ação que provocava o erro: abra a página em causa, envie o formulário ou reinicie a operação interrompida.

Consulte depois novamente os registos PHP. Não deve aparecer nenhuma nova linha open_basedir restriction in effect.

A correção está concluída quando a página ou a funcionalidade em causa volta a funcionar e não aparece nenhum novo erro open_basedir nos registos PHP.

Problemas frequentes

Vejo apenas um erro 500 ou uma página em branco

A mensagem completa está provavelmente registada nos registos PHP. Abra a ferramenta Logs Apache / PHP a partir do LWS Panel e, em seguida, reproduza o erro antes de atualizar o registo.

O caminho indicado corresponde ao meu antigo alojador

Um caminho absoluto não foi atualizado durante a migração. Procure esse caminho nos ficheiros de configuração, nas definições das extensões e nos scripts personalizados.

Substitua-o pelo caminho atual do seu site no LWS Panel.

Não encontro onde o caminho está guardado

Veja o nome do ficheiro PHP apresentado no final da mensagem de erro. Muitas vezes permite identificar a aplicação, o tema, a extensão ou o script em causa.

Para uma extensão, verifique primeiro as suas definições de cache, importação, cópia de segurança ou ficheiros temporários.

O ficheiro encontra-se na pasta htdocs, mas o erro continua

Verifique se o caminho utilizado pelo script corresponde exatamente à localização real do ficheiro.

Uma ligação simbólica também pode parecer apontar para um ficheiro do site, ao mesmo tempo que direciona o PHP para uma localização exterior ao espaço autorizado. Nesse caso, substitua a ligação por um acesso direto a um ficheiro situado na pasta do site.

O erro volta após a modificação

Esvazie a cache da sua aplicação e depois reproduza o problema. Verifique também se o caminho não está guardado em vários locais.

help.lws.net/a/765
Este artigo foi útil?

Sim

Não

Lido 19 675 vezes

Obrigado! Não hesite em colocar questões sobre a nossa documentação se pretender mais informações e ajudar-nos a melhorá-la.

Artigos semelhantes

Uma pergunta sobre este artigo?

Coloque-a à equipa LWS e à comunidade. A resposta é publicada após moderação.

Fazer uma pergunta à equipa do LWS e à sua comunidade

RGPD: Responsável: LWS-Ligne Web Services. Finalidade: moderação e publicação pública da sua pergunta, eventual notificação de uma resposta. Base legal: consentimento (art. 6.º, n.º 1, al. a) RGPD). Conservação dos e-mails: 90 dias após a notificação, 12 meses no máximo sem resposta. Para exercer os seus direitos, consulte a secção RGPD das nossas condições gerais.