Migração do Portal de Revistas

De Wiki REDDES

Categoria:Produtos

Tabla de contenidos

Migração do Portal de Revistas

Introdução

O presente texto relata os passos da atividade de migração do Portal de Revistas para o servidor de homoloção, hm01pet, para funcionar sobre o Apache de versão 2.2. Embora já funcionando em sua nova localização, ainda está ativa a instância presente na Ametista, que roda sobre o Apache 1.3.

Na realidade, esta migração tem o intuito de tornar a aplicação 'Portal de revistas'compatível com a versão 2.x do Apache, visto que as instâncias de versões anteriores deste servidor web tendem a ser desinstaladas.

Passos da migração

Cópia dos arquivos

Estando dentro da pasta /home/portalrev/htdocs da nova instância, copiou-se todo o conteúdo da pasta /home/portalrev/www/htdocs.

	scp -r fabio.montefuscolo@ametista.bireme.br:/home/portalrev/www/htdocs/* .

Daqui para frente, todos os caminhos e comandos são referentes ao servidor hm01pet.bireme.br.

Alterações de caminhos no arquivo nos arquivo XML e XSL

Existem vários arquivos de configuração para o portal de revistas, e na maioria deles existem definições sobre o caminho absoluto para a aplicação. Uma maneira de atualizar o caminho para a aplicação é editando os seguintes aquivos:

  • admin/treeList/xsl/adm/tree-bvs.xsl
  • admin/treeList/xsl/adm/tree.xsl
  • admin/treeList/xsl/adm/change.xsl
  • admin/treeList/xsl/adm/tree-portal.xsl
  • admin/treeList/xsl/adm/tree-user.xsl
  • admin/treeList/xsl/adm/tree-alpha.xsl
  • admin/treeList/xsl/adm/menu.xsl
  • admin/treeList/xsl/adm/invalid-entry.xsl
  • admin/treeList/xsl/adm/tree-control.xsl
  • admin/treeList/xsl/adm/tree-control__v1.xsl
  • admin/treeList/xsl/adm/tree-collection.xsl
  • admin/treeList/xsl/adm/tree-texts.xsl
  • admin/treeList/xml/en/adm.xml
  • admin/treeList/xml/en/bvs.xml
  • admin/treeList/xml/control.xml
  • admin/treeList/xml/es/adm.xml
  • admin/treeList/xml/es/bvs.xml
  • admin/treeList/xml/pt/adm.xml
  • admin/treeList/xml/pt/bvs.xml
  • xml/control.xml
  • xml/backup/control.xml
  • xsl/collections_address.xsl
  • xsl/portal.xsl
  • xsl/titles.xsl
  • xsl/adv_search_result.xsl
  • xsl/list.xsl
  • xsl/magazine.xsl
  • xsl/onlineaccess.xsl
  • xsl/collections.xsl
  • xsl/adv_search_view.xsl

Ao encontrar o caminho '/home/portalrev/www/htdocs' troca-se pelo no caminho, que é '/home/portalrev/htdocs'.

Devido ao trabalho que esta tarefa pode causar, pode-se contornar este problema com uma pequena rotina para o shell do Linux. Estando na pasta htdocs, executa-se o seguinte linha.

	find . -name '*.x[sm]l' |while read file; do sed -i -e 's/\/home\/portalrev\/www/\/home\/portalrev/' $file; done 

Caracteres no arquivo portal.xsl

Neste momento, já deve ser possível a visualização da interface pública do portal de revistas. Entretanto, os caracteres estarão sendo exibidos incorretamento, devido a informação errada presente nas instruções <meta> sobre o conjunto de caracteres. O primeiro passo para a correção deste problema fazer com que o XSL discrimine seu resultado como ISO-8859-1. Para tanto, edit o arquivo /home/portalrev/htdocs/xsl/portal.xsl e insira a instrução <xsl:output method="html" encoding="ISO-8859-1"/> logo abaixo do elemento <xsl:stylesheet. O arquivo deve ficar como o seguinte:

	<?xml version="1.0" encoding="iso-8859-1"?>

	<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="html" encoding="iso-8859-1"/>
	<xsl:include href="file:///home/portalrev/htdocs/xsl/lib.xsl"/>
	
	<xsl:template match="/">
		<xsl:comment>
	
		**** File: portal.xsl
		template match="/"
	
		</xsl:comment>
		<xsl:call-template name="catrevistas">
			<xsl:with-param name="centralNode" 	select="//language[@id=$lang]/subjects-center"/>
		</xsl:call-template>
	</xsl:template>
	
	</xsl:stylesheet>

Carecteres no arquivo lib.xsl

Para evitar que saiam duas instruções meta iguais no HTML gerado pela aplicação, deve-se remover a que está explícita no arquivo lib.xsl.

Para tal basta remover ou comentar a linha 1402 do arquivo lib.xsl, que tem a seguinte informação.

	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>

Transformação no arquivo x2h41.php

Após os dois ultimos passos, sabe-se que o conteúdo quer será tranformado com as XSL estará com o conjunto de caracteres ISO-8859-1, assim, fica desnecessário ou até inviável, a decodificação de caracteres. Assim, deve-se retirar a função utf8_decode da linha 64 do arquivo /home/portalrev/htdocs/scripts-php/x2h41.php.

Log-in administrativo com o enter.php

Alguns modos de receber REQUESTS de uma página, estão conforme o PHP3, onde todas as variáveis são globais. O arquivo deve ser modificado de forma que os parâmetros de POST e GET venham em arrays. O arquivo htdocs/admin/enter.php fica da seguinte forma:

<?php
function getDoc ( $docURL )
{
 $freadMaxLength = 500000;
 $docContent = "[open failure]";

 $fp = fopen($docURL,"r");
 if ( $fp )
 {
  $docContent = fread($fp,$freadMaxLength);
  fclose($fp);
 }

 return $docContent;
}

$cgiList[] = "xml=admin/treeList/xml/users.xml";
$cgiList[] = "xsl=admin/treeList/xsl/adm/enter.xsl";
$cgiList[] = "user=" . $_POST['user'];
$cgiList[] = "password=" . $_POST['password'];
$cgiText = join("&",$cgiList);
$href = "http://" . $_SERVER['HTTP_HOST'] . "/admin/xml2html/xmlRoot.php?" . $cgiText;

$xsl = getDoc($href);

$lang = $_POST['lang'];
if ( !isset($_POST['lang']) )
{
 $lang = "pt";
}

$cgiList = null;
$cgiList[] = "xsl=admin/treeList/xsl/adm/" . trim($xsl);
$cgiList[] = "lang=" . $lang;
$cgiText = join("&",$cgiList);
$href = "admFrames.php?" . $cgiText;

header("Location: " . $href);

?>

Transformação com o xmlRoot.php

Este arquivo, /home/portalrev/htdocs/admin/xml2html/xmlRoot.php, também tem os mesmo problema que arquivo enter.php citados acima. Para corrigir o problema, foi inserida a seguinte linha logo no começo do arquivo.

	$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'].'/';
Herramientas personales