Links / Enlaces Simbólicos en Windows

El manejo de enlaces simbólicos, es una de las cosas que más extraño de Linux cuando trabajo en Windows. ¿Por qué? Imaginen que tienen una carpeta donde están todos sus proyectos incluyendo los web. Instalan IIS con el soporte PHP. Para poder desarrollar en el ambiente de desarrollo y probar en el servidor, se tiene que hacer un script para que copie cada vez que modificamos una página php, desde nuestro ambiente de desarrollo al directorio del servidor o bien se tiene que configurar el servidor para que su directorio web sea el del ambiente de desarrollo.

¿No sería más fácil, pregunto yo, si los dos directorios fueran el mismo? Esa es la magia de los enlaces simbólicos. Son como los shortcuts con la diferencia que son transparentes para las aplicaciones.

En Windows Vista se corre el siguiente comando en el directorio en donde se quiere colocar el enlace: mklink /d nombreenlace rutadirectoriodestino

Eso crea el enlace. Para eliminarlo se borra como cualquier archivo. Si se quiere hace un enlace a un archivo basta con omitir la opción /d.

En Windows XP no se incluye un comando para ello. Se debe instalar un plugin para el explorador o descargar un programa para usar en la línea de comandos. El que he probado se llama NTFS Links: http://alax.info/blog/ntfslinks

Basta con instalarlo. Para usarlo se debe copiar el directorio destino en donde se quiera crear el enlace. Aparece una pregunta que si se quiere crear un enlace en lugar de copiar y listo.



Aquí la referencia a otro programa que se comporta de la misma manera:

http://elsdoerfer.name/=ntfslink

Hasta la próxima...

Nota: Si esta información te es de utilidad o piensas que se puede mejorar, por favor deja un comentario con tus observaciones.

Librerías nativas Tomcat 5.5 y 6.0

A partir de la versión 5.5, Tomcat puede trabajar con librerías nativas para las peticiones web, las descargas y también la parte https. En ves de usar todo eso en Java, se utiliza algo llamado APR (Apache Portable Runtime) para procesar los requests y OpenSSL para todo lo que es conexiones seguras y certificados. Eso tiene como beneficio un aumento considerable en rendimiento. JBoss a partir de la versión 4.2 también aprovecha éstas características ya que incluye un tomcat modificado llamado JBossWeb basado en tomcat 5.5 o 6.0 no estoy seguro.

Lamentablemente esta característica no viene incorporada y hay que hacer unos pasos adicionales para que funcione.

Windows: Hay que descargar la dll tcnative-1.dll y el ejecutable openssl.exe y ponerlos donde tomcat los pueda conseguir. Por ejemplo c:\windows\system32. Se baja de aquí: http://tomcat.heanet.ie/native/1.1.10/binaries/win32/

Linux: Un poquito más complicado hay que bajarse los fuentes y compilar la librería. Sólo tengo disponibles las instrucciones para openSuse 10 que es con lo que trabajo. Se hace lo siguiente:
  1. Se busca en YaST en la lista de paquetes por apr y se marca el que termina en -devel. Es algo como libapr-devel
  2. Se hace lo mismo para el paquete openssl-devel.
  3. El archivo instalaciondetomcat/bin/tomcat-native.tar.gz expande en cualquier directorio.
  4. Entrar en tomcat-native-1.1.10-src/jni/native y correr el comando conocido: ./configure --with-apr=/usr/bin/apr-1-config --with-java-home=rutaaljdk5 como un usuario normal.
  5. Correr make como un usuario normal.
  6. Correr make install como root.
  7. Esto instala las librerías en /usr/local/apr/lib
  8. Sólo queda actualizar la variable de ambiente LD_LIBRARY_PATH:
    export LD_LIBRARY_PATH
    =$LD_LIBRARY_PATH:/usr/local/apr/lib
    colocar esta línea en el archivo .profile o afines.
Al arrancar tomcat sabemos que está usando las librerías nativas porque dice:

[Http11AprProtocol] Arrancando Coyote HTTP/1.1 en puerto http-127.0.0.1-8080

Para configurar la parte https hay que crear unos certificados con openSSL como lo haríamos con un servidor Apache y colocarlos en la definición del conector en el archivo server.xml. Esta última parte está super bien explicada en: http://tomcat.apache.org/tomcat-5.5-doc/apr.html

Hasta la próxima...

Nota: Si esta información te es de utilidad o piensas que se puede mejorar, por favor deja un comentario con tus observaciones.

Búsqueda

CodeWeavers