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 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.
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 Archivos @ref intranet_embperl_apache_httpd.conf y
93 @ref intranet_embperl_apache_modules.conf
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.
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.
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:
118 # Las siguientes líneas son para páginas de Embperl
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
133 # Las siguientes líneas son para otros archivos de perl
135 SetHandler perl-script
136 PerlHandler Apache::Registry
142 @subsection intranet_apache_php Instalación de PHP.
155 @subsubsection intranet_apache_php_pear Instalación de paquetes de PEAR.
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>
168 @subsubsection intranet_apache_php_config Configuración de PHP.
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:
173 allow_call_time_pass_reference = Off
175 error_reporting = E_ALL
178 log_errors_max_len = 4096
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"
191 SMTP = mail1.mecon.ar
192 sendmail_from = intranet@mecon.gov.ar
194 session.cookie_domain = .mecon.ar
195 session.name = INTRANET_PHPSESSID
196 session.auto_start = 1
199 Luego hay que crear el archivo de log con los permisos correctos:
201 touch /var/log/apache/php.log
202 chown www-data.www-data /var/log/apache/php.log
203 /etc/init.d/apache restart
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.
212 @section intranet_sistemas Instalacion de sistemas.
214 @subsection intranet_sistemas_subversion Instalación de Subversion.
215 Instalar el paquete subversion:
216 @verbatim apt-get install subversion @endverbatim
218 @subsection intranet_sistemas_permisos Permisos y estructura de directorios.
219 Asegurarse de que los permisos en /var/www sean correctos:
221 chown www-data.www-data /var/www -R
224 Como el usuario www-data cree la estructura de directorios:
228 mkdir sistemas htdocs sistemas_lib
231 @subsection intranet_sistemas_checkout Obtener bibliotecas y sistemas.
234 svn co http://portal.mecon.ar/svn/meconlib/tronco meconlib
236 Obtener Intranet, SAMURAI, AI y otros 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
247 @subsection intranet_sistemas_public Crear estructura pública.
250 ln -s ../meconlib/www MECON
251 echo '<?php header("Location: /sistemas/intranet/") ?>' > index.php
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
262 @subsection intranet_sistemas_libs Crear estructura de bibliotecas.
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
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
281 Lo mismo se repite para otros sistemas generalmente (como AI).
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.
289 cd /var/www/sistemas/REPOSITORIO_A_USAR/doc/
290 mysql -uroot -p < permisos.sql