1 /** @page instalacion Manual de Instalación
3 @section apache Instalación de Apache.
12 @subsection apache_config Configuración.
13 Poner como DocumentRoot /var/www/htdocs.
15 @subsection 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
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,
57 svn co http://portal.mecon.ar/svn/scripts/embperl
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:
66 cp SimpleXMLISO.pm /usr/share/perl5/Apache/Session/Serialize/
67 cp DumperISO.pm /usr/share/perl5/XML/
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
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.
85 @subsubsection apache_embperl_apache Configuración del Servidor Apache
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.
91 Archivos @ref embperl_apache_httpd.conf y @ref embperl_apache_modules.conf
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.
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.
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:
116 # Las siguientes líneas son para páginas de Embperl
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
131 # Las siguientes líneas son para otros archivos de perl
133 SetHandler perl-script
134 PerlHandler Apache::Registry
140 @subsection apache_php Instalación de PHP.
153 @subsubsection apache_php_pear Instalación de paquetes de PEAR.
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
164 @subsubsection apache_php_config Configuración de PHP.
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:
169 allow_call_time_pass_reference = Off
171 error_reporting = E_ALL
174 log_errors_max_len = 4096
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"
187 SMTP = mail1.mecon.ar
188 sendmail_from = intranet@mecon.gov.ar
190 session.cookie_domain = .mecon.ar
191 session.name = INTRANET_PHPSESSID
192 session.auto_start = 1
195 Luego hay que crear el archivo de log con los permisos correctos:
197 touch /var/log/apache/php.log
198 chown www-data.www-data /var/log/apache/php.log
199 /etc/init.d/apache restart
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.
208 @section sistemas Instalacion de sistemas.
210 @subsection sistemas_subversion Instalación de Subversion.
211 Instalar el paquete subversion:
212 @verbatim apt-get install subversion @endverbatim
214 @subsection sistemas_permisos Permisos y estructura de directorios.
215 Asegurarse de que los permisos en /var/www sean correctos:
217 chown www-data.www-data /var/www -R
220 Como el usuario www-data cree la estructura de directorios:
224 mkdir sistemas htdocs sistemas_lib
227 @subsection sistemas_checkout Obtener bibliotecas y sistemas.
230 svn co http://portal.mecon.ar/svn/meconlib/tronco meconlib
232 Obtener Intranet, SAMURAI, AI y otros 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
243 @subsection sistemas_public Crear estructura pública.
246 ln -s ../meconlib/www MECON
247 echo '<?php header("Location: /sistemas/intranet/") ?>' > index.php
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
258 @subsection sistemas_libs Crear estructura de bibliotecas.
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
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
277 Lo mismo se repite para otros sistemas generalmente (como AI).
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