martes, marzo 07, 2006

Intalación de un Servidor ( SSH + Apache Web+ tomcat + Postgres)

Instalación de un servidor.

  • Instalamos los repositorios universe
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
sudo gedit /etc/apt/sources.list

  • Instalamos ssh
sudo apt-get install ssh

  • Instalamos Java 1.5
Nos descargamos los vinarios de http://java.sun.com/j2se/1.5.0/download.jsp
Instalo las herramientas para empaquetar los deb
apt-get install java-package
fakeroot make-jpkg jre-1_5_0_06-linux-i586.bin
Instalo el paquete recien creado
dpkg -i sun-j2re1.5_1.5.0+update06_i386.deb


otra posiblidad es vajarlo directamente del apt-get

sudo apt-get install sun-java5-jdk


Configuramos esta versión de java como versión por defecto:
sudo update-alternatives --config java

Configuramos la variable de entorno JAVA_HOME ( es opcional para el tomcat, ya que este puede configurar su provia JAVA_HOME en /etc/default/tomcat5
sudo vi /etc/profile
export JAVA_HOME= /usr/lib/j2sdk1.5-sun/

  • Instalamos apache
sudo apt-get install apache2
  • Instalamos tomcat
sudo apt-get install tomcat5
Al terminar el apt-get muestra lo siguiente
Configurando tomcat5 (5.0.30-9) ...
Añadiendo usuario del sistema tomcat5...
Adding new user `tomcat5' (109) with group `nogroup'.
Not creating home directory `/usr/share/tomcat5'.
Installing /var/lib/tomcat5/webapps/ROOT/WEB-INF/web.xml.
Installing /var/lib/tomcat5/conf/tomcat-users.xml.
Installing /var/lib/tomcat5/conf/jk2.properties
Starting Tomcat 5 servlet engine using Java from /usr/lib/kaffe: tomcat5.


Por defecto el script de instalación utiliza Kaffe en vez de JDK 1.5. el script de inicio del servicio utiliza el fichero /etc/default/tomcat5 para recuperar las variables de entorno por defecto, aqui modidifamos el JAVA_JOME y el uso de memoria y el renderizado sin utilizar las X.
sudo vi /etc/default/tomcat5
en mi caso
JAVA_HOME=/usr/lib/j2sdk1.5-sun

CATALINA_OPTS="-Djava.awt.headless=true -Xmx128M -server"


reinicio tomcat para comprobar
sudo /etc/init.d/tomcat5 stop
sudo /etc/init.d/tomcat5 start
Cuando se inicia por defecto escucha en el puerto 8180

  • Integración tomcat apache.
Descargamos mod JK
sudo apt-get install libapache2-mod-jk
y su documentación
sudo apt-get install libapache-mod-jk-doc
reiniciamos apache para que se lean los cambios
sudo /etc/init.d/apache2 force-reload
Deberiamos de tener modulo en /usr/lib/apache2/modules/mod_jk.so

  • Configuración de Apache para que utilice Tomcat
    Vamos a utilzar la instalación que genera automáticamente tomcat, aunque necesitamos editar elfichero worker.properties

sudo vi /etc/apache2/mods-enabled/workers.properties

workers.tomcat_home=/usr/share/tomcat5

workers.java_home=/usr/local/tools/java
ps=/worker.list=default

worker.default.port=8009

worker.default.host=localhost

worker.default.type=ajp13

worker.default.lbfactor=1


Lo siguiente es añadir las opciones apropiadas al modjk.

Para ello editamos el fichero

sudo vi /etc/apache2/mods-enabled/jk.load
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so

## Opciones de mod_jk#
JkWorkersFile "mods-enabled/workers.properties"

JkLogFile "/var/log/apache2/mod_jk.log"
JkLogLevel error
JkMount /ejemplo default

JkMount /ejemplo/* default


Con esto hacemos que apache redireccione a tomcat la aplicación ejemplo.
verificamos que la configturación funciona correctamente

./apachectl configtest

sudo ./apachectl start o /etc/init.d/apache2 start

  • Instalación de Postgres

Nos descargamos e instalamos los binarios.

sudo apt-get install postgresql-8.1

sudo apt-get install postgresql-contrib-8.1 ( para solucionar poblemas con versiones anteriores)

sudo apt-get install pgadmin3 pgadmin3-data

  • Configuración de Postgres

Configuramos el acceso de almenos un usuario ej :"iad" ( con permisos para todo)

sudo su postgres -c createuser iad

sudo su postgres -c createdb iad_cursos

Entramos en la base de datos recien creada y le cambiamos el password al usuario

sudo su postgres -c psql iad_cursos
ALTER USER iad WITH PASSWORD 'qwerty.iad';

\q

Para poder acceder al postgress desde otras máquinas:

sudo vi /etc/postgresql/8.0/main/postgresql.conf
#listen_addresses = 'localhost' por

listen_addresses = '*'

#password_encryption = on por

password_encryption = on

( el puerto al que hay que conectarse sera el 5433 )

Por ultimo determinamos que ips estan admintidas, configuramos para que puedan entrar todos los ordenadores que esten en la misma subred

sudo vi /etc/postgresql/8.1/main/pg_hba.conf
# Configuracion para que pueda acceder cualquier maquina de la subred

host all all 192.168.1.0/24 md5

Reinicio la base de datos

sudo /etc/init.d/postgresql-8.1 restart

font>y el sistema ya esta listo para admitir conexiones remotas.