]> git.llucax.com Git - mecon/intranet.git/blob - doc/doxygen/instalacion.doxy
c401977b2dcc6923b3cd2e7d1f8f4fcf35a808ac
[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                 SimpleXMLISO.pm (autor: Gonzalo Merayo) y 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                 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                         Archivos @ref intranet_embperl_apache_httpd.conf y
93                         @ref intranet_embperl_apache_modules.conf
94
95                         En versiones anteriores la información del archivo modules.conf
96                         se encontraba incorporada al archivo httpd.conf pero para mayor
97                         claridad fueron separados.  Estos archivos se encuentran por
98                         default en el directorio /etc/apache/ como el resto de los
99                         archivos de configuración del Servidor Apache.
100
101                         @par embperl_apache_modules.conf modules.conf
102                         El archivo modules.conf contiene la declaración de
103                         todos los módulos del Apache que serán cargados en el momento de
104                         levantar el servicio.  Para cargar el módulo perl es necesario
105                         incluir en este archivo la siguiente línea: LoadModule perl_module
106                         /usr/lib/apache/1.3/mod_perl.so Observación: El directorio 1.3
107                         se corresponde con la versión del apache que se está instalando.
108
109                         @par embperl_apache_httpd.conf httpd.conf
110                         Este es el archivo de configuración principal
111                         del Apache y para la configuración del Embperl se deben
112                         seguir los siguientes pasos: Agregar la linea Include
113                         /etc/apache/modules.conf para incorporar la información
114                         del archivo modules.conf.  Agregar las siguientes líneas
115                         correspondientes a la configuración específica de Embperl:
116
117                         @verbatim
118                         # Las siguientes líneas son para páginas de Embperl
119                         <Files *.epl>
120                                 PerlModule Apache::DBI        # Módulo que permite interactuar con bases de datos
121                                 PerlModule Data::Dumper;     # Módulo que permite devolver resultados de variables
122                                 AddType text/html .epl            # Indica que los archivos .epl deben ser interpretados por el handler de perl 
123                                 SetHandler perl-script              # Indica que handler usar
124                                 PerlHandler HTML::EmbperlObject   # Agrega el módulo de EmbperlObject
125                                 PerlSetEnv EMBPERL_COOKIE_DOMAIN ".mecon.ar"   # Indica el dominio de la cookie usada para la sesion
126                                 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
127                                 PerlSetEnv  EMBPERL_OPTIONS 16     # Estaba así
128                                 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
129                                 PerlSetEnv  EMBPERL_OBJECT_BASE base.epl    #Indica el archivo base usado por EmbperlObject en cada directorio
130                                 Options ExecCGI   # Indica el modo de ejecución del Embperl
131                         </Files>
132
133                         # Las siguientes líneas son para otros archivos de perl
134                         <Files *.pl>
135                                 SetHandler perl-script
136                                 PerlHandler Apache::Registry
137                                 Options ExecCGI
138                         </Files>
139                         @endverbatim
140
141
142         @subsection intranet_apache_php Instalación de PHP.
143
144                 Paquetes necesarios:
145                 @verbatim
146                 Nombre          Versión
147                 php4            4.3.3
148                 php4-cgi        4.3.3
149                 php4-pear       4.3.3
150                 php4-gd         4.3.3
151                 php4-ldap       4.3.3
152                 php4-mysql      4.3.3
153                 @endverbatim
154
155                 @subsubsection intranet_apache_php_pear Instalación de paquetes de PEAR.
156                         @verbatim
157                         pear install Date
158                         pear install Validate
159                         pear install Mail_Mime
160                         pear install HTML_Common
161                         pear install HTML_Table
162                         pear install HTML_QuickForm
163                         pear install HTML_Page
164                         pear install Numbers_Words
165                         pear install Spreadsheet_Excel_Writer<F10>
166                         @endverbatim
167
168                 @subsubsection intranet_apache_php_config Configuración de PHP.
169
170                         La configuración por omisión de Debian es bastante buena, sólo hay que modificar
171                         (o agregar en caso de no estarlo) lo siguiente:
172                         @verbatim
173                         allow_call_time_pass_reference = Off
174                         memory_limit = 16M
175                         error_reporting = E_ALL
176                         display_errors = Off
177                         log_errors = On
178                         log_errors_max_len = 4096
179                         track_errors = On
180                         html_errors = Off
181                         error_log = /var/log/apache/php.log
182                         register_globals = Off
183                         register_argc_argv = Off
184                         magic_quotes_gpc = Off
185                         default_charset = "iso-8859-1"
186                         include_path = ".:/var/www/sistemas_lib:/var/www/meconlib/lib:/var/www/meconlib/pear_lib_tmp:/usr/share/php"
187                         extension=gd.so
188                         extension=ldap.so
189                         extension=mysql.so
190                         [mail functions]
191                         SMTP = mail1.mecon.ar
192                         sendmail_from = intranet@mecon.gov.ar
193                         [Session]
194                         session.cookie_domain = .mecon.ar
195                         session.name = INTRANET_PHPSESSID
196                         session.auto_start = 1
197                         @endverbatim
198
199                         Luego hay que crear el archivo de log con los permisos correctos:
200                         @verbatim
201                         touch /var/log/apache/php.log
202                         chown www-data.www-data /var/log/apache/php.log
203                         /etc/init.d/apache restart
204                         @endverbatim
205
206
207 @section intranet_locales Configuración de locales.
208         @verbatim apt-get install locales @endverbatim
209         Luego elegir es_AR ISO.8859-1 en la primera lista y es_AR en la segunda.
210         
211
212 @section intranet_sistemas Instalacion de sistemas.
213
214         @subsection intranet_sistemas_subversion Instalación de Subversion.
215                 Instalar el paquete subversion:
216                 @verbatim apt-get install subversion @endverbatim
217
218         @subsection intranet_sistemas_permisos Permisos y estructura de directorios.
219                 Asegurarse de que los permisos en /var/www sean correctos:
220                 @verbatim
221                 chown www-data.www-data /var/www -R
222                 chmod 2770 /var/www
223                 @endverbatim
224                 Como el usuario www-data cree la estructura de directorios:
225                 @verbatim
226                 su www-data
227                 cd /var/www
228                 mkdir sistemas htdocs sistemas_lib
229                 @endverbatim
230
231         @subsection intranet_sistemas_checkout Obtener bibliotecas y sistemas.
232                 Obtener MEconlib:
233                 @verbatim
234                 svn co http://portal.mecon.ar/svn/meconlib/tronco meconlib
235                 @endverbatim
236                 Obtener Intranet, SAMURAI, AI y otros sistemas:
237                 @verbatim
238                 cd sistemas
239                 svn co http://portal.mecon.ar/svn/intranet/tronco intranet
240                 svn co http://portal.mecon.ar/svn/samurai/tronco samurai
241                 svn co http://portal.mecon.ar/svn/ai/tronco ai
242                 svn co http://portal.mecon.ar/svn/infoleg/tronco infoleg
243                 svn co http://portal.mecon.ar/svn/bandasnovedades/tronco bandasnovedades
244                 svn co http://portal.mecon.ar/svn/brigada/tronco brigada
245                 @endverbatim
246
247         @subsection intranet_sistemas_public Crear estructura pública.
248                 @verbatim
249                 cd /var/www/htdocs
250                 ln -s ../meconlib/www MECON
251                 echo '<?php header("Location: /sistemas/intranet/") ?>' > index.php
252                 mkdir sistemas
253                 cd sistemas
254                 ln -s ../../sistemas/intranet/sistema/www intranet
255                 ln -s ../../sistemas/samurai/sistema/www samurai
256                 ln -s ../../sistemas/ai/sistema/www ai
257                 ln -s ../../sistemas/infoleg/sistema/www infoleg
258                 ln -s ../../sistemas/bandasnovedades/sistema/www bandasnovedades
259                 ln -s ../../sistemas/brigada/sistema/www brigada
260                 @endverbatim
261
262         @subsection intranet_sistemas_libs Crear estructura de bibliotecas.
263                 @verbatim
264                 cd /var/www/sistemas_lib
265                 ln -s ../sistemas/ai/lib/AI
266                 ln -s ../sistemas/samurai/lib/SAMURAI
267                 ln -s ../sistemas/samurai/lib/INFOLEG
268                 ln -s ../sistemas/bandasnovedades/lib/BandasNovedades
269                 ln -s ../sistemas/brigada/lib/BRIGADA
270         @endverbatim
271
272
273 @section intranet_db
274
275         @subsection intranet_db_config Configuración de bases de datos.
276                 En el directorio doc/ se encuentra un archivo de ejemplo de configuración para la base
277                 de datos que utilizará la intranet. El archivo se llama @c db.ini y debe ser copiado a
278                 @c /var/www/sistemas/intranet/sistema/conf y luego editado para que se conecte a la base
279                 de datos correcta.
280
281                 Lo mismo se repite para otros sistemas generalmente (como AI).
282
283         @subsection intranet_db_permisos Permisos y Usuarios.
284                 A cada sistema debe asignársele un usuario de MySQL y debe darse los permisos necesarios
285                 y suficientes a dicho usuario sobre las bases que necesite. En el directorio doc del repositorio 
286                 de cada sistema se encuentra un script permisos.sql que contiene los comandos necesarios para
287                 realizar esta tarea. Es necesario correr el script con el usuario root de MySQL.
288                 @verbatim
289                 cd /var/www/sistemas/REPOSITORIO_A_USAR/doc/
290                 mysql -uroot -p < permisos.sql
291                 @endverbatim
292 */