]> git.llucax.com Git - mecon/intranet.git/blob - doc/doxygen/instalacion.doxy
Se agrega el sistema Encuestas a la documentación de instalación.
[mecon/intranet.git] / doc / doxygen / instalacion.doxy
1 /** @page intranet_instalacion Manual de Instalación
2
3 @section intranet_apache Instalación de Apache.
4
5         @verbatim
6         Nombre                                  Versión
7         apache                                  1.3.29-1
8         apache-common                           1.3.29-1
9         apache-utils                            1.3.29-1
10         @endverbatim
11
12         @subsection intranet_apache_config Configuración.
13                 Poner como DocumentRoot /var/www/htdocs.
14
15         @subsection intranet_apache_embperl Instalación del Embperl para la Intranet del MECON.
16
17                 Paquetes del Apache utilizados:
18                 @verbatim
19                 Nombre                                  Versión
20                 libapache-dbi-perl                      0.92-0.1
21                 libapache-mod-perl                      1.29-1
22                 libapache-session-perl                  1.54-1
23                 @endverbatim
24
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.
30
31                 Otros paquetes de perl usados para la instalación de la Intranet
32
33                 Paquetes que están en el repositorio del apt de debian:
34                 @verbatim
35                 Nombre                                  Versión
36                 perl                                    5.8.1-2
37                 perl-base                               5.8.1-2
38                 perl-modules                            5.8.1-2
39                 libdbi-perl                             1.35-1
40                 libembperl-perl                         2.0b9.0-1
41                 libhtml-embperl-perl                    1.3.6-1
42                 libxml-perl                             0.07-10
43                 libwww-perl                             5.69-4
44                 liburi-perl                             1.23-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
49                 @endverbatim
50
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,
55                 para obtenerlos:
56                 @verbatim
57                 cd /tmp
58                 svn co http://portal.mecon.ar/svn/scripts/embperl
59                 cd embperl
60                 @endverbatim
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:
66                 @verbatim
67                 cp SimpleXMLISO.pm /usr/share/perl5/Apache/Session/Serialize/
68                 cp DumperISO.pm /usr/share/perl5/XML/
69                 mkdir /var/www/htdocs
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
73                 @endverbatim
74
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.
84
85
86                 @subsubsection intranet_apache_embperl_apache Configuración del Servidor Apache
87
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.
91
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.
98
99                         @par @c modules.conf
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:
104                         @verbatim
105                         LoadModule perl_module /usr/lib/apache/1.3/mod_perl.so
106                         @endverbatim
107                         @par Observación:
108                         El directorio 1.3 se corresponde con la versión del apache que se
109                         está instalando.
110
111                         @par @c httpd.conf
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:
115                         @verbatim
116                         Include /etc/apache/modules.conf
117                         @endverbatim
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:
121
122                         @verbatim
123                         # Las siguientes líneas son para páginas de Embperl
124                         <Files *.epl>
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
136                         </Files>
137
138                         # Las siguientes líneas son para otros archivos de perl
139                         <Files *.pl>
140                                 SetHandler perl-script
141                                 PerlHandler Apache::Registry
142                                 Options ExecCGI
143                         </Files>
144                         @endverbatim
145
146
147         @subsection intranet_apache_php Instalación de PHP.
148
149                 Paquetes necesarios:
150                 @verbatim
151                 Nombre          Versión
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
158                 @endverbatim
159
160                 @subsubsection intranet_apache_php_pear Instalación de paquetes de PEAR.
161                         @verbatim
162                         pear install Date
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
171                         @endverbatim
172
173                 @subsubsection intranet_apache_php_config Configuración de PHP.
174
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:
177                         @verbatim
178                         allow_call_time_pass_reference = Off
179                         memory_limit = 16M
180                         error_reporting = E_ALL
181                         display_errors = Off
182                         log_errors = On
183                         log_errors_max_len = 4096
184                         track_errors = On
185                         html_errors = Off
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"
192                         extension=gd.so
193                         extension=ldap.so
194                         extension=mysql.so
195                         [mail functions]
196                         SMTP = mail1.mecon.ar
197                         sendmail_from = intranet@mecon.gov.ar
198                         [Session]
199                         session.cookie_domain = .mecon.ar
200                         session.name = INTRANET_PHPSESSID
201                         session.auto_start = 1
202                         @endverbatim
203
204                         Luego hay que crear el archivo de log con los permisos correctos:
205                         @verbatim
206                         touch /var/log/apache/php.log
207                         chown www-data.www-data /var/log/apache/php.log
208                         /etc/init.d/apache restart
209                         @endverbatim
210
211
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.
215         
216
217 @section intranet_sistemas Instalacion de sistemas.
218
219         @subsection intranet_sistemas_subversion Instalación de Subversion.
220                 Instalar el paquete subversion:
221                 @verbatim apt-get install subversion @endverbatim
222
223         @subsection intranet_sistemas_permisos Permisos y estructura de directorios.
224                 Asegurarse de que los permisos en /var/www sean correctos:
225                 @verbatim
226                 chown www-data.www-data /var/www -R
227                 chmod 2770 /var/www
228                 @endverbatim
229                 Como el usuario www-data cree la estructura de directorios:
230                 @verbatim
231                 su www-data
232                 cd /var/www
233                 mkdir sistemas htdocs sistemas_lib
234                 @endverbatim
235
236         @subsection intranet_sistemas_checkout Obtener bibliotecas y sistemas.
237                 Obtener MEconlib:
238                 @verbatim
239                 svn co http://portal.mecon.ar/svn/meconlib/tronco meconlib
240                 @endverbatim
241                 Obtener Intranet, SAMURAI, AI y otros sistemas:
242                 @verbatim
243                 cd 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
260
261                 @endverbatim
262
263         @subsection intranet_sistemas_public Crear estructura pública.
264                 @verbatim
265                 cd /var/www/htdocs
266                 ln -s ../meconlib/www MECON
267                 echo '<?php header("Location: /sistemas/intranet/") ?>' > index.php
268                 mkdir sistemas
269                 cd sistemas
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
284                 @endverbatim
285
286         @subsection intranet_sistemas_libs Crear estructura de bibliotecas.
287                 @verbatim
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
298         @endverbatim
299
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
305                 
306                 Este archivo se obtiene de la sección Consultas de SAMURAI, de
307                 la siguiente manera:
308                 
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
317                 
318                 Para el caso de los sistemas desarrollados en Embperl:
319                     - infoleg
320                     - estadisticas
321                     - proyectos_ley
322                     - renavi
323                     - protocolizacion
324                     - protocolizacion_minplan
325                     
326                 las instrucciones particulares se encuentran en el archivo
327                 @c DIRECTORIO_DEL_SISTEMA/doc/migracion.txt
328                 
329
330 @section intranet_db Bases de Datos.
331
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. 
335                 
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
338                 de datos correcta.
339
340                 Lo mismo se repite para otros sistemas generalmente (como AI), a
341                 menos que se indique algo distinto en doc/migracion.txt.
342
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 
348
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:
356                 @verbatim
357                 cd /var/www/sistemas/REPOSITORIO_A_USAR/doc/
358                 mysql -uroot -p < permisos.sql
359                 @endverbatim
360 */