Anderson Jacson </a>  
Login

Menu

11 visitantes online (1 na seção: Artigos e Dicas)

Usuários: 0
Visitantes: 11

mais...

SmartSection is developed by The SmartFactory (http://www.smartfactory.ca), a division of INBOX Solutions (http://inboxinternational.com)
Linux >
Publicado por Helder em 06/11/2008 (4064 leituras)

Como corrigir URL com porta no endereço em PHP

Problema verificado:

Quando chamamos uma URL de uma aplicação em PHP, a URL chamada vem com o endereço da porta que foi redirecionada (http://www.ti.seplag.ce.gov.br:8086/horde2/imp/login.php ), ocasionando uma chamada de erro: Host Not Found. Esse problema é encontrado quando a aplicação tem um redirecionamento para uma porta diferente da padrão(80.)

 

Causa:

Nos casos encontrados (Dotproject, moodle e Horde), verificamos que dentro do conf.php dessas aplicações, existe uma linha  ($conf['server']['port'] = $_SERVER['SERVER_PORT'];) que captura a porta de origem chamada evitando assim que a aplicação seja redirecionada para a porta correta.

 

 Solução Proposta:

  • Horde 

Comente a referida linha evitando que essa seja lida no arquivo config/conf.php, lembrando que comentário em php usa-se "//", ficando dessa forma:

// $conf['server']['port'] = $_SERVER['SERVER_PORT'];
 

  •  Dotproject

Comente as seguintes linhas no arquivo base.php, ficando da seguinte forma:

 //$baseUrl = ( isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') ? 'https://' : 'http://';
//$baseUrl .= safe_get_env('HTTP_HOST');

 

  • Moodle 

Dentro do diretório lib tem um arquivo chamado weblib.php, nele comente o seguinte bloco de linhas:

 

/*

 if (!empty($url['port'])) {
  $hostname .= ':'.$url['port'];
  } else if (!empty($_SERVER['SERVER_PORT'])) {
  if ($_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) {
  $hostname .= ':'.$_SERVER['SERVER_PORT'];
  }
  }
 
*/

 

  • phpBB Forum 

No arquivo include/functions.php e comente a seguinte linha:

$server_port = (!empty($_SERVER['SERVER_PORT'])) ? (int) $_SERVER['SERVER_PORT'] : (int) getenv('SERVER_PORT'); 

 

  • No Joomla

Edite o arquivo libraries/joomla/environment/uri.php  e comente essas três linhas (em negrito):

function base($pathonly = false)
{
static $base;

// Get the base request path
if (!isset($base))
{
$config =& JFactory::getConfig();
$live_site = $config->getValue('config.live_site');
if(trim($live_site) != '') {
$uri =& JURI::getInstance($live_site);
$base['prefix'] = $uri->toString( array('scheme', 'host', 'port'));
$base['path'] = rtrim($uri->toString( array('path')), '/\\');
if(JPATH_BASE == JPATH_ADMINISTRATOR) {
$base['path'] .= '/administrator';
}
} else {
$uri =& JURI::getInstance();
// $base['prefix'] = $uri->toString( array('scheme', 'host', 'port'));
// $base['prefix'] = $uri->toString( array('scheme'));


if (strpos(php_sapi_name(), 'cgi') !== false && !empty($_SERVER['REQUEST_URI'])) {
//Apache CGI
// $base['path'] = rtrim(dirname(str_replace(array('"', '<', '>', "'"), '', $_SERVER["PHP_SELF"])), '/\\');
} else {
//Others
$base['path'] = rtrim(dirname($_SERVER['SCRIPT_NAME']), '/\\');

}
}
}

return $pathonly === false ? $base['prefix'].$base['path'].'/' : $base['path'];
}

 

 

Nos teste feitos o problema foi sanado sem nenhum prejuízo para os sistemas. 

 


Navegue pelos artigos
Artigo prévio Criar Virtual Host no Apache Tomcat Próximo artigo
Os comentários são de propriedade de seus respectivos autores. Não somos responsáveis pelo seu conteúdo.
Pesquisa