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.
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.
A mensagem pode parecer-se com este exemplo :
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 24Conté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.
Se o seu site apresentar apenas uma página em branco ou um erro 500, consulte os registos do alojamento :
open_basedir restriction in effect.As linhas mais recentes encontram-se geralmente no fim do registo.
No LWS Panel, os ficheiros públicos de um site são geralmente colocados numa pasta deste tipo :
/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.
O caminho incorreto pode estar registado :
Procure em primeiro lugar a parte característica do caminho antigo, por exemplo :
/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.
Substitua o caminho antigo pelo caminho real do ficheiro no seu alojamento LWS.
Por exemplo :
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 :
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.
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.
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.
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.
Coloque-a à equipa LWS e à comunidade. A resposta é publicada após moderação.