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


Dec 30 2008

JavaScript como lenguaje del lado del servidor

Nick

Por si no tuviéramos suficiente con tanto lenguaje del lado del servidor: PHP, PERL, Ruby, Phyton. Leo en Barrapunto que se ha publicado una prueba de concepto sobre como utilizar javascript como lenguaje en el lado del servidor.

En concreto se trata de un modulo de Apache que implementa el motor V8 de javascript, el mismo que usa Google Chrome y que en pruebas recientes a mostrado ser el mas eficiente.

La idea de usar javascript como lenguaje del lado del servidor no es nueva, de hecho ya hay muchas implementaciones de diferentes motores de javascript que lo hacen. Pero como V8 es de Google, ya se sabe, siempre que genera revuelo.

Enlace: Paul’s Journal | Ví­a: Barrapunto