1 /** @page intranet_instalacion Manual de Instalación
3 @section intranet_apache Instalación de Apache.
12 @subsection intranet_apache_config Configuración.
13 Poner como DocumentRoot /var/www/htdocs.
15 @subsection intranet_apache_embperl Instalación del Embperl para la Intranet del MECON.
17 Paquetes del Apache utilizados:
20 libapache-dbi-perl 0.92-0.1
21 libapache-mod-perl 1.29-1
22 libapache-session-perl 1.54-1
25 @note El último paquete de la lista fue escrito por la fundación
26 Via Libre y por lo tanto no se encuentra en el repositorio del
27 apt de debian, y sirve para realizar el manejo de las sesiones de
28 los usuarios a través de una cookie que registra la información
29 en la base de datos Sessions de mysql.
31 Otros paquetes de perl usados para la instalación de la Intranet
33 Paquetes que están en el repositorio del apt de debian:
40 libembperl-perl 2.0b9.0-1
41 libhtml-embperl-perl 1.3.6-1
45 libxbase-perl 0.2400-1
46 libxml-parser-perl 2.34-1
47 libxml-dumper-perl 0.67-1
48 libconfig-inifiles-perl
51 Archivos adicionales para que funcione embperl:
52 Para el correcto funcionamiento del embperl son necesarios algunos
53 paquetes y archivos que no se encuentran en la distribución de
54 Debian. Los archivos se encuentran en un repositorio de subversion,
58 svn co http://portal.mecon.ar/svn/scripts/embperl
61 Si no está instalado el subversion, pueden obtener estos archivos
62 con cualquier cliente HTTP (navegador web) en
63 http://portal.mecon.ar/svn/scripts/embperl/.
64 Ahora en el directorio embperl se encuentran estos archivos que
65 deben ser copiados como se indica en el archivo README:
67 cp SimpleXMLISO.pm /usr/share/perl5/Apache/Session/Serialize/
68 cp DumperISO.pm /usr/share/perl5/XML/
70 cp Php2Embperl_Session.epl /var/www/htdocs/
71 cp base.epl /var/www/htdocs/
72 dpkg -i libapache-tempfile-perl_0.04-1_all.deb
75 Todos estos archivos sirven para compartir las sesiones de los
76 usuarios entre diferentes lenguajes. En el caso de la Intranet
77 los lenguajes actualmente usados son PHP y Embperl. Los archivos
78 @c SimpleXMLISO.pm (autor: Gonzalo Merayo) y @c DumperISO.pm (autor:
79 Jonathan Eisenzopf <eisen@pobox.com>) son librerías escritas
80 en Lenguaje PERL que sirven para parsear el XML de la sesion
81 utilizada por los sistemas programados en Embperl. El archivo
82 @c Php2Embperl.epl le sirve a la Intranet para cargar todos los
83 datos de la sesión de PHP y pasarlos a la sesión de Embperl.
86 @subsubsection intranet_apache_embperl_apache Configuración del Servidor Apache
88 En este documento se incluye solamente la configuración de
89 Embperl, dejándose de lado por el momento la configuración de PHP
90 o de cualquier otro punto que pueda surgir durante la instalación.
92 @par Archivos @c httpd.conf y @c modules.conf.
93 En versiones anteriores la información del archivo modules.conf
94 se encontraba incorporada al archivo @c httpd.conf pero para mayor
95 claridad fueron separados. Estos archivos se encuentran por
96 default en el directorio @c /etc/apache/ como el resto de los
97 archivos de configuración del Servidor Apache.
100 El archivo modules.conf contiene la declaración de
101 todos los módulos del Apache que serán cargados en el momento de
102 levantar el servicio. Para cargar el módulo perl es necesario
103 incluir en este archivo la siguiente línea:
105 LoadModule perl_module /usr/lib/apache/1.3/mod_perl.so
108 El directorio 1.3 se corresponde con la versión del apache que se
112 Este es el archivo de configuración principal
113 del Apache y para la configuración del Embperl se deben
114 seguir los siguientes pasos: Agregar la línea:
116 Include /etc/apache/modules.conf
118 para incorporar la información
119 del archivo @c modules.conf. Agregar las siguientes líneas
120 correspondientes a la configuración específica de Embperl:
123 # Las siguientes líneas son para páginas de Embperl
125 PerlModule Apache::DBI # Módulo que permite interactuar con bases de datos
126 PerlModule Data::Dumper; # Módulo que permite devolver resultados de variables
127 AddType text/html .epl # Indica que los archivos .epl deben ser interpretados por el handler de perl
128 SetHandler perl-script # Indica que handler usar
129 PerlHandler HTML::EmbperlObject # Agrega el módulo de EmbperlObject
130 PerlSetEnv EMBPERL_COOKIE_DOMAIN ".mecon.ar" # Indica el dominio de la cookie usada para la sesion
131 PerlSetEnv EMBPERL_SESSION_ARGS "DataSource=dbi:mysql:Sessions;host=servidor_mysql UserName=usuario Password=password NSems=16" # Setea los argumentos de la base de datos que maneja la sesión
132 PerlSetEnv EMBPERL_OPTIONS 16 # Estaba así
133 PerlSetEnv EMBPERL_SESSION_CLASSES "MySQL Semaphore SimpleXMLISO" # Indica las librerías usadas para administrar el almacenamiento de la información de la sesión en la base de datos
134 PerlSetEnv EMBPERL_OBJECT_BASE base.epl #Indica el archivo base usado por EmbperlObject en cada directorio
135 Options ExecCGI # Indica el modo de ejecución del Embperl
138 # Las siguientes líneas son para otros archivos de perl
140 SetHandler perl-script
141 PerlHandler Apache::Registry
147 @subsection intranet_apache_php Instalación de PHP.
152 php4 4.3.3 o superior
153 php4-cgi 4.3.3 o superior
154 php4-pear 4.3.3 o superior
155 php4-gd 4.3.3 o superior
156 php4-ldap 4.3.3 o superior
157 php4-mysql 4.3.3 o superior
160 @subsubsection intranet_apache_php_pear Instalación de paquetes de PEAR.
163 pear install Validate
164 pear install Mail_Mime
165 pear install HTML_Common
166 pear install HTML_Table
167 pear install HTML_QuickForm
168 pear install HTML_Page
169 pear install Numbers_Words
170 pear install Spreadsheet_Excel_Writer
173 @subsubsection intranet_apache_php_config Configuración de PHP.
175 La configuración por omisión de Debian es bastante buena, sólo hay que modificar
176 (o agregar en caso de no estarlo) lo siguiente:
178 allow_call_time_pass_reference = Off
180 error_reporting = E_ALL
183 log_errors_max_len = 4096
186 error_log = /var/log/apache/php.log
187 register_globals = Off
188 register_argc_argv = Off
189 magic_quotes_gpc = Off
190 default_charset = "iso-8859-1"
191 include_path = ".:/var/www/sistemas_lib:/var/www/meconlib/lib:/var/www/meconlib/pear_lib_tmp:/usr/share/php"
196 SMTP = mail1.mecon.ar
197 sendmail_from = intranet@mecon.gov.ar
199 session.cookie_domain = .mecon.ar
200 session.name = INTRANET_PHPSESSID
201 session.auto_start = 1
204 Luego hay que crear el archivo de log con los permisos correctos:
206 touch /var/log/apache/php.log
207 chown www-data.www-data /var/log/apache/php.log
208 /etc/init.d/apache restart
212 @section intranet_locales Configuración de locales.
213 @verbatim apt-get install locales @endverbatim
214 Luego elegir <tt>es_AR ISO.8859-1</tt> en la primera lista y @c es_AR en la segunda.
217 @section intranet_sistemas Instalacion de sistemas.
219 @subsection intranet_sistemas_subversion Instalación de Subversion.
220 Instalar el paquete subversion:
221 @verbatim apt-get install subversion @endverbatim
223 @subsection intranet_sistemas_permisos Permisos y estructura de directorios.
224 Asegurarse de que los permisos en /var/www sean correctos:
226 chown www-data.www-data /var/www -R
229 Como el usuario www-data cree la estructura de directorios:
233 mkdir sistemas htdocs sistemas_lib
236 @subsection intranet_sistemas_checkout Obtener bibliotecas y sistemas.
239 svn co http://portal.mecon.ar/svn/meconlib/tronco meconlib
241 Obtener Intranet, SAMURAI, AI y otros sistemas:
244 svn co http://portal.mecon.ar/svn/intranet/tronco intranet
245 svn co http://portal.mecon.ar/svn/estadisticas/tronco estadisticas
246 svn co http://portal.mecon.ar/svn/infoleg/tronco infoleg
247 svn co http://portal.mecon.ar/svn/proyectos_ley/tronco proyectos_ley
248 svn co http://portal.mecon.ar/svn/renavi/ramas/EmbperlconSamurai renavi
249 svn co http://portal.mecon.ar/svn/sayonara/tronco sayonara
250 svn co http://portal.mecon.ar/svn/ai/tronco ai
251 svn co http://portal.mecon.ar/svn/bandas/tronco bandas
252 svn co http://portal.mecon.ar/svn/bandasnovedades/tronco bandasnovedades
253 svn co http://portal.mecon.ar/svn/brigada/tronco brigada
254 svn co http://portal.mecon.ar/svn/codep/tronco codep
255 svn co http://portal.mecon.ar/svn/samurai/ramas/estable samurai
256 svn co http://portal.mecon.ar/svn/protocolizacion/ramas/estable protocolizacion
257 svn co http://portal.mecon.ar/svn/protocolizacion/ramas/estable protocolizacion_minplan
258 svn co http://portal.mecon.ar/svn/yatta/ramas/estable yatta
259 svn co http://portal.mecon.ar/svn/encuestas/tronco encuestas
263 @subsection intranet_sistemas_public Crear estructura pública.
266 ln -s ../meconlib/www MECON
267 echo '<?php header("Location: /sistemas/intranet/") ?>' > index.php
270 ln -s ../../sistemas/intranet/sistema/www intranet
271 ln -s ../../sistemas/estadisticas/sistema/www estadisticas
272 ln -s ../../sistemas/infoleg/sistema/www infoleg
273 ln -s ../../sistemas/proyectos_ley/sistema/www proyectos_ley
274 ln -s ../../sistemas/renavi/sistema/www renavi
275 ln -s ../../sistemas/sayonara/sistema/www sayonara
276 ln -s ../../sistemas/samurai/sistema/www samurai
277 ln -s ../../sistemas/ai/sistema/www ai
278 ln -s ../../sistemas/bandas/sistema/www bandas
279 ln -s ../../sistemas/bandasnovedades/sistema/www bandasnovedades
280 ln -s ../../sistemas/protocolizacion/sistema/www protocolizacion
281 ln -s ../../sistemas/protocolizacion_minplan/sistemas/www protocolizacion_minplan
282 ln -s ../../sistemas/yatta/sistema/www yatta
283 ln -s ../../sistemas/encuestas/sistema/www encuestas
286 @subsection intranet_sistemas_libs Crear estructura de bibliotecas.
288 cd /var/www/sistemas_lib
289 ln -s ../sistemas/ai/lib/AI
290 ln -s ../sistemas/samurai/lib/SAMURAI
291 ln -s ../sistemas/samurai/lib/INFOLEG
292 ln -s ../sistemas/bandas/lib/BANDAS
293 ln -s ../sistemas/bandasnovedades/lib/BandasNovedades
294 ln -s ../sistemas/brigada/lib/BRIGADA
295 ln -s ../sistemas/codep/lib/CODEP
296 ln -s ../sistemas/yatta/lib/YATTA
297 ln -s ../sistemas/encuestas/lib/Encuestas
300 @subsection intranet_sistemas_permisos Permisos.
301 Las constantes que identifican los permisos de cada sistema se
302 encuentran definidas en el archivo (a menos que se indique algo
303 distinto en doc/migracion.txt)
304 @c DIRECTORIO_DEL_SISTEMA/sistema/local_lib/permisos.php
306 Este archivo se obtiene de la sección Consultas de SAMURAI, de
309 - Ingresar a SAMURAI a través de la intranet
310 - Seleccionar cualquier sistema para trabajar
311 - Ir a la sección 'Consultas'
312 - Seleccionar la opción 'Bajar la definición de constantes de un sistema'
313 - Seleccionar el sistema deseado
314 - Guardar el archivo generado en el directorio
315 @c DIRECTORIO_DEL_SISTEMA/sistema/local_lib/
316 - Dar permiso de lectura al archivo: chmod +r permisos.php
318 Para el caso de los sistemas desarrollados en Embperl:
324 - protocolizacion_minplan
326 las instrucciones particulares se encuentran en el archivo
327 @c DIRECTORIO_DEL_SISTEMA/doc/migracion.txt
330 @section intranet_db Bases de Datos.
332 @subsection intranet_db_config Configuración de bases de datos.
333 En el directorio doc/ se encuentra un archivo de ejemplo de configuración para la base
334 de datos que utilizará la intranet.
336 El archivo se llama @c db.ini y debe ser copiado a
337 @c /var/www/sistemas/intranet/sistema/conf y luego editado para que se conecte a la base
340 Lo mismo se repite para otros sistemas generalmente (como AI), a
341 menos que se indique algo distinto en doc/migracion.txt.
343 @subsection intranet_db_migrar Migración de bases de datos.
344 En el directorio doc/ se encuentra un archivo con las
345 instrucciones a seguir para la migración de las bases de datos
346 en cada caso particular.
347 El archivo se llama @c migracion.txt
349 @subsection intranet_db_permisos Permisos y Usuarios.
350 A cada sistema debe asignársele un usuario de MySQL y debe darse los permisos necesarios
351 y suficientes a dicho usuario sobre las bases que necesite. En el directorio doc del repositorio
352 de cada sistema se encuentra un script permisos.sql que contiene los comandos necesarios para
353 realizar esta tarea (si estos archivos esta ubicados en otro lugar, debe especificarse en
354 doc/migracion.txt). Es necesario editar (para poner correctamente los password y otras variables
355 especificadas entre corchetes []) y luego correr el script con el usuario root de MySQL:
357 cd /var/www/sistemas/REPOSITORIO_A_USAR/doc/
358 mysql -uroot -p < permisos.sql