JIRA en Tomcat7 con Java7, PostgreSQL 9.2 y Nginx — parte 2

En el post anterior completamos la preparación del archivo WAR para hacer el deploy en el servidor de aplicaciones Tomcat 7 ahora configuraremos Tomcat 7 y nginx siguiendo los siguientes pasos:

Creamos un script para iniciar Tomcat como servicio creamos el archivo “tomcat” con el siguiente contenido:

#!/bin/bash
# description: Tomcat Start - Stop - Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/opt/tcjira/jdk1.7.0_21
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/opt/tcjira/tomcat7
source $CATALINA_HOME/bin/setenv.sh

case $1 in
start)
echo "Starting Tomcat"
/bin/su jira $CATALINA_HOME/bin/startup.sh
;;
stop)
echo "Stopping Tomcat"
/bin/su jira  $CATALINA_HOME/bin/shutdown.sh
;;
restart)
echo "Restarting Tomcat"
/bin/su jira  $CATALINA_HOME/bin/shutdown.sh
/bin/su jira  $CATALINA_HOME/bin/startup.sh
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0

agregamos el servicio al sistema, copiamos el script a /etc/init.d

cp tomcat /etc/init.d
chkconfig --add tomcat
chkconfig --level 3 tomcat on

# activamos el servicio postgresql para que inicie automatico
chkconfig postgresql-9.2 on

# verificamos los servicios
chkconfig --list | grep -i '3:on'

# iniciamos los servicios
service tomcat start
service postgresql-9.2 start 

# creamos el usuario y base de datos para jira
su - postgres
createuser -P jira
psql -d postgres

postgres=# CREATE DATABASE jiradb OWNER jira ENCODING 'UNICODE';

Por seguridad configuraremos Nginx como reverse proxy y usaremos un subdominio con el fin de acceder a la aplicacion web jira usando el puerto tcp 80 pasando por Nginx, en lugar de ir directo a Tomcat en el puerto tcp 8080.

server {
        listen  80;
        server_name     dev.h4v0k.com;
        
        access_log      off;

        location / {
                proxy_pass http://localhost:8080;
                proxy_read_timeout  10800s;
                proxy_set_header    Host            $host;
                proxy_set_header    X-Real-IP       $remote_addr;
                proxy_set_header    X-Forwarded-for $remote_addr;
                port_in_redirect off;
                proxy_redirect   http://dev.h4vok.com:8080/jira/  /;
                proxy_connect_timeout 300;
                add_header  X-Frame-Options SAMEORIGIN; 
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   /srv/www/htdocs;
        }

}

luego modificaremos la configuracion de tomcat en server.xml para definir el proxy.

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"
               proxyName="dev.h4v0k.com"
               proxyPort="80" 
/>

Para hacer el deploy de la aplicación se requiere una configuración mas en el Tomcat antes de iniciar. En el directorio “/opt/tcjira/tomcat7/conf/Catalina/localhost” creamos un archivo llamado “jira.xml” con lo siguiente:

<?xml version='1.0' encoding='utf-8'?>

<Context path="/jira" debug="0" useHttpOnly="true">
 
  <Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"
      factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/>
        <Manager pathname=""/>
         
</Context>

En este archivo se define el contexto para el deploy de la aplicacion java, el path “/jira” sera el que utilizaremos para llegar a la aplicacion por lo deberemos renombrar el archivo WAR creado previamente y moverlo al folder de aplicaciones de Tomcat.

cd /opt/tcjira/atlassian-jira-6.0.1/dist-tomcat
mv atlassian-jira-6.0.1.war /opt/tcjira/tomcat7/webapps/jira.war 

con todo configurado correctamente, podremos ver en el log la inicialización de la aplicación y continuar la configuración con el wizard desde el navegador, donde se configurara la licencia y los parametros de la BD.

logs de apache tomcat:

Jira startup

postgresql 9.2

Postgresql 9.2 JDBC

Atlassian Jira funcionando

Jira running

Referencia:

JIRA Installation and Upgrade Guide

Running+the+Setup+Wizard

Installing JIRA on Tomcat 6.0 or 7.0

JIRA en Tomcat7 con Java7, PostgreSQL 9.2 y Nginx — parte 1

JIRA es una excelente herramienta para el tracking de tareas, bugs y seguimiento de proyectos, cuando se combina con el complemento para seguimiento de proyectos GreenHopper presenta la herramienta mas versátil para la aplicación de metodologías ágiles (Scrum, Kanban).

JIRA es ofrecida en diferentes planes, en la nube o alojado en la infraestructura propia y diferentes precios segun el numero de usuarios. Posee un precio accesible para equipos de 10 usuarios cuando se aloja en infraestructura propia ($10).

Continue reading “JIRA en Tomcat7 con Java7, PostgreSQL 9.2 y Nginx — parte 1”

Sun Java System Web Server 7.0 + PHP5 en Fedora8

Despues de estar un buen rato sin postear, regreso para mostrar como configurar el web server de Sun con PHP en linux otra opcion mas donde se puede instalar el PHP.

El servidor web de Sun es versatil y esta enfocado a organizaciones medias y grandes. puede servir JSP y con el agregado FastCGI puede ser usado con la mayoria de lenguajes de script como PHP, Perl, Python, etc.

Bueno lo primero es conseguir el software, esto se hace facilmente registrandonos en la pagina de Sun y obteniendo una cuenta gratuita para descargar los programas, una vez logeados veremos la lista del software que podemos descargar:

para esta demostracion usaremos la version 7 del web server y el agregado php.

Sun Java System Web Server 7.0

PHP 5.2.0 addon:

teniendo los archivos ya descargados:

phppack-5_2_0-linux-i586.zip

sjsws-7_0u2-linux-i586.tar.gz

procedemos a instalar el web server:

<br />
$ tar xzvf sjsws-7_0u2-linux-i586.tar.gz<br />
$ ./setup<br />

la instalacion es sencilla se realiza desde el shell, solicitara confirmacion del usuario para la localizacion donde se instalara el web server y los datos de la cuenta del administrador del servidor, mostrare alguno screenshots de esto:

si todo quedo bien podremos iniciar el web server con las intrucciones que apareceran en la consola:
<

<br />
$ /sun/webserver7/admin-server/bin/startserv<br />

web server funcionando :

Ahora la instalacion del PHP, tomamos el archivo phppack-5_2_0-linux-i586.zip y los descomprimimos en el directorio de plugins del servidor web

<br />
# mv phppack-5_2_0-linux-i586.zip  /sun/webserver7/plugins/<br />
# cd /sun/webserver7/plugins/<br />
# unzip phppack-5_2_0-linux-i586.zip<br />

Panel de administracion de Sun Web server

Sun Web server puede operar con multiples servidores virtuales y lo que maneja son instancias las cuales tiene su propia configuracion y espacio en disco y memoria y representan los sitios desplegado en el servidor

Instancia creada por default, nos muestra el sitio en el cual instalaremos el PHP

El PHP para Sun web server puede instalarse de manera manual editando los archivos de configuracion:

– magnus.conf (contiene las directivas para el tipo de carga del plugin NSAPI o FastCGI)
– obj.conf(Directivas para procesar las peticiones HTTP)
– mime.types (mapear las extensiones a los tipos MIME de cada peticion)

la otra opcion es usar un script que realiza estas tareas automaticamente con solo pasarle los parametros de la instancia del web server para la demostracion usaremos este metodo.

Ejecutamos el script:

si todo salio bien deberemos observar en el log la carga del plugin:

ahora solo queda probar el php en el web server asi que creamos un archivo con lo siguiente:

<br />
echo phpinfo();<br />

y lo ubicamos en la raiz del sitio (/sun/webserver7/https-xaero.xdark.lan/docs).
reiniciamos la instancia y debe generar algo como esto:

y listo tenemos el web server de Sun configurado con PHP5.

Referencias:

http://developers.sun.com/webserver/

Sun docs