PHP include () através de HTTP faz o tempo limite do Apache

1

Eu tenho um problema com o ExpressionEngine2 após passar de um servidor antigo para WHM / cPanel em execução no CentOS6.4. Código de teste simples para reproduzir esse problema:

<?php 
        $protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https') === FALSE ? 'http' : 'https';
        $host = $_SERVER['HTTP_HOST'];
        include($protocol . '://' . $host . '/header.html'); 
?>
    <p> Main text...</p>
<?php
        include($protocol . '://' . $host . '/footer.html'); 
?>

Onde header.html se parece com

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>

e footer.html se parecem com:

</body>
</html>

Cria o tempo limite do Apache:

Warning: include(http://www.domain.com/header.html) [function.include]: failed to open stream: Connection timed out in /home/domain/public_html/test/index.php on line 5

Warning: include() [function.include]: Failed opening 'http://www.domain.com/header.html' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/domain/public_html/test/index.php on line 5

Main text...

Warning: include(http://www.domain.com/footer.html) [function.include]: failed to open stream: Connection timed out in /home/domain/public_html/test/index.php on line 12

Warning: include() [function.include]: Failed opening 'http://www.domain.com/footer.html' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/domain/public_html/test/index.php on line 12

Alguma pista do que pode estar errado com a configuração do Apache ou do PHP?

Obrigado

    
por Adam Interact 08.04.2013 / 21:16

1 resposta

2

Provavelmente nada. A mensagem de erro diz tudo:

Warning: include(http://www.domain.com/footer.html) [function.include]: failed to open stream: Connection timed out in /home/domain/public_html/test/index.php on line 12

A conexão com o site para o remoto inclui o tempo limite esgotado. Isso é algum tipo de problema de conectividade; talvez exista um firewall ou um problema de roteamento no caminho (é impossível dizer sem informações sobre seu ambiente e, em particular, onde os dois servidores estão em relação um ao outro).

Se, por algum motivo, você estiver usando inclusões remotas para acessar arquivos no mesmo servidor (por que faria isso), tente usar um navegador nesse servidor para consultar a si mesmo. Se você não puder, provavelmente o apache não está escutando na interface de loopback, mas o novo arquivo hosts está causando a resolução do nome de domínio para 127.0.0.1 .

    
por 25.06.2013 / 10:43