Archive for the ‘apache’ Category

Como usar ant apache

September 7, 2008

¿Qué es ant?

Una vez que tenemos hecho nuestro programa java o mientras lo estamos haciendo, hay una serie de tareas repetetivas que hacemos con cierta frecuencia: borrar todos los .class para recompilar desde cero, compilar, generar la documentación de nuestro programa con javadoc, generar el jar con nuestro proyecto, etc, etc.

La forma normal de hacer esto al principio es hacerse unos ficheros de comandos en linux o ficheros .bat en windows. Ahi ponemos todos los comandos necesarios y llamamos a estos scripts cuando nos hace falta.

ant es una herramienta gratuita (se puede bajar de http://ant.apache.org) que funciona similar a los scripts o ficheros .bat. En un fichero de texto en formato xml ponemos qué tareas queremos que se ejecuten. Este fichero habitualmente se llama build.xml. Luego, desde línea de comandos de una ventana de ms-dos o shell de linux, nos basta ejecutar

$ ant

o bien

$ ant compila
$ ant documenta

y la tarea en cuestión se hace. “compila” y “documenta” son nombres que hemos definido nosotros para compilar y generar el javadoc respectivamente.

Se parece al make, alli tenemos al makefile que contiene las instrucciones de compilacion delos modulos.

¿Por qué usar ant?

Bueno, si ant hace lo mismo que los ficheros de script, ¿para qué usamos ant?. Realmente no hay ningún motivo, pero ant tiene unas pequeñas ventajas que nos pueden facilitar la vida.

La primera es que está hecho en java, así que es portable. Si hacemos nuestro fichero build.xml y tenemos instalado ant en windows, en linux o en imac, funciona todo bien sin necesidad de tocar nada. Con los ficheros de script o de comandos .bat, tenemos que tener una versión de dicho fichero para cada sistema operativo. Es más, es posible incluso que en distintas distribuciones de linux tengamos que hacer pequeñas modificaciones en el script. Esto lo hace un método ideal cuando distribuimos los fuentes para que las gente los compile en sus casas. Nos ahorra hacer varios tipos de scripts para varios sistemas operativos. Podemos así incluso distrubuir el fichero build.xml con nuestros fuentes, de forma que si la persona que los va a usar tiene instalado ant, puede compilar y generar la documentación fácilmente.

La segunda es que nos permite definir fácilmente varias tareas a hacer y fijar las dependencias entre ellas (cuales deben hacerse antes que cuales). Cuando mandamos a ant que ejecute una tarea (por ejemplo, compilar), ant analizará según las dependencias que hayamos puesto, qué tareas debe realizar, las ordenará de más simple a más compleja y las ejecutará una a una en ese orden. No ejecutará ninguna tarea dos veces ni ejecutará una tarea antes de ejecutar las que le preceden según las dependecias que hemos indicado. Por ejemplo, está claro que para generar el jar, necesitamos previamente haber compilado. Nos bastará decir que la tarea “empaqueta” depeden de “compila”.

Otra ventaja, aunque parezca tonta, es que en todos los proyectos que hagamos, nos bastará con ejecutar “ant. No tendremos que andar pensando el nombre del script o si es un proyecto entre varias personas, ¿cómo demonios habrá llamado Felipe al script que genera el javadoc?

Y otra ventaja más es que casi todos los entornos de desarrollo integran o tienen posibilidad de integrar ant (eclipse por ejemplo). De esta forma, las tareas que hayamos definido para línea de comandos de ms-dos/shell de linux, las tenemos accesibles directamente desde el entorno de desarrollo.

No todo son ventajas. Yo me he tropezado con dos pegas principalmente. La primera es que hacer un script para compilado es bastante cómodo (sobre todo en unix), mientras que un fichero build.xml de estos me resulta más dificil y siempre tengo que andar copiando uno de otro proyecto. Suelo hacer scripts con cierta frecuencia para cosas que no son compilar java y por ello conozco esa forma de programar y me siento cómodo con ella. Los build.xml sólo los hago para compilar, una vez al principio del proyecto y no los vuelvo a usar. Creo que nunca pillaré soltura con ellos.

La segunda pega más gorda, es que ant está en java y consume bastantes recursos. Participo en proyectos grandes, de más de 5000 clases. Estos proyectos suelen estar subdivididos en subproyectos, cada uno con su propio build.xml. Teóricamente, es posible llamar desde un build.xml a otros, pero en proyectos de esta envergadura no lo he conseguido sin obtener errores de “OutOfMemory”. Hay forma de cambiar la cantidad de memoria que usa ant y lo he hecho, gracias a ello si he conseguido compilar algunos de los subproyectos que de otra forma no lo hacían. Lo que no he podido es hacer un build.xml principal que vaya llamando a los demás sin que me de el dichoso error. Mi solución final fue hacer los build.xml parciales y un script tradicional que se encargue de ir ejecutando los build.xml de los subproyectos y juntándolo todo luego.

Instalamos ant

Para instalar ant sólo tenemos que descargarlo, por ejemplo, de http://ant.apache.org/bindownload.cgi, desempaquetar el zip en algún sitio y poner en el PATH el directorio bin que obtenemos al desempaquetar. Simplemente con esto, ya tenemos disponible el comando ant desde una shell o ventana de ms-dos.

Una pequeña estructura de directorios

Para hacer nuestro primer build.xml de ejemplo y empezar a usar ant, vamos a suponer que nuestro proyecto tiene una estructura de directorios como esta:

c:\proyecto\src
c:\proyecto\jar
c:\proyecto\class
c:\proyecto\javadoc

En el directorio src tenemos todos nuestro fuentes .java, en jar es donde vamos a dejar nuestro jar, en class es donde irán nuestros ficheros compilados .class y en javadoc donde dejaremos la documentación generada con javadoc

Yo suelo colocar el fichero build.xml en el directorio src, junto a los fuentes. A otros les gusta colocarlo en el directorio proyecto, justo encima de src, jar, class y javadoc. Puede ir en cualquier lado.

Un build.xml

Hemos comentado que hace tenemos que hacer un fichero build.xml en el que indicamos las tareas. Vamos a hacer uno sencillo con un par de cosas, por ejemplo “compilar“, generar el jar con “empaqueta” y generar el javadoc con “documenta“.

Empezamos escribiendo algo como esto con el notepad, el vi o el editor de texto que más nos guste.

<project name=”Mi_Proyecto” default=”todo”>

La primera línea es más o menos obligatoria en cualquier fichero .xml para cualquier aplicación, no solo de ant.

En la siguiente linea simplemente indicamos que a nuestro proyecto (project) lo llamamos (name) “Mi_Proyecto”, aunque por supuesto podemos darle el nombre que nos de la gana y que la tarea que se ejecutará por defecto (default) se llama “todo” y que también podemos darle el nombre que queramos. De momento esa tarea “todo” no hemos definido qué hace.

La última línea indica que se cierra el proyecto y se acaba el fichero.

Vamos ahora a definir lo que hace la tarea “todo”

<target name=”todo” depends=”empaqueta, documenta”>

Listo. Hemos metido un par de lineas para indicar la tarea (target)

Hemos llamado a la tarea (name) “todo” (igual que en el default de la línea anterior). Hemos indicado que para hacer esta tarea “todo” hay que hacer previamente (depends) las tareas “empaqueta” y “documenta” que todavía no hemos definido.

Luego, indicamos el fin de lo que hay que hacer en la tarea “todo” ( el /target)

Vamos con la tarea de “empaqueta”

<jar destfile=”../jar/fichero.jar” includes=”../class/**/*.class”/>

Nuevamente definimos una tarea de nombre “empaqueta”, que debe ejecutar previamente una tarea “compila” todavía no definida.

Entre la apertura (target) y cierre (/target) de la tarea, ahora sí decimos como generar el jar. El jar que aparece en rojo es una tarea predefinida de ant, que genera ficheros jar. Le hemos indicado que el fichero a generar (destfile) se llamará fichero.jar, lo dejará en ../jar y meterá dentro de él (includes) todos los *.class que encuentre desde el directorio ../class hacia abajo.

En includes se admiten comodines para poner los ficheros. El doble asterisco indica todos los subdirectorios recursivamente a patir de ahi.

Vamos ahora a definir la tarea “compila”

<javac srcdir=”.” destdir=”../class”/>

Esta vez la tarea “compila” no depende de nadie. El javac que aparece dentro es una tarea predefinida de ant que compila ficheros java. Le hemos indicado que compile todos los fuentes que encuentre del directorio actual (srcdir) hacia abajo y que deje los *.class generados en el directorio ../class (destdir).

Ahora sólo nos falta la tarea “documenta”, vamos a ella

<javadoc sourcepath=”.” destfile=”../javadoc” packagenames=”*”/>

Esta tarea no depende de nadie. javadoc es una tarea predefinida de ant a la que le hemos indicado dónde encontrar los fuentes (sourcepath) y donde debe dejar la documentación de javadoc (destfile). Hay que indicarle además de qué paquetes (packagenames) queremos que haga el javadoc.

Metiendo este fichero build.xml en el directorio de los fuentes src, podemos desde ms-dos o shell de linux, situados en ese directorio, ejecutar los siguientes comandos:

$ ant Hace por defecto la tarea “todo”, que a su vez hace “empaqueta” y “documenta”. “empaqueta” hace previamente compila. Es decir, se hace todo.
$ ant empaqueta Realiza la tarea “empaqueta”, que debe “compila” previamente
$ ant compila Sólo “compila”
$ ant documenta Sólo “documenta”

Bueno, esto es lo básico para ir empezando con ant. El build.xml que hemos hecho es bastante genérico. Basta que nuestro proyecto tenga una estructura de directorios como la indicada y colocar el build.xml en src.

ant tiene muchísimas tareas por defecto, que además de las cosas propias de java incluyen copia y borrados de ficheros y directorios, empaquetado y desempaquetado de ficheros zip, tar, jar, comandos de CVS e incluso el envio de e-mail. En http://ant.apache.org/manual/coretasklist.html tienes una lista de las tareas soportadas por defecto por ant, así como todos los posibles parámetros para cada una de ellas.

Además de las tareas por defecto, existen otras que podemos bajarnos opcionalmente. Estas incluyen la ejecución de test de JUnit, cosas de EJBs, métricas, etc, etc. En http://ant.apache.org/manual/optionaltasklist.html tienes una lista de las tareas opcionales que nos ofrece apache. Si buscas en internet encontrarás otros sitios que también ofrecen sus propias tareas.

Bases de datos: mysql, firebird

May 14, 2008

Firebird es una base de datos relacional que ofrece muchas características de SQL ANSI estándar y que funciona en Linux, Windows, MacOSX y una variedad de plataformas UNIX. Firebird ofrece una concurrencia excelente, alto rendimiento y un poderoso lenguaje de procedimientos almacenados y disparadores. Ha estado usándose en producción bajo varios nombres desde 1981. El Proyecto Firebird es un proyecto independiente de programadores de C y C++, asesores técnicos y colaboradores que desarrollan y mejoran a Firebird, la base de datos relacional basada en el código fuente liberado por Inprise Corp (ahora conocida como Borland Software Corp) el 25 de julio de 2000.

Instalacion de apache, PHP y MySql en linux debian

March 30, 2008

1. Instalamos el servidor Apache
sudo aptitude install apache2

2. Después instalamos PHP5:
sudo aptitude install php5

3. Ahora instalaremos las siguientes librerías:
sudo aptitude install libapache2-mod-auth-mysql php5-mysql

4. Una vez instalado el servidor Apache, y PHP, seguimos con MySql:
sudo aptitude install mysql-server

5. Una vez instalados estos módulos, reiniciaremos los dos servidores:
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/mysql restart

6. Cuando se inicien los servidores instalamos phpmyadmin:
sudo aptitude install phpmyadmin

7. Después de instalar todo, probamos la instalación accediendo a la siguiente dirección:
http://localhost o http://127.0.0.1

8. Nuestros sitios los crearemos dentro de la carpeta
/var/www

9. Para acceder a la gestión de las bases de datos ingresamos la siguiente dirección:
http://localhost/phpmyadmin

Al entrar en phpmyadmin utilizaremos como nombre de usuario root, y dejaremos la contraseña vacia, una vez dentro, deberíamos poner una contraseña al usuario root.

Prueba de carga a servidores apache

February 22, 2008

Apache Benchmark

ab -n100 -c5 http://www.xxxxx.yyy/
100 consultas de 5 usuarios concurentes

ab –info

Donde consigo puppy linux en español y con servidor apache incluido

October 20, 2007

Link para la descarga:

http://1472.no-ip.com/puppy/Castellano/

Distribucion castellanizada de puppy linux con servidor apache incluido, puppy linux portátil que incluye herramientas de programación web. Se agregó en el PATH los ejecutables de xampp
como /opt/lampp/bin. Y al arrancar puppy hago ejecutar el script
para que inicialice apache y mysql. Lo mismo pero a la inversa, al
apagarse. De paso, en htdocs también puse al portal hecho con
Postnuke en el directorio “pn” con un montón de módulos y bloques, este es el que se deben bajar:

puppy-2.13-seamonkey-fulldrivers-es-ttys-xampp.iso

Extraido de: http://www.murga-linux.com/puppy/viewtopic.php?t=21550

como montar un web server en Puppy Linux

October 19, 2007

En puppy linux se puede instalar un servidor apache muy funcional y sencillo, el paquete se llama xampp, lo pueden bajar de:

http://www.apachefriends.org/en/xampp.html

Version para linux, existen varias, asi que deben buscar en sourceforge hasta que den con la 1.5.5a la cual esta probada que si funciona bien en puppy y con maquinas viejitas (lo tengo activo en un pentium I), luego lo desempaquetan con:

tar xvfz xampp-linux-1.6.4.tar.gz -C /opt

Para activarlo deben estar como superuser:

su
chmod 755 /opt/lampp/lampp

Arranque:

/opt/lampp/lampp start

Eso es todo.

Pillen esto, esta muy interesante, para servidor web se puede usar XAMPP, lo tome de:

http://www.murga-linux.com/puppy/viewtopic.php?t=21550

Extraido textual:

Como hay dificultad a veces tener un linux en castellano, decidí hacer
todo esto para facilitar la vida a los demás que tuviesen el mismo problema.
Y para ello he hecho todo esto.

A partir del iso:

puppy-2.13-seamonkey-fulldrivers.iso

y de los paquetes de idioma castellano:

langpack-es-213-fix-05feb7.pup
Unofficial-langpack-es-213.pup

y agregandole el paquete de Midnight Commander

que obtuve siguiendo los download de puppy
y los foros de este mismo, he generado el siguiente iso castellano:

puppy-2.13-seamonkey-fulldrivers-es.iso

Y a partir de éste, he generado este otro, que difiere en la
cantidad de ttys que pueden usarse (tty2 a la 6), cambiando
LANG a es_AR, los permisos del directorio de /tmp y forzando
en el modo de caracteres a la elección de TERM=linux en vez
de xterm como estaba, al cual le tuve que poner la modificación
propuesta por un usuario (andrei) para el archivo snapmergepuppy
porque cuando funcionaba en un pen drive, los archivos los
copiaba sin el propietario, el cual pasaba a ser root y provocaba
que nunca funcionase en ciertas condiciones:

puppy-2.13-seamonkey-fulldrivers-es-ttys.iso

Esto hizo que mayormente los menúes y programas ya pasen a castellano.

Finalmente, necesitaba un linux portátil que tuviera herramientas
de programación web, Se agregó en el PATH los ejecutables de xampp
como /opt/lampp/bin. Y al arrancar puppy hago ejecutar el script
para que inicialice apache y mysql. Lo mismo pero a la inversa, al
apagarse. De paso, en htdocs también puse al portal hecho con
Postnuke en el directorio “pn” con un montón de módulos y bloques:

puppy-2.13-seamonkey-fulldrivers-es-ttys-xampp.iso

Si no te interesa programar con html y php, te recimendo que solo
bajes puppy-2.13-seamonkey-fulldrivers-es-ttys.iso

Lugares de donde obtuve los parches y programas:

Foro de murga-linux:
Hecho por el usuario WOW:
langpack-es-213-fix-05feb07.pup desde http://www.murga-linux.com/puppy/viewtopic.php?mode=attach&id=3220

Unofficial-langpack-es-213.pup desde ftp://puppy:linux@ftp.servage.net/Localization-project/spanish/puppy-213/Unofficial-langpack-es-213.pup

Midnight Commander desde http://dotpups.de/dotpups/File_Managers/Midnight.Commander.Plus.pup

XAMPP desde http://www.apachefriends.org/es/xampp.html y en particular la versión 1.5.5a

snapmergepuppy desde http://www.murga-linux.com/puppy/viewtopic.php?mode=attach&id=3466
por el usuario andrei desde el foro murga-linux

Postnuke 7.6.4 desde dev-postnuke.com, como así también bloques y módulos ya integrados en el directorio pn.
PostNuke-0.764+lang_Spa.zip

Bloques para Postnuke 7.6.4:
dp-Block[StaffStatusLite_1.2].zip
dp-ContactUs_0_1_horizontal.tgz
dp-Visitas_0_1.zip
pnCalculadora-v01.zip

Módulos para Postnuke 7.6.4:
dpUpload_v0.2.tgz
dp-Mod[Calendar_0.2].zip
dp-Mod[Docs_0.3].zip
dp-Mod[PrvMsg_1.1].zip
dp-Mod[StaffStatus_2.1-pn0760].zip
dp-Mod[Welcome_0.1].zip
dpPHPFreeChat.zip
htmlpages_2.1.tgz
pnEasyNews.zip
PostWrap_2_5.zip
PNphpBB2-1.2i-patch3-diff.tar.gz
PNphpBB2_1.2i_Spanish.tar.gz
PNphpBB2_1.2i.tar.gz
PNphpBB2_1.2i.tar.gz.md5
hpnPostCards.tgz
pnWebLog_0.40.tar.gz
pnWebLog_0.40-spa.tgz

Todo se encuentra en el directorio “archivos”

He cambiado el fondo de pantalla por uno que se ve la imagen
satelital nocturna de Buenos Aires y alrededores, que incluye a
la ciudad de La Plata.

Espero que todo le sirva. No doy ningún tipo de garantías.
Sólo puedo decir que en mi caso, todo me funcionó, aunque hay cosas
que todavía debo resolver. A otras personas todo esto puede fallarles
o corromperles datos, no lo sé. Úsenlo con precaución.

Alejandro Fernández

Instalacion facil de apache web server en cualquier sistema operativo

October 19, 2007

XAMPP:

Es un paquete muy sencillo que provee apache, mysql y PHP, se consigue por aqui:

http://www.apachefriends.org/es/xampp.html

Muchos usarios saben por experiencia propia que la instalación de un servidor web Apache no es fácil y que se complica aún más si se desea agregar MySQL, PHP y Perl.

XAMPP es una forma fácil de instalar la distribución Apache que contiene MySQL, PHP y Perl. XAMPP es realmente simple de instalar y usar – basta descargarlo, extraerlo y comenzar. Disponible en windows, linux, mac y solaris.

Foxserver:

October 16, 2007

Extraido de: http://www.webexperto.com/articulos/art/109/foxserv-paquete-instalador-para-windows/

FoxServ es un completo y eficiente paquete que instala Apache, Php, Zend Optimizer, MySQL y PhpMyAdmin en Windows de una sola vez y sin tener que configurar los componentes en forma independiente.

FoxHunt, la empresa encargada del proyecto, realizó un paquete instalador que facilitará la tarea a muchísimos aspirantes programadores de PHP.

Se trata de un solo archivo foxserv-v.3.exe, (el cual pueden descargar de las páginas del proyecto Source Forge) con el cual puede instalar las últimas versiones de los componentes antes mencionados.

lnstalación

La instalación es sumamente sencilla y no requiere de grandes conocimientos, ya que es un simple instalador al igual que cualquier otra aplicación de Windows.

Algo destacable que tiene el FoxServ es que se instalarán todos los componentes en un solo directorio, como por ejemplo c:\foxserv y allí dentro estarán los directorios de cada paquete (apache, php, mysql, entre otros).

Casi al finalizar la instalación se debe proporcionar un nombre de usuario y contraseña que utilizaremos en el MySQL, de lo contrario no se podrá continuar la instalación.

En la última pantalla de la instalación nos permitirá seleccionar la opción de ejecutar el Apache y dirigir el navegador a http://localhost y ver si se ha instalado todo correctamente.

Figura 1. FoxServ Instalado correctamente

Si el navegador muestra una página como la de la Figura 1 quiere decir que se ha instalado todo en forma correcta.

Dentro del directorio c:\foxserv encontrarán las carpetas correspondientes al Apache, Php y MySQL, y podrán observar la carpeta www en donde deberemos insertar los archivos de las páginas. También es posible crear subdirectorios y administrar varios sitios, para ellos creamos dentro de www una nueva carpeta con el nombre del sitio: www/webexperto, de esta manera podemos acceder a ese sitio tipeando http://localhost/webexperto en el navegador.

Para administrar las bases de datos MySQL deben dirigirse a http://localhost/phpMyAdmin, de esta forma estarán administrando las distintas bases de datos en forma Online y desde la Web.

Esto fueron los sencillos pasos de una instalación que no toma más de 5 minutos. Ya estamos listos para comenzar a programar en PHP bajo Windows.

En los próximos artículos veremos cómo instalar Php-Nuke bajo Windows, y además aprenderemos a utilizar y administrar MySQL con el PhpMyAdmin.


Follow

Get every new post delivered to your Inbox.