Jan 15 2010

APACHE :: Configurar Virtual hosts

Nick

Apache es un servidor web HTTP de código abierto multiplataforma que implementa el protocolo HTTP/1.11 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en el código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation.

Y poco más se puede escribir, que no se sepa ya o que no se pueda consultar con mejor detalle en la wikipedia o en su página oficial, sin que esto parezca una entrada enciclopédica. :-)

Pasemos al tema central de esta entrada ¿Cómo configurar distintos sitios en una misma máquina? Pero, primero veamos que es un virtual host.

Virtual hosts

El término virtual host se refiere a la práctica de ejecutar más de un sitio web en una sola máquina. Los virtual hosts pueden ser ‘basados en IP’, tienes una dirección IP diferente para cada sitio web, o ‘basados en nombre’, tienes varios nombres ejecutándose en una  sola dirección IP. El hecho de que se están ejecutando en el mismo servidor físico no es evidente para el usuario final.

Problema

Tenemos nuestro localhost predeterminado: http://localhost/ y vamos a iniciar unos cuantos proyectos para los cuales necesitamos sus respectivos sitios separados del localhost.

En este momento tenemos algo como esto:

Dirección IP Dominio Document root
127.0.0.1 http://localhost/ /var/www/

Y nosotros queremos algo como esto:

Dirección IP Dominio Document root
127.0.0.1 http://localhost/ /var/www/
127.0.0.1 http://symfony.local/ /home/alejandro/workspace/symfony/tutorial/
127.0.0.1 http://cakephp.local/ /home/alejandro/workspace/cakephp/tutorial/

Es decir, necesitamos que tres diferentes sitios (http://localhost/, http://symfony.local/ y http://cakephp.local/) estén alojados en la misma computadora, en este caso en local (127.0.0.1). De esta forma al teclear la dirección: http://localhost/, se nos mostrará el contenido de la carpeta /var/www/ y de manera análoga ocurrirá lo mismo con las demás direcciones configuradas.

Qué ventajas tiene esto, básicamente poder separar las configuraciones de Apache para cada sitio, es más estructurado, se pueden implementar las configuraciones que se tendrán en el servidor de producción (configuraciones, URL, etc.), seguridad, etc.

Solución

En el archivo /etc/hosts agregamos las siguientes líneas:

127.0.0.1 symfony.local
127.0.0.1 cakephp.local

En el archivo /etc/apache2/ports.conf eliminamos la línea.

NameVirtualHost *:80

En el archivo /etc/apache2/sites-available/default colocamos la siguiente línea al inicio del archivo.

NameVirtualHost 127.0.0.1:80

Al final de dicho archivo agregamos la configuración para los sitios http://symfony.local y http://cakephp.local.

#Symfony
<virtualhost 127.0.0.1:80>
	ServerName symfony.local
        DocumentRoot /home/alejandro/workspace/symfony/tutorial/
</virtualhost>
 
#CakePHP
<virtualhost 127.0.0.1:80>
	ServerName cakephp.local
        DocumentRoot /home/alejandro/workspace/cakephp/tutorial/
</virtualhost>

Finalmente, reiniciamos el servidor.

# /etc/init.d/apache2 restart

Nota: Solo se incluyeron los parámetros necesarios para hacer funcionar los virtual hosts.

Para saber más


May 16 2009

Wolfram|Alpha :: La ficción se vuelve realidad

Nick

Wolfram|Alpha computational knowledge engine

Originalmente, el título de este post sería Donde la Web se vuelve semántica. ó Se le vino la noche a Google. Sin embargo, analizando el funcionamiento de este answer engine me doy cuenta que el presente título es más adecuado.

Anteriormente, ya habíamos hablado de Wolfram|Alpha en el blog y nos planteamos la posibilidad de que en un futuro ocupara la posición que hoy le pertenece a Google. El día de hoy, al revisar mis feeds caí en la cuenta de que Wolfram|Alpha ya estaba abierto al publico en general y ni tardo ni perezoso fui a jugar un rato con él para ver sus funcionalidades. Algunas preguntas que le hice:

¿Por que Wolfram|Alpha no ocupara el lugar de Google? Porque Wolfram|Alpha es un answer engine y Google es un search engine. La diferencia entre ellos es (vía ALT1040):

Search engine

Cuando se trata de buscar conocimiento en Internet se hace una búsqueda [...] en todos los casos los resultados son una serie de páginas web, algunas relevantes, otras no tanto, donde probablemente viene la información que buscamos.

Este modelo de resultados falla, al buscar respuestas exactas esperas encontrar justamente eso, porque los buscadores ofrecen referencias a lugares donde tal vez encuentres la información, pero son resultados inexactos, con información desordenada y muchas veces incorrecta.

Answer engine

Ofrece respuestas exactas a preguntas muy concretas hechas por medio de lenguaje natural, inmediatamente obtenemos datos objetivos como respuesta.

Actualmente, Wolfram|Alpha proporciona respuestas con base en el análisis de unas bases de datos propias, hechas con este propósito. No creo que podamos llamar a esto parte de la Web semántica. Sin embargo, en un futuro, cuando los algoritmos se perfeccionen y se decida usar toda la Web para buscar las respuestas creo que Wolfram|Alpha será un gran potenciador de la Web semántica, todo mundo querrá tener una buena estructura lógica en sus páginas para permitir su indexación y tener la oportunidad de ser parte de la respuesta.

Finalmente, no puede faltar la búsqueda de las grandes incógnitas de la Humanidad. ;-)

how_to_solve_it

Bonus:Podemos ver unos cuantos screencast en los que Stephen Wolfram nos muestra el uso de Wolfram|Alpha: A sneak preview of Wolfram|Alpha e Introduction to Wolfram|Alpha. Ademas la sección de ejemplos en el sitio oficial nos enseña como hacer preguntas a esta maravilla.


Apr 11 2009

Ocurrió un 11 de Abril del 2008

mopet

un llamado

Esta es una atenta invitación personal para formar una especie de comunidad (así lo llamaré por ahora) de sistemas en el Instituto Tecnológico de Celaya con el único fin de integrarnos como personas. como estudiantes y como futuros profesionistas.

El movimiento se tiene pensado iniciar con un blog, en el que al principio sean solo pocos los que colaboren, por poner un ejemplo 5 personas, las cuales, podrán publicar sobre cualquier cosa, tomando en cuenta que es una comunidad orientada al mundo informático y que la mayoría de los temas serán enfocados en esta materia, aunque cada quien es libre de publicar lo que quiera, siempre y cuando sea responsable, respetuoso y tenga conciencia de lo que hace.

Las cinco personas tendrán la facultad de invitar a nuevas personas para formar parte de la misma, quienes tendrán la misma labor, cooperar publicando, ayudando, informando sobre aspectos importantes.

Así la comunidad crecerá, y de ninguna manera estará cerrada para los demás, si no es solo una táctica de control sobre quienes están al frente de la misma y tienen la capacidad de llevar a cabo su labor.

Cualquier alumno de informática o sistemas podrá formar parte, ya sea de manera activa o pasiva, también comentando sobre las publicaciones que los de la comunidad hagan. Corrigiendo si es necesario y se tomará en cuenta si el alumno activo tiene las facultades de pertenecer de manera oficial.

No se pretende sustituir a la asociación de sistemas, si no ser un movimiento alternativo y mucho mas enfocado al aspecto educativo en materia de informática, en la que cualquiera pueda pertenecer a él sin tener limite de integrantes.

Ustedes han sido las cinco personas principales a quien he considerado como los primeros integrantes por sus facultades de responsabilidad, empeño y dedicación, quienes al confirmarme si desean pertenecer a lo que hasta ahora he llamado comunidad, les otorgare una cuenta para acceder a este blog que por el momento estará en el dominio de inocorp.org pero que al formarla de manera oficial compraremos un dominio propio.

Espero sea de su interés pertenecer a este movimiento que considero necesario en nuestro instituto, confirmen su respuesta lo mas rápido posible para enfocarnos a aspectos mas específicos y claro se aceptan ideas que hagan de esto que estamos formando algo mejor.

Algunos aspectos a determinar son:

  • Nombre de la comunidad o movimiento que se pretende
  • Logo del mismo
  • Número de invitaciones a los que los primeros integrantes tendrán derecho (arriba cite 5, pero puede disminuir, ya que si lo aumentamos, tenderá a crecer desmesuradamente y se perderá el enfoque)
  • Es posible que maestros formen parte de la misma (creo que será de mucha ayuda)
  • Ideas propias de los integrantes para mejorar este movimiento.

Bien, pues espero su respuesta, se despide su compañero Jorge Luis Hdz.


Mar 29 2009

JAVA y la Web 2.0

legend23

Que hay comunidad de Ihtoa; cuando tomé la clase de Planificación y Modelado, el Dr. Mosivais mostró a toda la clase una gráfica en la que comparaba el crecimiento de Java, más concretamente Java EE (Struts), como lenguaje para el desarrollo de páginas web y el decremento de PHP, le comenté al Lesthack que la gráfica estaba mal, que iba al revés; en ese entonces no le tomé mucha importancia, pero me quedó la duda de si era cierto o no, por lo que buscando en la red, encontré un artículo escrito por ingenierios de IBM, en donde intentan explicar y apoyar la teoría de por qué hay pocos sitios web grandes escritos en java.

El artículo detalla el concepto de la web 2.0 y el por qué Java no tiene ese auge que tiene PHP; uno de los problemas principales es por el hecho de que Java utiliza API’s síncronas que hacen que las latencias sean inaceptables para el usuario, además soluciones como PHP , disponen del modelo de ejecución “share nothing” propio del servidor Apache, con lo que no hay compartición de datos entre las peticiones, ofreciendo un modelo de ejecución “asíncrono”, lo cual ha permitido la proliferación de aplicaciones Web 2.0 en esta tecnología. Esta vez PHP se ha adelantado y ha pegado primero.

Lo siento Dr. Mosivais, pero como le dije a Lesthack, la gráfica mostrada si esta mal.

Les dejo el enlace: Java EE meets Web 2.0

Hasta Luego.