martes, noviembre 25, 2008

Instalar Java, Tomcat y Apache en Fedora/Centos

Instalación del JDK
Evidentemente lo primero que necesitamos para desarrollar en Java es instalar el kit
de desarrollo (JDK) que podemos descargar desde la web de Sun. A la hora de
escribir este tutorial la última versión es la 5.0 Update 6. Utilizaremos la versión
autoextraible (Linux self-extracting file) en lugar del paquete RPM.
Introducir contraseña de root
cp -p jdk-1_5_0_06-linux-i586.bin /usr/local
cd /usr/local
chmod +x jdk-1_5_0_06-linux-i586.bin
./jdk-1_5_0_06-linux-i586.bin
rm jdk-1_5_0_06-linux-i586.bin
Esto extraerá el contenido del archivo en una nueva carpeta jdk1.5.0_06 en
/usr/local. Ahora basta crear la variable de entorno para indicar dónde está instalado
el JDK y añadir a la variable PATH el directorio en el que se encuentran los binarios
para poder ejecutarlos desde cualquier sitio. Para ello abrimos el archivo /etc/profile
con nuestro editor favorito (como root) y añadimos las siguientes líneas al final:
JAVA_HOME=/usr/local/jdk1.5.0_06
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME
Actualizamos las variables de entorno:
source /etc/profile
Si todo ha salido bien al escribir javac -version deberíamos obtener el número de
versión del compilador de Java. En el caso de que algo halla salido mal el sistema nos
informará de que no encontró ningún ejecutable con ese nombre.
Instalar Tomcat
Descargar la distribución en /usr/local/tomcat
$ ls
apache_tomcat-5.5.12.tar.gz
a continuación, es necesario extraer los archivos
$ tar zxf apache-tomcat-5.5.12.tar.gz
$ ls
apache-tomcat-5.5.12.tar.gz apache-tomcat-5.5.12
particularmente, acostumbro definir una liga simbólica en caso de que sea necesario
instalar y correr una versión diferente del tomcat
$ ln -s apache-tomcat-5.5.12 apache-tomcat
$ ls -l
drwxrwxr-x 11 tomcat tomcat 4096 nov 7 18:45 apache-tomcat-5.5.12
lrwxrwxrwx 1 tomcat tomcat 20 nov 7 19:12 apache-tomcat -> apache-tomcat-5.5.12
-rwxr-xr-x 12 tomcat tomcat 4096 nov 7 18:21 apache-tomcat-5.5.12.tar.gz
En /usr/local/tomcat/bin hay varios scripts con los que se puede correr tomcat. Solo
define JAVA_HOME y ejecuta el script que corresponda a la instalación
$ export JAVA_HOME=/opt/jdk1.5.0_03
$ /home/tomcat/jakarta-tomcat/bin/startup.sh
Using CATALINA_BASE: /home/tomcat/jakarta-tomcat
Using CATALINA_HOME: /home/tomcat/jakarta-tomcat
Using CATALINA_TMPDIR: /home/tomcat/jakarta-tomcat/temp
Using JRE_HOME: /opt/jdk1.5.0_03
Compilar e instalar el conector JK
Existen dos versiones del conector, JK y JK2. Aunque parezca raro la versión que nos
interesa instalar es la primera, ya que la segunda está descontinuada. El código
fuente se puede descargar desde la web de Tomcat.
Vamos a compilar el módulo mod_jk.so (debería colocarlo en la carpeta de módulos del
servidor Apache):
cp -p jakarta-tomcat-connectors-1.2.15-src.tar.gz
/usr/local/src/
cd /usr/local/src
tar xvzf jakarta-tomcat-connectors-1.2.15-src.tar.gz
rm jakarta-tomcat-connectors-1.2.15-src.tar.gz
cd jakarta-tomcat-connectors-1.2.15-src/jk/native/
./buildconf.sh
./configure --with-apxs=/usr/local/apache/bin/apxs
make
make install
Y ahora sólo falta configurarlo. Creamos un nuevo archivo workers.properties en
/usr/local/apache/conf con el siguiente contenido:
workers.tomcat_home=/usr/local/apache-tomcat-5.5.16/
workers.java_home=$JAVA_HOME
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1
Editamos el archivo de configuración de Apache (/usr/local/apache/conf/httpd.conf)
para cargar el módulo. En la sección LoadModules añadimos:
LoadModule jk_module modules/mod_jk.so
Y al final del archivo:
JkWorkersFile "conf/workers.properties"
JkLogFile "logs/mod_jk.log"
JkLogLevel warn
JkMount /jsp-examples default
JkMount /jsp-examples/* default
JkMount es la línea que indica a Apache que solicitudes reenviar a Tomcat. En este
caso llamaremos a Tomcat siempre que se intente acceder a cualquier archivo del
directorio jsp-examples, donde se guardan algunos ejemplos para demostrar el uso de
JSP, utilizando el protocolo definido por “default”. También podríamos haber utilizado
algo del estilo *.jsp para ejecutar Tomcat sólo en el caso de que los archivos
terminaran con esta extensión.
Por último iniciamos Apache y Tomcat:
/usr/local/apache-tomcat-5.5.16/bin/startup.sh
/usr/local/apache/bin/apachectl start
Al introducir la URL http://localhost deberíamos ver la web de bienvenida de Apache,
al introducir
http://localhost:8080 la de Tomcat,
y con http://localhost/jsp-examples Apache enviará la petición a

Instalar WebMin en Fedora /Centos

webmin-xxx.tar.gz
Ejecutamos en un shell lo siguiente como root gzip -d webmin-xxx.tar.gz -
Despues vemos como estan nuestros archivos con
ls -l
Luego
tar -xvf webmin-xxx.tar
Se ha creado una carpeta llamada webmin-xxx ingresamos a ella y ejecutamos: .
/setup.sh
Nos preguntara por la carpeta de [/etc/webmin]:presionamos enter
Luego
[/var/webmin]:
Enter tambien luego enter para la ubicacion del perl
Indicamos el puerto por lo general se usa el puerto 10000 seleccionamos el usuario y
el pasword.
Por ultimo contestamos y para q webmin se reinicie con el sistema.

Configurar Samba en Centos/Fedora

1. Creamos un usuario Samba
1. useradd -s /sbin/nologin usuario-windows
2. smbpasswd -a usuario-windows
No hace falta se asigne una clave de acceso en el sistema con el mandato
passwd puesto que la cuenta no tendrá acceso al interprete de mandatos. Si se
necesita que las cuentas se puedan utilizar para acceder hacia otros servicios
como serían Telnet, SSH, etc, es decir, que se permita acceso al interprete de
mandatos, será necesario especificar /bin/bash como interprete de mandatos y
además se deberá asignar una clave de acceso en el sistema con el mandato
passwd:
3. useradd -s /bin/bash usuario-windows
4. passwd usuario-windows
5. smbpasswd -a usuario-windows
2. El fichero lmhosts, Es necesario empezar resolviendo localmente los nombres
NetBIOS asociándolos con direcciones IP correspondientes. Para fines
prácticos el nombre NetBIOS debe tener un máximo de 11 caracteres.
Normalmente tomaremos como referencia el nombre corto del servidor o el
nombre corto que se asigno como alias a la interfaz de red. Este lo
estableceremos en el fichero /etc/samba/lmhosts, en donde encontraremos lo
siguiente:
127.0.0.1 localhost
3. Debemos añadir entonces el nombre que hayamos elegido asociado a la dirección IP que se tenga.
4. Dentro de la red local. Opcionalmente podrá añadir también los nombres y
dirección IP del resto de Maquinas que conformen la red local. La separación de espacios se hace con un tabulador.
Ejemplo:
127.0.0.1 localhost
192.168.1.5 maquinalinux
192.168.1.6 isaac
192.168.1.7 finanzas
192.168.1.8 direccion
Parámetros principales del fichero smb.conf.
Modifique el fichero /etc/samba/smb.conf con cualquier editor de texto. Dentro de
este notará que la información que le será de utilidad viene comentada con un símbolo
# y los ejemplos con ; (punto y coma), siendo estos últimos los que tomaremos como
referencia. Empezaremos por establecer el grupo de trabajo editando el valor del
parámetro workgroup asignando un grupo de trabajo deseado:
workgroup = MIGRUPO
Opcionalmente puede establecer con el parámetro netbios name otro nombre distinto
para el servidor si acaso fuese necesario, pero siempre tomando en cuenta que dicho
nombre deberá corresponder con el establecido en el fichero /etc/samba/lmhosts:
netbios name = maquinalinux
El parámetro server string es de carácter descriptivo. Puede utilizarse un comentario
breve que de una descripción del servidor.
server string = Servidor Samba %v en %L
Parámetros útiles para la seguridad.
La seguridad es importante y esta se puede establecer primeramente estableciendo la
lista de control de acceso que definirá que máquinas o redes podrán acceder hacia el
servidor. El pará hosts allow sirve para determinar esto. Si la red consiste en la
máquinas con dirección IP des 192.168.1.1 hasta 192.168.1.254, el rango de direcciones
IP que se definirá en hosts allow ser 192.168.1. de modo tal que solo se permitirá el
acceso dichas máquinas. Note por favor el punto final de cada rango. Modifique ésta
de manera que quede del siguiente modo:
hosts allow = 192.168.1. 127.
Compartiendo directorios a través de Samba.
Para los directorios o volúmenes que se irán a compartir, en el mismo fichero de
configuración encontrará distintos ejemplos para distintas situaciones particulares.
En general, puede utilizar el siguiente ejemplo que funcionará para la mayoría:
[Lo_que_sea]
comment = Comentario que se le ocurra
path = /cualquier/ruta/que/desee/compartir
guest ok = yes
public = yes
browseable = yes
writeable = yes
Inciar el servicio y añadirlo al arranque del sistema.
Si iniciará Samba por primera vez realice lo siguiente:
/sbin/service smb start
Si va a reiniciar el servicio, realice lo siguiente:
/sbin/service smb restart
Para que Samba inicie automáticamente cada vez que inicie el servidor solo ejecute el
siguiente mandato:
/sbin/chkconfig smb on

Configurar Mysql en Linux - Centos/Fedora

Activar mysql en linux.
1. Activar Mysql.
1. service mysqld restart
2. chkconfig mysqld on
3. mysqladmin -u root password 'clave'
2. Ingresar a mysql
1. mysql -u root – p
2. Digitar password
3. En Mysql creamos el usuario root
1. CREATE USER 'root'@'%' IDENTIFIED BY 'clave';
4. Proporcionamos todos los privilegios a este usuario.
1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'clave' WITH GRANT OPTION;
2.FLUSH PRIVILEGES;
5. Desactivar Firewall
1. service iptables stop
6. Podemos ya ingresar con el MYSQLAdministrator en Windows.

viernes, noviembre 14, 2008

Impresion en Web con PDF

Tomado de:
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Impresion+en+WEB,

Impresión en WEB

English version: Prints in Web environment

Impresión en el cliente en WEB

En interfaz WEB, hasta ahora había constituido un desafío el hecho de imprimir reportes en la impresora del cliente, sin intervención del usuario. Ahora es posible hacerlo de una forma más inmediata e intuitiva.

Las posibilidades de impresión dentro de lo que es modo gráfico, son en general, formato PDF o reportes gráficos usando la herramienta ReportViewer. El uso de cualquiera de estas variantes depende de la plataforma y la interfaz usada. En interfaz GUI Windows, es válido el uso del ReportViewer. En interfaz GUI linux no lo es, debido a que la implementación del Report.Viewer está basada en dlls para su funcionamiento. En interfaz WEB tampoco es válido el uso de dicha herramienta, porque no es posible ejecutar el ReportViewer dentro del browser (es una aplicación GUI).

En plataforma WEB, los reportes mayoritariamente usados, son los reportes gráficos en formato PDF, que se despliegan en el browser del cliente, dentro del cual ejecuta el Acrobat Reader.

Si bien el reporte PDF se visualiza en el browser, hasta la versión 9.0 no había una manera inmediata de enviar ese reporte a imprimir, en la impresora del cliente (sin intervención del usuario). Esto es porque en dicho ambiente el cliente es un browser (Internet Explorer, FireFox, etc), y la dificultad está vinculada al hecho de acceder al driver de impresión dentro del PC cliente donde ejecuta dicho browser.

Sin embargo, a partir del upgrade 1 de los generadores Java y NET existe la posibilidad de que el usuario, presionando un botón pueda mandar a imprimir un reporte PDF a su impresora, sin tener que pasar por el diálogo de impresión.
A nivel del desarrollador GeneXus, no hay programación adicional, cualquier reporte GeneXus que cumpla con las condiciones de ser un reporte PDF, y que además posea salida a impresora (lo cual se hace en GeneXus a través de una propiedad llamada "Report Output"), se imprimirá en la impresora conectada al PC donde ejecuta el navegador web.
La aparición del diálogo de impresión es configurable, al igual que en cualquier modelo GeneXus que trabaje con reportes. Igualmente, si la aplicación corre en una Intranet, donde las impresoras son conocidas, se puede manejar desde el servidor la selección de la impresora.
Se tendrá todo el dinamismo que ya existe en el manejo de reportes, logrando que los mismos accedan a los drivers de impresión del PC cliente, sin intervención del usuario final (diálogo de impresión), si asi se desea.
A continuación, siguen algunos ejemplos y un xpz para ejecutar.

Sample I :Como mandar a imprimir el PDF directo a la impresora del PC

Para mandar a imprimir el reporte en web desde la máquina que ejecuta el browser (cliente), el reporte debe cumplir con lo siguiente:


* Debe ser main
* La propiedad Call protocol debe ser http
* La propiedad "Report Output" debe ser "Only to Printer"
* Se debe configurar la regla output_file("x.pdf","PDF")

Solo con esos pasos se logra que el reporte PDF se visualice en pantalla, a la vez que se envía a imprimir a la impresora del PC cliente, indicada en la regla printer (1).

Descargar el ejemplo de aqui:
Basic Sample Silent Printing

Sample II : Evitar que el reporte se visualice en pantalla

Si se desea evitar que se despliegue el reporte en pantalla, antes de enviarlo a la impresora, se puede direccionar el reporte a una Embedded Page de tamaño 1 x 1.
Descargar el ejemplo de aquí:
Silent Print Sample Without showing page

Sample III: Evitar que el usuario interrumpa la impresión

Para evitar que el usuario presione un botón del form durante la impresión del reporte (lo cual la interrumpiría), es posible agregar javascripts para deshabilitar los controles (botones y links) hasta que la impresión finalice.
Se usa una cookie en la solución. El tema es que cuando se hace la invocación al reporte vuelve un response sin el archivo, por lo cual en ese momento no es adecuado habilitar los botones. Por eso, recien cuando vuelve el segundo response con el archivo, se habilitan los botones.
La implementación está hecha de tal manera de que antes de mandar la impresión se graba la cookie.
Luego, se setean intervalos de tiempo con un javascript, para que cada X tiempo se consulte esa cookie.
El reporte al finalizar graba la cookie, con lo cual, detectado esto, se habilitan los botones.

El hecho de deshabilitar el form en el POST se hará en forma automática en un próximo upgrade.

Bajar el ejemplo:
Silent Print Sample with Javascripts

ANEXO Donde mandar a imprimir?

Regla printer y gxprn.ini
En cualquiera de los casos, las configuraciones de impresión, como siempre, se toman del archivo gxprn.ini (1), y mediante la regla printer se especifica la entrada dentro de ese archivo que contiene la configuración que se desea tomar.
Cuando un reporte con regla printer se ejecute, irá a buscar al archivo una entrada con el mismo nombre que se le puso en la regla. De no existir ninguna entrada con ese nombre, o de no existir el archivo gxprn.ini, el reporte se tratará de imprimir a la impresora por default.
Por ejemplo si la regla es :
printer('Facturas');
Se buscará una entrada "Facturas" dentro del gxprn.ini.
En el caso del generador Java, el gxprn.ini se debe ubicar en el mismo lugar que el pdfreport.ini o sea en el WEB-INF de la webapp.
En el caso del generador NET se debe ubicar en el directorio virtual, o en el directorio virtual\bin.
Si no se encuentra el gxprn.ini toma correctamente la impresora default.

Programa GXsetfrm

El archivo gxprn.ini se crea en el momento de la ejecución del programa "gxsetfrm". Este programa permite crear y modificar los diferentes "forms" (un "form" es una entrada en el gxprn.ini, con una determinada configuración).
El programa "gxsetfrm" es un programa win, se usa unicamente para configurar el gxprn.ini, y se lo debe llamar por ejemplo desde un evento de usuario de la siguiente forma: call("gxsetfrm").

Propied Show Printer Dialog on reports

Si no se encuentra el gxprn.ini, se considera la propiedad "Show Printer Dialog on reports", para mostrar o no el diálgo de impresión.
De lo contrario, si se encuentra el gxprn.ini, se toma en cuenta lo configurado alli. Para evitar que se muestre el diálogo de impresión, se especifica MODE = 0 en el gxprn.ini, en la entrada correspondiente de la impresora a usar.

Links relacionados
(1) Regla Printer:
http://www.gxtechnical.com/gxdlsp/pub/genexus_8.0_help_system/rules/printer_rule.htm

Generación de Reportes PDF:
http://www.gxtechnical.com/gxdlsp/pub/iehelp.htmGeneXus/DevEnv/Docum/ReleaseNotes/7.5/ReportesPDF.htm

[RSS feed with last changes in this category (copy shortcut to subcribe it in an RSS reader)]

4042
Created: 12/04/06 12:51 PM by sjuarez Last update: 06/11/09 12:30 PM by sjuarez