php inclui erros de caminho: O mesmo código funciona no Apache padrão do Ubuntu e no php conf, mas não no CentOS

1

Assim, o mesmo código funciona no meu servidor Ubuntu, mas quando eu o carrego no meu servidor de hospedagem dedicado rodando o CentOS, parece adicionar um prefixo extra de .:/usr/share/pear:/usr/share/php: Eu tentei definir includepath para coisas diferentes, mas isso simplesmente não funciona. O arquivo está em um diretório chamado language na mesma pasta que o arquivo que está incluindo e estou usando:

include dirname(__FILE__).DIRECTORY_SEPARATOR."language".DIRECTORY_SEPARATOR."storage.inc";
include dirname(__FILE__)."/language/language.php";
include "language/language.php";

e muitas outras combinações, mas não consigo encontrar o arquivo. Eu continuo recebendo a mensagem de erro:

Fatal error: require_once() [function.require]: Failed opening required '/home/neo/public_html/migration/include/class/core/storage.inc' (include_path='.:/usr/share/pear:/usr/share/php:/home/neo/public_html/migration') in /home/neo/public_html/migration/include/class/core/class_lang.inc on line 153
    
por Neo 15.10.2010 / 23:48

1 resposta

2

Sempre que tenho alguma coisa estranha em não trabalhar no CentOS, a primeira coisa a verificar é o selinux. É um sistema de segurança ativado por padrão e impede que os programas acessem arquivos em qualquer lugar onde eles não receberam permissões explícitas.

Você pode procurar em

/var/log/secure or maybe /var/log/audit/audit.log

para negar mensagens, ou você pode testar desativando temporariamente o selinux com

echo 0 >/selinux/enforce

depois teste - mas ligue-o novamente com

echo 1 >/selinux/enforce

e saiba como ajustá-lo para que funcione corretamente.

    
por 16.10.2010 / 04:29