From: Leandro Lucarella Date: Wed, 28 Jan 2004 17:48:13 +0000 (+0000) Subject: Se pasa Php2Embperl_Session.epl al repositorio scripts y se actualiza documentacion. X-Git-Tag: svn_import~77 X-Git-Url: https://git.llucax.com/mecon/intranet.git/commitdiff_plain/c2ed540d11c8dea3ab4c4e5da7152da137a1463c?ds=inline Se pasa Php2Embperl_Session.epl al repositorio scripts y se actualiza documentacion. --- diff --git a/doc/doxygen/instalacion.php b/doc/doxygen/instalacion.php index 3c5e8e6..39dc27c 100644 --- a/doc/doxygen/instalacion.php +++ b/doc/doxygen/instalacion.php @@ -14,13 +14,12 @@ @subsection apache_embperl Instalación del Embperl para la Intranet del MECON. - Paquetes del Apache utilizados + Paquetes del Apache utilizados: @verbatim Nombre Versión libapache-dbi-perl 0.92-0.1 libapache-mod-perl 1.29-1 libapache-session-perl 1.54-1 - libapache-tempfile-perl_0.04-1_all.deb - @endverbatim @note El último paquete de la lista fue escrito por la fundación @@ -31,7 +30,7 @@ Otros paquetes de perl usados para la instalación de la Intranet - Paquetes que están en el repositorio del apt de debian + Paquetes que están en el repositorio del apt de debian: @verbatim Nombre Versión perl 5.8.1-2 @@ -48,12 +47,26 @@ libxml-dumper-perl 0.67-1 @endverbatim - Archivos adicionales para el manejo de la sesión del usuario + Archivos adicionales para que funcione embperl: + Para el correcto funcionamiento del embperl son necesarios algunos + paquetes y archivos que no se encuentran en la distribución de + Debian. Los archivos se encuentran en un repositorio de subversion, + para obtenerlos: @verbatim - Nombre Ubicación - SimpleXMLISO.pm /usr/share/perl5/Apache/Session/Serialize/ - DumperISO.pm /usr/share/perl5/XML/ - Php2Embperl_Session.epl /var/www/htdocs/ (raiz del Apache) + cd /tmp + svn co http://portal.mecon.ar/svn/scripts/embperl + @endverbatim + Si no está instalado el subversion, pueden obtener estos archivos + con cualquier cliente HTTP (navegador web) en + http://portal.mecon.ar/svn/scripts/embperl/. + Ahora en el directorio embperl se encuentran estos archivos que + deben ser copiados como se indica en el archivo README: + @verbatim + cp SimpleXMLISO.pm /usr/share/perl5/Apache/Session/Serialize/ + cp DumperISO.pm /usr/share/perl5/XML/ + mkdir /var/www/htdocs + cp Php2Embperl_Session.epl /var/www/htdocs/ + dpkg -i libapache-tempfile-perl_0.04-1_all.deb @endverbatim Todos estos archivos sirven para compartir las sesiones de los @@ -177,6 +190,13 @@ session.auto_start = 1 @endverbatim + Luego hay que crear el archivo de log con los permisos correctos: + @verbatim + touch /var/log/apache/php.log + chown www-data.www-data /var/log/apache/php.log + /etc/init.d/apache restart + @endverbatim + @section locales Configuración de locales. @verbatim apt-get install locales @endverbatim diff --git a/sistema/www/Php2Embperl_Session.epl b/sistema/www/Php2Embperl_Session.epl deleted file mode 100644 index 560c63a..0000000 --- a/sistema/www/Php2Embperl_Session.epl +++ /dev/null @@ -1,170 +0,0 @@ -[# -IMPORTANTE: ES NECESARIO QUE ESTE SCRIPT SE PONGA EN LA BARRA DE LA INTRANET NO -EN SISTEMAS/INTRANET PORQUE LA COOKIE FUNCIONA A PARTIR DEL DIRECTORIO EN EL -CUAL ESTE ESTE SCRIPT. -#] -[- -use CGI qw/:standard/; -use CGI::Cookie; - - -if (!defined($fdat{'redirect'})) { - $http_headers_out {Location} = 'http://bal747f.mecon.ar/sistemas/intranet'; - exit; -} - - -%cookies = fetch CGI::Cookie; -$archivo = '/tmp/sess_'.$cookies{'PHPSESSID747F'}{'value'}[0]; - -open (FILE, $archivo); -$linea = join ('',); - -$res = parseSession (linea => $linea); - -$udat{'user'} = $res->{'user'}; -$udat{'domain'} = $res->{'domain'}; -$udat{'nick'} = $res->{'nick'}; -$udat{'nro_doc'} = $res->{'nro_doc'}; - -$http_headers_out {Location} = 'http://bal747f.mecon.ar/'.$fdat{'redirect'}; - -exit; - -################# FIN SCRIPT - -sub parseSession -{ - my %params = @_; - my $op_value = $params{linea}; - my $pos = 0; - my $name; - my $type; - my $type2; - my $len; - my $result; - - - - while ($pos < 2){ - - #Obtengo el nombre del parametro - $name = substr($op_value, 0, index($op_value, '|')); - $op_value = substr($op_value, index($op_value, '|') + 1); #Depuro la linea - #Obtengo el tipo - $type = substr($op_value, 0, index($op_value, ':')); - $type2 = substr($op_value, 0, index($op_value, ';')); - - #Caso particular - if ($type2 eq 'N') { - $type = 'N'; - $op_value = substr($op_value, index($op_value, ';') + 1); #Depuro la linea - } - else { - $op_value = substr($op_value, index($op_value, ':') + 1); #Depuro la linea - } - - if ($type eq 's') { - #Obtengo la longitud - $len = substr($op_value, 0, index($op_value, ':')); - #Obtengo el resto de la linea - $op_value = substr($op_value, index($op_value, ':') + 1); - if ($name eq 'usuario') { - $result->{'user'} = substr($op_value, 1, $len); - ($result->{'nick'}, $result->{'domain'}) = split ('@', $result->{'user'}); - $op_value = substr($op_value, $len + 3); - $pos++; - } - elsif ($name eq 'documento') { - $result->{'nro_doc'} = substr($op_value, 1, $len); - $pos++; - } - else { - $op_value = substr($op_value, $len + 3); - } - } - elsif ($type eq 'i') { - $op_value = substr($op_value, index($op_value,';') + 1); - } - elsif ($type eq 'd') { - $op_value = substr($op_value, index($op_value,';') + 1); - } - elsif ($type eq 'b') { - $op_value = substr($op_value, index($op_value,';') + 1); - } - elsif ($type eq 'a') { - $op_value = parseContenido (cont => $op_value); - } - elsif ($type eq 'O') { - $len = substr($op_value, 0, index($op_value,':')); - $op_value = substr($op_value, index($op_value,':') + 1); - $op_value = substr($op_value, $len + 3); - $op_value = parseContenido (cont => $op_value); - } - - if (length($op_value) < 1) { - $pos = 3; - } - } - return $result; -} - -#Devuelve la linea sin el contenido -sub parseContenido { - my %params = @_; - my $op_value = $params{cont}; - my $type; - my $type2; - my $len; - my $seguir = 1; - - #Elimino todo hasta el { inclusive - $op_value = substr($op_value, index($op_value, ':') + 2); - - - while ($seguir) { - #Obtengo el tipo - $type = substr($op_value, 0, index($op_value, ':')); - $type2 = substr($op_value, 0, index($op_value, ';')); #Caso particular Null - - #Caso particular Null - if ($type2 eq 'N') { - $type = 'N'; - $op_value = substr($op_value, index($op_value, ';') + 1); #Depuro la linea - } - else { - $op_value = substr($op_value, index($op_value, ':') + 1); #Depuro la linea - } - if ($type eq 's') { - #Obtengo la longitud - $len = substr($op_value, 0, index($op_value, ':')); - #Obtengo el resto de la linea - $op_value = substr($op_value, index($op_value, ':') + 1); - $op_value = substr($op_value, $len + 3); - } - elsif ($type eq 'i') { - $op_value = substr($op_value, index($op_value,';') + 1); - } - elsif($type eq 'd') { - $op_value = substr($op_value, index($op_value,';') + 1); - } - elsif($type eq 'b') { - $op_value = substr($op_value, index($op_value,';') + 1); - } - elsif($type eq 'a') { - $op_value = parseContenido (cont => $op_value); - } - elsif($type eq 'O') { - $op_value = parseContenido (cont => $op_value); - } - - if (substr($op_value,0,1) eq '}') { - $op_value = substr($op_value,1); - $seguir = 0; - } - } - return $op_value; -} - --] -1;