martes 10 de mayo de 2011

¿Cómo configurar un servidor web en casa?


En este nuevo post paso a explicarles en pocos pasos como instalar un servidor web casero, para hacer hosting en nuestra propia pc de páginas html, servidores php, perl, flash media server, java, o la aplicación capa servidor que deseemos, y así mantener nuestra propia base de datos para nuestras aplicaciones cliente y mantener nuestra propia base de datos MySql.

Para esto el único requisito es tener encendida y conectada a Internet una PC que no necesita ser potente para nada, se puede usar tranquilamente una pc con 512 MB de ram por dar un ejemplo, no existe ese tipo de requisitos físicos. Desde ya, si nuestra web tiene un gran tráfico, ahí es cuando los requisitos del server, y la velocidad de conexión a internet entran en juego. Por el momento, para comenzar a desarrollar y aprender no hay que preocuparse, para esto no hay nada mejor que manejar nuestro server en nuestra propia pc… 

1 – Instalación del servidor Web.

El primer paso es la instalación del servidor web, y para eso recomiendo instalar el xampp, un paquete extremadamente liviano para cualquier sistema operativo y que trae incluido Apache, Php, MySql y Perl. Este funciona de maravilla, y nos evita mil problemas y configuraciones que tendríamos que hacer si instalamos cada uno de estos por separado.

Allí le dan al link dependiendo de su SO. Por ejemplo, en mi caso: “Xampp para Windows”
Y luego van al siguiente link, para ya comenzar la descarga:

Descarga Xampp

Una vez hecho esto ya podemos probarlo ingresando al navegador web, y como dirección para navegar escribimos 127.0.0.1. Si aparece una pantalla como la siguiente:


Inicio Xampp

El server está configurado y corriendo para un ambiente local (localhost), esto ya puede ser de utilidad por ejemplo como entorno de testing o prueba en nuestra pc. De acá en más la configuración es para la visibilidad de nuestro servidor hacia el exterior, o sea que este pueda ser accedido desde afuera, desde nuestra página web o nuestra aplicación fuera de nuestra pc.

2 – Configuración del router

En el caso de tener una sóla pc conectada al modem (no tener router en el medio) saltear el paso 2.

Para su configuración tenemos que saber el número de ip del router, y el número de ip de nuestra pc, y para esto entramos a: Inicio -> ejecutar -> cmd

En la consola tipeamos ipconfig, y tomamos nota del campo direccion ip y de puerta de enlace predeterminada.

El de puerta de enlace predeterminada es el de nuestro router. Para acceder a este vamos a nuestro navegador web y como dirección para navegador escribimos el número de ip tal cual nos apareció en la consola, al hacerlo nos aparecerá una pantalla de login al router.

Allí tipearemos el password que le hemos asignado al router, si es que nunca has modificado la configuración del router conviene buscar por la web la configuración estándar de éste... Para muchos de los router linksys, por default el campo de usuario es vacío y el password es: admin. Si es que no lo saben o tienen otro modelo pueden buscar en google router linksys default password por ejemplo.

Una vez que nos logueamos e ingresamos a la pantalla de configuración vamos a una pestaña u opción de configuración similar a la siguiente:




En port forwarding, o reenvío de puertos, o alguna opción de nombre similar completamos con el puerto 80, y con la dirección ip obtuvimos en la consola en el campo direccion ip (que sería la de nuestra pc). Con esta configuración le decimos al router que cada vez que alguien de afuera quiera ingresar por la web a nuestro ip (que nos da el navegador web) la conexión sea direccionada a nuestra pc, la del servidor web.

Hacemos click en guardar parámetros, y ya tendríamos la segunda parte de la configuración realizada. Para comprobar que este paso ha sido correctamente realizado tendríamos que ingresar a: http://www.whatismyip.com/

Copiar el número que aparece allí y pegarlo como dirección en el navegador. Si nos aparece la pantalla de Inicio de Xampp, quiere decir que hasta ahora vamos perfecto.

3 – Nombre de dominio

Podríamos arreglarnos sólo con nuestro número de ip y cada vez que se quiera ingresar a nuestra página hacerlo por este número, pero resulta que esto es muy poco estético, y lo peor es que nuestro número en general cambia, o sea que nos sería imposible saber en determinados momentos cuál es el número que tiene asignado a cada momento nuestra conexión. 

Para esto y para ahorrarnos de todos los problemas y vivir tranquilo existe dyndns: http://www.dyndns.com/

Allí nos podemos crear una cuenta, darle a la opción Add Host Service. Completar una pantalla como la siguiente con el nombre de la web que queremos crear, eligiéndo del combo el dominio de los posibles y en IP Address escribimos la ip del server o le damos click a Your current location's IP address, que si estamos bajo la misma conexión del server es esa.


Hacemos click en Add to Cart, luego en Proceed to checkout, y por último Activate Services y listo. Ya tenemos el ip asociado al nombre que establecimos sin ningún costo. Si entramos a miweb.dyndns.org ya estamos yendo a la página principal de nuestro servidor con un único problema, si es que tenemos ip dinámica (casi todos tenemos) cada un determinado tiempo tu ip va a cambiar y el nombre seguirá asociado a tu ip anterior.

Esto se puede resolver de 2 maneras:

1) La primera y la que no haremos es desde la configuración del router (cosa que no recomiendo ya que mis experiencias anteriores con 2 routers distintos es que la actualización a veces falla y se te cae el servidor, un dolor de cabeza).

2) La segunda y la que realmente vale, es bajarse el dyndns updater, software gratuito que chequea la conexión periódicamente y actualiza la ip en cuanto ésta se modifique. Ademas este software iniciará con windows, así que ya se pueden desentender de la ip dinámica. Link de descarga: https://www.dyndns.com/support/clients/

Nota. Si todo te salió bien no la leas ;)


Puede que a pesar de haber seguido todos estos pasos, sólo puedas acceder a tu servidor mediante 'localhost' en el navegador pero no por el nombre de dominio que le pusiste en el dyndns, esto se debe a que el firewall puede estar bloqueando el puerto 80. Esto en Windows 7 se resuelve yendo a la siguiente ruta: 


Panel de control\Sistema y seguridad\Firewall de Windows, y ahi acceder a la opción Configuración avanzada. Vamos a regla de entrada ponemos nueva regla TCP puerto 80. Y marcamos la opción "Permitir la conexión" damos siguiente hasta finalizar, el nombre de la regla es indistinto. Luego haremos lo mismo en reglas de salida, y con eso ya tenemos el servidor desbloqueado ;)


Y eso es todo, es mucho más facil de lo que parece y en menos de 1 hora tendrás tu server up and running...

Si es que seguiste el proceso y te surgió alguna duda, o te parece que alguno de los pasos no está demasiado claro por favor comentame!! Si la nota te fue útil también y si te gusta mi blog también jaja :)


Saludos,
Daniel SL

4 comentarios:

ahinojos87 dijo...

oye yo tengo un problema, cambie el puerto al 8080 por en el 80 esta corriendo el IIS 7 ...pero no me quiere funcionar...sabes que sera?

Daniel SL dijo...

Cambiaste del 80 al 8080 y no anda? Proba accediendo a tu ip o direccion sumandole al final la determinacion del puerto ':8080' o sea por ejemplo localhost:8080. Si anda en localhost pero no a través de tu sitio web o ip, fijate en la configuración del router, chequeá la sección 2 de mi posteo. La guía que yo subí es para instalar y configurar servidores web Apache también podría serte util.

CaitO Ledesma dijo...

Hola, hace mucho que ando buscando un tutorial asi, me gusto porque lo explicas bastante bien, con fotos cuando son necesarias y bien proligo, paso a explicarte mi problema, yo tengo un router belkin F5D7234-4 v4, tengo el puerto 80 liberado como lo mostras, mi "supuesta" ip publica es 190.221.18.207 pero al momento que lo escribo en la url del navegador me marca problema al cargar la pagina, Firefox no puede establecer una conexión con el servidor en 190.221.18.207. y tambien probe poniendo la ip:8080 y ip:80!!! y siempre me pasa lo mismo, para serte sincero no puedo hostear una web no puedo hostear un Ao, ni un Cs nada :S.. nose que pasa el router tiene un par de meces pero no creo que sea eso :S...
te dejo mi msn por si me queres agregar algo_tuyo_12@hotmail.com
te agradeceria mucho una ayudita...
muchas gracias por tu tiempo...

Daniel SL dijo...

Muchas gracias por tu comentario y que bueno que te haya sido útil. En primer lugar lo que chequearía es intentando ingresar a localhost en el navegador. Y fijate de esa manera te accede al apache, xampp o servidor que tengas instalado. Si es así evidentemente el problema esta del lado del direccionamiento (o del router). Por lo que chequearia yo, la configuración del router o el paso 2 del tutorial que esté correctamente configurado a la ip local fijate en ipconfig en la consola cual es la direccion de red que tenes asignada en la pc en donde se encuentra el servidor. Si esto está bien configurado fijate de abrir los puertos en esta pc. Nos mantenemos en contacto... Saludos!!! Daniel SL