acessando o caminho de fora da raiz com o symlink

4

Eu preciso adicionar um caminho externo à configuração do meu apache. (httpd)

então, eu fiz um link simbólico para esse caminho na pasta raiz do meu httpd, o caminho é: / var / log / httpd / (eu quero mostrar os logs diretamente nos meus projetos)

E eu posso acessar todo o caminho do meu navegador digitando: link

mas php me lança um erro, quando tento acessá-lo de um arquivo php:

código:

function logInfo() {

$log_path = $_SERVER['DOCUMENT_ROOT'] . "/httpd/local.cmp-error_log";
$php_log = file_get_contents($log_path);

print_r ($php_log);

}

erro:

[Sun Jul 17 23:45:19.960292 2016] [:error] [pid 19451] [client 127.0.0.1:34718] PHP Warning:  file_get_contents(/home/txx/http/www/httpd/local.cmp-error_log): failed to open stream: Operation not permitted in /home/txx/http/www/base_home/config/sys.php on line 8

Onde está o erro aqui?

    
por linearSpin 17.07.2016 / 23:54

1 resposta

7

A idéia básica é que você não pode acessar arquivos fora da raiz do documento. Esse é o ponto da raiz do documento. Existem várias proteções que impedem o Apache de seguir links simbólicos fora da raiz. Você precisa ativar FollowSymlinks no diretório que contém o link, mas se você conseguir navegar pelo arquivos, isso significa que isso já está feito.

Você também precisa ter certeza de que o PHP não está restrito à raiz do documento. Consulte esta pergunta sobre estouro de pilha : verifique se php.ini não contém a configuração open_basedir . Outra restrição em potencial é o SELinux, se sua máquina tiver sido fortalecida, o PHP pode estar restrito a alguns diretórios predefinidos e, em particular, pode ser proibido acessar diretórios de usuário. Consulte também Acesse o arquivo fora da raiz do documento .

Se você não conseguir acessar algo fora da raiz da web, ou se preferir não enfraquecer demais a segurança do seu sistema, poderá trazer os arquivos para a raiz da web em vez de fazer com que o Apache e o PHP procurem em outro lugar. Uma montagem de ligação de /var/log/httpd to /var/www/dangerous/logs cria uma exibição do /var/log/httpd diretório na montagem /var/www/dangerous/logs . Você pode e provavelmente deve tornar a visualização somente leitura.

    
por 18.07.2016 / 02:17