]> git.llucax.com Git - mecon/intranet.git/blob - doc/doxygen/instalacion.php
Se agrega doc sobre dbs.
[mecon/intranet.git] / doc / doxygen / instalacion.php
1 /** @page instalacion Manual de Instalación
2
3 @section 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 apache_config Configuración.
13                 Poner como DocumentRoot /var/www/htdocs.
14
15         @subsection 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                 @endverbatim
49
50                 Archivos adicionales para que funcione embperl:
51                 Para el correcto funcionamiento del embperl son necesarios algunos
52                 paquetes y archivos que no se encuentran en la distribución de
53                 Debian. Los archivos se encuentran en un repositorio de subversion,
54                 para obtenerlos:
55                 @verbatim
56                 cd /tmp
57                 svn co http://portal.mecon.ar/svn/scripts/embperl
58                 cd embperl
59                 @endverbatim
60                 Si no está instalado el subversion, pueden obtener estos archivos
61                 con cualquier cliente HTTP (navegador web) en
62                 http://portal.mecon.ar/svn/scripts/embperl/.
63                 Ahora en el directorio embperl se encuentran estos archivos que
64                 deben ser copiados como se indica en el archivo README:
65                 @verbatim
66                 cp SimpleXMLISO.pm /usr/share/perl5/Apache/Session/Serialize/
67                 cp DumperISO.pm /usr/share/perl5/XML/
68                 mkdir /var/www/htdocs
69                 cp Php2Embperl_Session.epl /var/www/htdocs/
70                 cp base.epl /var/www/htdocs/
71                 dpkg -i libapache-tempfile-perl_0.04-1_all.deb
72                 @endverbatim
73
74                 Todos estos archivos sirven para compartir las sesiones de los
75                 usuarios entre diferentes lenguajes. En el caso de la Intranet
76                 los lenguajes actualmente usados son PHP y Embperl.  Los archivos
77                 SimpleXMLISO.pm (autor: Gonzalo Merayo) y DumperISO.pm (autor:
78                 Jonathan Eisenzopf <eisen@pobox.com>) son librerías escritas
79                 en Lenguaje PERL que sirven para parsear el XML de la sesion
80                 utilizada por los sistemas programados en Embperl.  El archivo
81                 Php2Embperl.epl le sirve a la Intranet para cargar todos los
82                 datos de la sesión de PHP y pasarlos a la sesión de Embperl.
83
84
85                 @subsubsection apache_embperl_apache Configuración del Servidor Apache
86
87                         En este documento se incluye solamente la configuración de
88                         Embperl, dejándose de lado por el momento la configuración de PHP
89                         o de cualquier otro punto que pueda surgir durante la instalación.
90
91                         Archivos @ref embperl_apache_httpd.conf y @ref embperl_apache_modules.conf
92
93                         En versiones anteriores la información del archivo modules.conf
94                         se encontraba incorporada al archivo httpd.conf pero para mayor
95                         claridad fueron separados.  Estos archivos se encuentran por
96                         default en el directorio /etc/apache/ como el resto de los
97                         archivos de configuración del Servidor Apache.
98
99                         @par embperl_apache_modules.conf 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: LoadModule perl_module
104                         /usr/lib/apache/1.3/mod_perl.so Observación: El directorio 1.3
105                         se corresponde con la versión del apache que se está instalando.
106
107                         @par embperl_apache_httpd.conf httpd.conf
108                         Este es el archivo de configuración principal
109                         del Apache y para la configuración del Embperl se deben
110                         seguir los siguientes pasos: Agregar la linea Include
111                         /etc/apache/modules.conf para incorporar la información
112                         del archivo modules.conf.  Agregar las siguientes líneas
113                         correspondientes a la configuración específica de Embperl:
114
115                         @verbatim
116                         # Las siguientes líneas son para páginas de Embperl
117                         <Files *.epl>
118                                 PerlModule Apache::DBI        # Módulo que permite interactuar con bases de datos
119                                 PerlModule Data::Dumper;     # Módulo que permite devolver resultados de variables
120                                 AddType text/html .epl            # Indica que los archivos .epl deben ser interpretados por el handler de perl 
121                                 SetHandler perl-script              # Indica que handler usar
122                                 PerlHandler HTML::EmbperlObject   # Agrega el módulo de EmbperlObject
123                                 PerlSetEnv EMBPERL_COOKIE_DOMAIN ".mecon.ar"   # Indica el dominio de la cookie usada para la sesion
124                                 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
125                                 PerlSetEnv  EMBPERL_OPTIONS 16     # Estaba así
126                                 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
127                                 PerlSetEnv  EMBPERL_OBJECT_BASE base.epl    #Indica el archivo base usado por EmbperlObject en cada directorio
128                                 Options ExecCGI   # Indica el modo de ejecución del Embperl
129                         </Files>
130
131                         # Las siguientes líneas son para otros archivos de perl
132                         <Files *.pl>
133                                 SetHandler perl-script
134                                 PerlHandler Apache::Registry
135                                 Options ExecCGI
136                         </Files>
137                         @endverbatim
138
139
140         @subsection apache_php Instalación de PHP.
141
142                 Paquetes necesarios:
143                 @verbatim
144                 Nombre          Versión
145                 php4            4.3.3
146                 php4-cgi        4.3.3
147                 php4-pear       4.3.3
148                 php4-gd         4.3.3
149                 php4-ldap       4.3.3
150                 php4-mysql      4.3.3
151                 @endverbatim
152
153                 @subsubsection apache_php_pear Instalación de paquetes de PEAR.
154                         @verbatim
155                         pear install Date
156                         pear install Validate
157                         pear install Mail_Mime
158                         pear install HTML_Common
159                         pear install HTML_Table
160                         pear install HTML_QuickForm
161                         pear install HTML_Page
162                         @endverbatim
163
164                 @subsubsection apache_php_config Configuración de PHP.
165
166                         La configuración por omisión de Debian es bastante buena, sólo hay que modificar
167                         (o agregar en caso de no estarlo) lo siguiente:
168                         @verbatim
169                         allow_call_time_pass_reference = Off
170                         memory_limit = 16M
171                         error_reporting = E_ALL
172                         display_errors = Off
173                         log_errors = On
174                         log_errors_max_len = 4096
175                         track_errors = On
176                         html_errors = Off
177                         error_log = /var/log/apache/php.log
178                         register_globals = Off
179                         register_argc_argv = Off
180                         magic_quotes_gpc = Off
181                         default_charset = "iso-8859-1"
182                         include_path = ".:/var/www/sistemas_lib:/var/www/meconlib/lib:/var/www/meconlib/pear_lib_tmp:/usr/share/php"
183                         extension=gd.so
184                         extension=ldap.so
185                         extension=mysql.so
186                         [mail functions]
187                         SMTP = mail1.mecon.ar
188                         sendmail_from = intranet@mecon.gov.ar
189                         [Session]
190                         session.cookie_domain = .mecon.ar
191                         session.name = INTRANET_PHPSESSID
192                         session.auto_start = 1
193                         @endverbatim
194
195                         Luego hay que crear el archivo de log con los permisos correctos:
196                         @verbatim
197                         touch /var/log/apache/php.log
198                         chown www-data.www-data /var/log/apache/php.log
199                         /etc/init.d/apache restart
200                         @endverbatim
201
202
203 @section locales Configuración de locales.
204         @verbatim apt-get install locales @endverbatim
205         Luego elegir es_AR ISO.8859-1 en la primera lista y es_AR en la segunda.
206         
207
208 @section sistemas Instalacion de sistemas.
209
210         @subsection sistemas_subversion Instalación de Subversion.
211                 Instalar el paquete subversion:
212                 @verbatim apt-get install subversion @endverbatim
213
214         @subsection sistemas_permisos Permisos y estructura de directorios.
215                 Asegurarse de que los permisos en /var/www sean correctos:
216                 @verbatim
217                 chown www-data.www-data /var/www -R
218                 chmod 2770 /var/www
219                 @endverbatim
220                 Como el usuario www-data cree la estructura de directorios:
221                 @verbatim
222                 su www-data
223                 cd /var/www
224                 mkdir sistemas htdocs sistemas_lib
225                 @endverbatim
226
227         @subsection sistemas_checkout Obtener bibliotecas y sistemas.
228                 Obtener MEconlib:
229                 @verbatim
230                 svn co http://portal.mecon.ar/svn/meconlib/tronco meconlib
231                 @endverbatim
232                 Obtener Intranet, SAMURAI, AI y otros sistemas:
233                 @verbatim
234                 cd sistemas
235                 svn co http://portal.mecon.ar/svn/intranet/tronco intranet
236                 svn co http://portal.mecon.ar/svn/samurai/tronco samurai
237                 svn co http://portal.mecon.ar/svn/ai/tronco ai
238                 svn co http://portal.mecon.ar/svn/infoleg/tronco infoleg
239                 svn co http://portal.mecon.ar/svn/bandasnovedades/tronco bandasnovedades
240                 svn co http://portal.mecon.ar/svn/brigada/tronco brigada
241                 @endverbatim
242
243         @subsection sistemas_public Crear estructura pública.
244                 @verbatim
245                 cd /var/www/htdocs
246                 ln -s ../meconlib/www MECON
247                 echo '<?php header("Location: /sistemas/intranet/") ?>' > index.php
248                 mkdir sistemas
249                 cd sistemas
250                 ln -s ../../sistemas/intranet/sistema/www intranet
251                 ln -s ../../sistemas/samurai/sistema/www samurai
252                 ln -s ../../sistemas/ai/sistema/www ai
253                 ln -s ../../sistemas/infoleg/sistema/www infoleg
254                 ln -s ../../sistemas/bandasnovedades/sistema/www bandasnovedades
255                 ln -s ../../sistemas/brigada/sistema/www brigada
256                 @endverbatim
257
258         @subsection sistemas_libs Crear estructura de bibliotecas.
259                 @verbatim
260                 cd /var/www/sistemas_lib
261                 ln -s ../sistemas/ai/lib/AI
262                 ln -s ../sistemas/samurai/lib/SAMURAI
263                 ln -s ../sistemas/samurai/lib/INFOLEG
264                 ln -s ../sistemas/bandasnovedades/lib/BandasNovedades
265                 ln -s ../sistemas/brigada/lib/BRIGADA
266         @endverbatim
267
268
269 @section db
270
271         @subsection db_config Configuración de bases de datos.
272                 En el directorio doc/ se encuentra un archivo de ejemplo de configuración para la base
273                 de datos que utilizará la intranet. El archivo se llama @c db.ini y debe ser copiado a
274                 @c /var/www/sistemas/intranet/sistema/conf y luego editado para que se conecte a la base
275                 de datos correcta.
276
277                 Lo mismo se repite para otros sistemas generalmente (como AI).
278
279         @subsection db_permisos Permisos y Usuarios.
280                 A cada sistema debe asignársele un usuario de MySQL y debe darse los permisos necesarios
281                 y suficientes a dicho usuario sobre las bases que necesite. Si no se modifica una base a
282                 la que accede debe darsele solo permisos de SELECT y si no accede a una db no debe darsele
283                 permisos.
284
285 */