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, loguearnos, acceder a My services y luego 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 (para acceder a esto en cualquier SO Windows ir a inicio -> ejecutar -> y tipear wf.msc . Luego allí 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

26 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

DD dijo...

hola daniel

estoy tratando de ver como hago un servidor con un pc de casa. Por lo visto esto te hace que un pc casero pueda generar un sitio web en tu dormitorio...

lo que yo necesito es que pueda funcionar:
+ html
+ vbscript
+ javascript
+ perl
+ cgi-bin
+ php
+ controles activex (para excel)
+ servidor de correo

¿todo esto te lo permite el XAMPP?
¿XAMPP es de pago o gratis?

si XAMPP no los tiene, ¿conoces de algun servidor en internet que tenga gratis estos elementos?

No sé nada de XAMPP...

Si funcionara XAMPP en tu casa, ¿hasta cuanta gente se podría aceptar como visitas simultaneas sin caerse el servidor?

Daniel SL dijo...

Xampp soporta todas las tecnologías que mencionás y es gratuito. La concurrencia (cantidad de clientes que pueden conectarse simultáneamente al servidor) puede configurarse a través del archivo de configuración del servidor apache (que trae XAMPP) y depende más que nada de la capacidad y memoria del servidor, como también de la conexión que disponés. Las variables a configurar son ServerLimit y MaxClients. Si no me equivoco los valores por default para ambos son 1024 clientes.

jhon dijo...
Este comentario ha sido eliminado por un administrador del blog.
jhon dijo...
Este comentario ha sido eliminado por un administrador del blog.
Daniel SL dijo...
Este comentario ha sido eliminado por el autor.
Anónimo dijo...
Este comentario ha sido eliminado por un administrador del blog.
Vampiroelfico17 dijo...

Hola amigo muy útil... la pregunta sería haciendo esto puedo subir mi página con dominio ".com" desde mi propia computadora?
Y si es posible cuantas páginas podemos alojar?

Daniel SL dijo...

Sí podés subir tu dominio .com y si es que tenés ip dinámica podés direccionar las que te permita el software y la cuenta de dyn-dns o noip que tengas.

CaitO Ledesma dijo...

disculpa te hago una consulta, tengo ip estatica y no me habilitan los puertos desde la central (proveedor de internet) me podrias decir como hago? o podrias hacer un tuto para los que tienen ip estatica! por favor!

Daniel SL dijo...

Sí, en si lo que tenés que hacer es direccionar el puerto 80 a tu pc. Para hacerlo tenes que acceder al modem/router y dirigir este puerto a tu ip de red... Es probable que tu isp no te haya dado la contraseña del modem, pero podes conectar el mismo a un router, y acceder de la manera que explico en el post para abrir el puerto http (80).

TOM666 dijo...

Gracias Daniel...muy bien explicado y muy clarito todo.Tengo algún problemilla,pero te envío un e-mail a tu personal porque te adjunto capturas de pantalla,si te aprece bien.Gracias y un saludo.

Daniel SL dijo...

Gracias por el feedback, ya respondí tu mail y tuve en cuenta tus consultas para completar esta publicación. Saludos!!!

Anónimo dijo...

jordan outlet online
I categorically like your website, I can a you possession remaining a friend jordan retro
? Looking rash to your take in my website browsejordan retro

Anónimo dijo...

[url=http://wholesalenfljerseysv.webs.com/]wholesale nfl jerseys[/url] [url=http://wholesalenfljerseysv.webs.com/]wholesale nfl jerseys[/url] http://wholesalenfljerseysv.webs.com/ I love this purse, this is just the main one I need!

Couldn't believe how quickly a person shipped this particular! Excellent item. Thanks!!!

I had been happy with my personal order as well as every thing came right on period, many thanks!

Extremely vendor with high quality, great support and conversation. Extremely fast delivery, exactly as explained and described, great product, happy!

Sara de Bono Photographer dijo...

Hola, me gustaría hacer una consulta. He buscado información en Internet y cambia tanto la información de un lugar a otro que ya voy perdida.
He creado una web de wordpress en local con Xampp, porque el dominio fue comprado en 1&1 pero no se compró hosting. Se que ella tiene hosting en otro dominio que compró en su día, pero para no dar más vueltas lo hice con Xampp.¿Puedo subirlo entonces tranquilamente con Xampp?¿Tendré problemas cuando se lo pase al ordenador de la dueña? Saludos y muchas gracias de antemano.

Anónimo dijo...

Hola, muchas gracias por tus información...seguí los pasos aunque lo del dominio gratis ya no funciona, aunque no me es muy indispensable en este momento. Lo que me fallo es que cuando quiero entrar a la IP pública me pide los datos de usuario y contraseña del router y veo la página de configuración de este. Como veo la página de xammp?
muchas gracias

Anónimo dijo...

Muchas gracias.... Di muchas vueltas hasta poder habilitar el puerto 80 en el firewall....
saludos

Anónimo dijo...

Hello, I think yοur wеbsite might be having browser сompаtibility isѕues.
When I look аt youг blog in Ϲhromе, it looks fine
but when opening іn Internet Explorer, іt has some overlapping.
I јust ωanted to giνe you a quick heads up!
Other then that, аmazing blog!

Feel free to visit my ωeb sitе ... Americas Cardroom Pοker
Bonus **

CaitO Ledesma dijo...

Hola Daniel, despues de tanto tiempooo pude hacerlo, el problema era que mi proveedor de internet no abria los puertos por cuestiones de seguridad ¬¬... ahora tengo speedy y naturalmente pude hacerlo siguiendo tus pasos... lo cual TE AGRADEZCO MUCHO MUCHO!!!
El problema ahora es que no quiero tener el firewall desactivado por razones de seguridad interna :D...
Hay alguna solución a este innconveniente??
Un cordial abrazo!

Daniel SL dijo...

Me alegro q se haya arreglado tu problema, en cuanto a seguridad podés no direccionar el router o podes eliminar la regla de entrada q agregaste en windows (puerto 80) con eso ya no hay acceso a través de ese puerto a tu pc.

jesus ramoni dijo...

Amigo bendito seas, tengo años queriendo tener mi servidor en casa y hacerlo público pero siempre me encontraba con un problema en configuraciones tediosas. Es una maravilla que funcione gracias por el tutorial (todo funcionó a la primera). Yo estoy usando XAMPP con windows XPsp3 y router linksys para ip dinamica www.no-ip.com y me dieron un subdominio gratuito con un software para mantener actualizado el ip constantemente, es una maravilla de verdad 1.000.000 de gracias. Exitos

Daniel SL dijo...

Jesús, me alegro mucho que este tutorial te haya sido util. Un abrazo!! Dani