/** @page intranet_instalacion Manual de Instalación @section intranet_apache Instalación de Apache. @verbatim Nombre Versión apache 1.3.29-1 apache-common 1.3.29-1 apache-utils 1.3.29-1 @endverbatim @subsection intranet_apache_config Configuración. Poner como DocumentRoot /var/www/htdocs. @subsection intranet_apache_embperl Instalación del Embperl para la Intranet del MECON. Paquetes del Apache utilizados: @verbatim Nombre Versión libapache-dbi-perl 0.92-0.1 libapache-mod-perl 1.29-1 libapache-session-perl 1.54-1 @endverbatim @note El último paquete de la lista fue escrito por la fundación Via Libre y por lo tanto no se encuentra en el repositorio del apt de debian, y sirve para realizar el manejo de las sesiones de los usuarios a través de una cookie que registra la información en la base de datos Sessions de mysql. Otros paquetes de perl usados para la instalación de la Intranet Paquetes que están en el repositorio del apt de debian: @verbatim Nombre Versión perl 5.8.1-2 perl-base 5.8.1-2 perl-modules 5.8.1-2 libdbi-perl 1.35-1 libembperl-perl 2.0b9.0-1 libhtml-embperl-perl 1.3.6-1 libxml-perl 0.07-10 libwww-perl 5.69-4 liburi-perl 1.23-1 libxbase-perl 0.2400-1 libxml-parser-perl 2.34-1 libxml-dumper-perl 0.67-1 libconfig-inifiles-perl @endverbatim Archivos adicionales para que funcione embperl: Para el correcto funcionamiento del embperl son necesarios algunos paquetes y archivos que no se encuentran en la distribución de Debian. Los archivos se encuentran en un repositorio de subversion, para obtenerlos: @verbatim cd /tmp svn co http://portal.mecon.ar/svn/scripts/embperl cd embperl @endverbatim Si no está instalado el subversion, pueden obtener estos archivos con cualquier cliente HTTP (navegador web) en http://portal.mecon.ar/svn/scripts/embperl/. Ahora en el directorio embperl se encuentran estos archivos que deben ser copiados como se indica en el archivo README: @verbatim cp SimpleXMLISO.pm /usr/share/perl5/Apache/Session/Serialize/ cp DumperISO.pm /usr/share/perl5/XML/ mkdir /var/www/htdocs cp Php2Embperl_Session.epl /var/www/htdocs/ cp base.epl /var/www/htdocs/ dpkg -i libapache-tempfile-perl_0.04-1_all.deb @endverbatim Todos estos archivos sirven para compartir las sesiones de los usuarios entre diferentes lenguajes. En el caso de la Intranet los lenguajes actualmente usados son PHP y Embperl. Los archivos @c SimpleXMLISO.pm (autor: Gonzalo Merayo) y @c DumperISO.pm (autor: Jonathan Eisenzopf ) son librerías escritas en Lenguaje PERL que sirven para parsear el XML de la sesion utilizada por los sistemas programados en Embperl. El archivo @c Php2Embperl.epl le sirve a la Intranet para cargar todos los datos de la sesión de PHP y pasarlos a la sesión de Embperl. @subsubsection intranet_apache_embperl_apache Configuración del Servidor Apache En este documento se incluye solamente la configuración de Embperl, dejándose de lado por el momento la configuración de PHP o de cualquier otro punto que pueda surgir durante la instalación. @par Archivos @c httpd.conf y @c modules.conf. En versiones anteriores la información del archivo modules.conf se encontraba incorporada al archivo @c httpd.conf pero para mayor claridad fueron separados. Estos archivos se encuentran por default en el directorio @c /etc/apache/ como el resto de los archivos de configuración del Servidor Apache. @par @c modules.conf El archivo modules.conf contiene la declaración de todos los módulos del Apache que serán cargados en el momento de levantar el servicio. Para cargar el módulo perl es necesario incluir en este archivo la siguiente línea: @verbatim LoadModule perl_module /usr/lib/apache/1.3/mod_perl.so @endverbatim @par Observación: El directorio 1.3 se corresponde con la versión del apache que se está instalando. @par @c httpd.conf Este es el archivo de configuración principal del Apache y para la configuración del Embperl se deben seguir los siguientes pasos: Agregar la línea: @verbatim Include /etc/apache/modules.conf @endverbatim para incorporar la información del archivo @c modules.conf. Agregar las siguientes líneas correspondientes a la configuración específica de Embperl: @verbatim # Las siguientes líneas son para páginas de Embperl PerlModule Apache::DBI # Módulo que permite interactuar con bases de datos PerlModule Data::Dumper; # Módulo que permite devolver resultados de variables AddType text/html .epl # Indica que los archivos .epl deben ser interpretados por el handler de perl SetHandler perl-script # Indica que handler usar PerlHandler HTML::EmbperlObject # Agrega el módulo de EmbperlObject PerlSetEnv EMBPERL_COOKIE_DOMAIN ".mecon.ar" # Indica el dominio de la cookie usada para la sesion 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 PerlSetEnv EMBPERL_OPTIONS 16 # Estaba así 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 PerlSetEnv EMBPERL_OBJECT_BASE base.epl #Indica el archivo base usado por EmbperlObject en cada directorio Options ExecCGI # Indica el modo de ejecución del Embperl # Las siguientes líneas son para otros archivos de perl SetHandler perl-script PerlHandler Apache::Registry Options ExecCGI @endverbatim @subsection intranet_apache_php Instalación de PHP. Paquetes necesarios: @verbatim Nombre Versión php4 4.3.3 o superior php4-cgi 4.3.3 o superior php4-pear 4.3.3 o superior php4-gd 4.3.3 o superior php4-ldap 4.3.3 o superior php4-mysql 4.3.3 o superior @endverbatim @subsubsection intranet_apache_php_pear Instalación de paquetes de PEAR. @verbatim pear install Date pear install Validate pear install Mail_Mime pear install HTML_Common pear install HTML_Table pear install HTML_QuickForm pear install HTML_Page pear install Numbers_Words pear install Spreadsheet_Excel_Writer @endverbatim @subsubsection intranet_apache_php_config Configuración de PHP. La configuración por omisión de Debian es bastante buena, sólo hay que modificar (o agregar en caso de no estarlo) lo siguiente: @verbatim allow_call_time_pass_reference = Off memory_limit = 16M error_reporting = E_ALL display_errors = Off log_errors = On log_errors_max_len = 4096 track_errors = On html_errors = Off error_log = /var/log/apache/php.log register_globals = Off register_argc_argv = Off magic_quotes_gpc = Off default_charset = "iso-8859-1" include_path = ".:/var/www/sistemas_lib:/var/www/meconlib/lib:/var/www/meconlib/pear_lib_tmp:/usr/share/php" extension=gd.so extension=ldap.so extension=mysql.so [mail functions] SMTP = mail1.mecon.ar sendmail_from = intranet@mecon.gov.ar [Session] session.cookie_domain = .mecon.ar session.name = INTRANET_PHPSESSID session.auto_start = 1 @endverbatim Luego hay que crear el archivo de log con los permisos correctos: @verbatim touch /var/log/apache/php.log chown www-data.www-data /var/log/apache/php.log /etc/init.d/apache restart @endverbatim @section intranet_locales Configuración de locales. @verbatim apt-get install locales @endverbatim Luego elegir es_AR ISO.8859-1 en la primera lista y @c es_AR en la segunda. @section intranet_sistemas Instalacion de sistemas. @subsection intranet_sistemas_subversion Instalación de Subversion. Instalar el paquete subversion: @verbatim apt-get install subversion @endverbatim @subsection intranet_sistemas_permisos Permisos y estructura de directorios. Asegurarse de que los permisos en /var/www sean correctos: @verbatim chown www-data.www-data /var/www -R chmod 2770 /var/www @endverbatim Como el usuario www-data cree la estructura de directorios: @verbatim su www-data cd /var/www mkdir sistemas htdocs sistemas_lib @endverbatim @subsection intranet_sistemas_checkout Obtener bibliotecas y sistemas. Obtener MEconlib: @verbatim svn co http://portal.mecon.ar/svn/meconlib/tronco meconlib @endverbatim Obtener Intranet, SAMURAI, AI y otros sistemas: @verbatim cd sistemas svn co http://portal.mecon.ar/svn/intranet/tronco intranet svn co http://portal.mecon.ar/svn/estadisticas/tronco estadisticas svn co http://portal.mecon.ar/svn/infoleg/tronco infoleg svn co http://portal.mecon.ar/svn/proyectos_ley/tronco proyectos_ley svn co http://portal.mecon.ar/svn/renavi/ramas/EmbperlconSamurai renavi svn co http://portal.mecon.ar/svn/sayonara/tronco sayonara svn co http://portal.mecon.ar/svn/ai/tronco ai svn co http://portal.mecon.ar/svn/bandas/tronco bandas svn co http://portal.mecon.ar/svn/bandasnovedades/tronco bandasnovedades svn co http://portal.mecon.ar/svn/brigada/tronco brigada svn co http://portal.mecon.ar/svn/codep/tronco codep svn co http://portal.mecon.ar/svn/samurai/ramas/estable samurai svn co http://portal.mecon.ar/svn/protocolizacion/ramas/estable protocolizacion svn co http://portal.mecon.ar/svn/protocolizacion/ramas/estable protocolizacion_minplan svn co http://portal.mecon.ar/svn/yatta/ramas/estable yatta svn co http://portal.mecon.ar/svn/encuestas/tronco encuestas @endverbatim @subsection intranet_sistemas_public Crear estructura pública. @verbatim cd /var/www/htdocs ln -s ../meconlib/www MECON echo '' > index.php mkdir sistemas cd sistemas ln -s ../../sistemas/intranet/sistema/www intranet ln -s ../../sistemas/estadisticas/sistema/www estadisticas ln -s ../../sistemas/infoleg/sistema/www infoleg ln -s ../../sistemas/proyectos_ley/sistema/www proyectos_ley ln -s ../../sistemas/renavi/sistema/www renavi ln -s ../../sistemas/sayonara/sistema/www sayonara ln -s ../../sistemas/samurai/sistema/www samurai ln -s ../../sistemas/ai/sistema/www ai ln -s ../../sistemas/bandas/sistema/www bandas ln -s ../../sistemas/bandasnovedades/sistema/www bandasnovedades ln -s ../../sistemas/protocolizacion/sistema/www protocolizacion ln -s ../../sistemas/protocolizacion_minplan/sistemas/www protocolizacion_minplan ln -s ../../sistemas/yatta/sistema/www yatta ln -s ../../sistemas/encuestas/sistema/www encuestas @endverbatim @subsection intranet_sistemas_libs Crear estructura de bibliotecas. @verbatim cd /var/www/sistemas_lib ln -s ../sistemas/ai/lib/AI ln -s ../sistemas/samurai/lib/SAMURAI ln -s ../sistemas/samurai/lib/INFOLEG ln -s ../sistemas/bandas/lib/BANDAS ln -s ../sistemas/bandasnovedades/lib/BandasNovedades ln -s ../sistemas/brigada/lib/BRIGADA ln -s ../sistemas/codep/lib/CODEP ln -s ../sistemas/yatta/lib/YATTA ln -s ../sistemas/encuestas/lib/Encuestas @endverbatim @subsection intranet_sistemas_permisos Permisos. Las constantes que identifican los permisos de cada sistema se encuentran definidas en el archivo (a menos que se indique algo distinto en doc/migracion.txt) @c DIRECTORIO_DEL_SISTEMA/sistema/local_lib/permisos.php Este archivo se obtiene de la sección Consultas de SAMURAI, de la siguiente manera: - Ingresar a SAMURAI a través de la intranet - Seleccionar cualquier sistema para trabajar - Ir a la sección 'Consultas' - Seleccionar la opción 'Bajar la definición de constantes de un sistema' - Seleccionar el sistema deseado - Guardar el archivo generado en el directorio @c DIRECTORIO_DEL_SISTEMA/sistema/local_lib/ - Dar permiso de lectura al archivo: chmod +r permisos.php Para el caso de los sistemas desarrollados en Embperl: - infoleg - estadisticas - proyectos_ley - renavi - protocolizacion - protocolizacion_minplan las instrucciones particulares se encuentran en el archivo @c DIRECTORIO_DEL_SISTEMA/doc/migracion.txt @section intranet_db Bases de Datos. @subsection intranet_db_config Configuración de bases de datos. En el directorio doc/ se encuentra un archivo de ejemplo de configuración para la base de datos que utilizará la intranet. El archivo se llama @c db.ini y debe ser copiado a @c /var/www/sistemas/intranet/sistema/conf y luego editado para que se conecte a la base de datos correcta. Lo mismo se repite para otros sistemas generalmente (como AI), a menos que se indique algo distinto en doc/migracion.txt. @subsection intranet_db_migrar Migración de bases de datos. En el directorio doc/ se encuentra un archivo con las instrucciones a seguir para la migración de las bases de datos en cada caso particular. El archivo se llama @c migracion.txt @subsection intranet_db_permisos Permisos y Usuarios. A cada sistema debe asignársele un usuario de MySQL y debe darse los permisos necesarios y suficientes a dicho usuario sobre las bases que necesite. En el directorio doc del repositorio de cada sistema se encuentra un script permisos.sql que contiene los comandos necesarios para realizar esta tarea (si estos archivos esta ubicados en otro lugar, debe especificarse en doc/migracion.txt). Es necesario editar (para poner correctamente los password y otras variables especificadas entre corchetes []) y luego correr el script con el usuario root de MySQL: @verbatim cd /var/www/sistemas/REPOSITORIO_A_USAR/doc/ mysql -uroot -p < permisos.sql @endverbatim */