Armando nuestro servidor web casero

Por que quisiera alguien tener un servidor web en su casa, o que su PC se comporte como un servidor web, habiendo tantos servicios en linea gratuitos o muy economicos? Los motivos pueden ser muchisimos, me gustaria destacarles algunos que considero mas importantes:

  • quiere aprender, explorar, capacitarse, etc…
  • quiere tener total control sobre sus sitios web, definiendo medidas de seguridad especificas, probando herramientas particulares, viendo que sucede si…
  • se dedica al desarrollo de aplicaciones web, o de paginas web, o al diseño grafico

El ultimo punto me parece importante para destacar. Muchos programadores o diseñadores poseen servicios de hosting pagos, en los cuales alojan un sitio web personal y donde tambien realizan pruebas de su trabajo. Para ello, trabajan en su PC de manera local, y cuando quieren ver como se comportan las paginas en el servidor las suben y verifican esto. El problema se agrava bastante cuando existen lenguajes de programacion en el medio, al estilo PHP, Perl o Java, donde no se pueden realizar pruebas de manera tan sencilla a menos que se cuente con un interprete de estos lenguajes. Para solucionar este problema, el diseñador o programador puede o bien trabajar de manera totalmente local y luego subir muchos archivos al servidor y verificar alli su funcionamiento, o instalarse un servidor web en su PC y trabajar siempre de manera local, evitando el constante movimiento de archivos mediante ftp, ssh, smb o el mecanismo que utilicen.

Afortunadamente, hoy en dia es muy facil instalar y configurar un servidor web con soporte para PHP y un servidor de bases de datos (MySQL). Existen varias herramientas que nos hacen la tarea terriblemente sencilla, como ya les conte en un post anterior (les dejo aqui el link por si quieren revisarlo); resumiendo, la idea es bien sencilla: instalamos un programa que funciona como servidor web (recordemos que un servidor no es mas que un programa que se ejecuta en background), llamado Apache, y un programa que se encarga de ejecutar scripts escritos en PHP. Para completarla, instalamos otro programa que funciona como servidor de bases de datos, llamado MySQL. Si lo desean, en el post que les comente se explica detalladamente que opciones hay y como se instala cada herramienta.

En Windows.

La idea es hacerla bien facil, para no perder tiempo configurando herramientas. Como les dije mas arriba, tenemos que instalar Apache, PHP y MySQL, todo junto. Para eso, tenemos un paquete que se llama xampp, y que pueden descargar desde aqui. Si lo van a descargar, busquen el archivo titulado Installer, ya que ese les va a evitar la mayoria de los problemas.

Una vez que lo descargaron, le dan doble clic y siguen los pasos que aparecen en pantalla. Al finalizar, tendran un servidor web instalado como servicio, con el interprete de PHP y con un servidor MySQL tambien como un servicio, con lo cual no tendran que preocuparse por el incio y/o parada de los mismos.

En Linux.

Si usan ubuntu, simplemente escriban el comando  sudo apt-get install apache2 php5 mysql-server y ya esta. En Mandriva, es lo mismo pero reemplazan la parte de sudo apt-get install por urpmi (ojo, tienen que estar con permisos de root). En Opensuse, la misma idea pero como yast2 -i … y asi con el resto.

Tambien tienen un instalador de XAMPP para Linux (aqui llamado LAMPP), con lo cual si lo quieren, pueden usarlo.

¿Y ahora que?

Primero, hay que ver si todo anduvo. Si tenemos un firewall, hay que asegurarnos que permita el paso por el puerto 80 (apache) y por el puerto 3306 (mysql). El de Windows se da cuenta y pregunta si queremos abrirlo… En linux, depende del firewall que estemos usando (con iptables es muy facil!).

Suponiendo que nuestro firewall no esta interfiriendo (a lo sumo lo cerramos un minuto para asegurarnos que no moleste), abrimos un navegador web y escribimos: http://localhost

Si vemos una pagina que dice algo asi como It works! entonces estamos bien. Si usaron XAMPP, pueden ver si les anda el php y el mysql de manera muy facil: escriben http://localhost/phpmyadmin . El PHPMyAdmin se instala por defecto, y les sirve para administrar bases de datos MySQL. Es muy util y completo, lo recomiendo 100%.

Si llegaron hasta aquí, es porque van bien. Ahora, la pregunta del millón: ¿cómo hago para agregar mis propias páginas?

Todo servidor web tiene un DocumentRoot, o sea un directorio que es visible desde la web. Esto quiere decir que cuando alguien escriba http://www.miservidor.com (en nuestro caso, simplemente localhost), el servidor web (Apache aquí) irá a buscar las páginas a ese directorio. Podemos cambiarlo, podemos agregar otros, podemos poner archivos fuera del document root… Eso lo veremos en otro post, aquí nos limitaremos a usar el que ya tenemos.

Por lo general, estos son los directorios usados por defecto como DocumentRoot:

  • En Windows, c:\Archivos de Programa\Apache Group\Apache\htdocs
  • En Linux, /var/www

Por ejemplo, supongamos que yo quiero poner un blog en mi servidor. Entonces, me bajo el wordpress y lo descomprimo en una carpeta llamada miblog dentro de mi DocumentRoot.  Ahora, para acceder al blog, escribimos http://localhost/miblog y listo, estaremos en el blog que acabamos de crear (ojo, habra que instalarlo la primera vez).

Con esto, ya tenemos basante. Nos quedan un par de temas, que los dejo para otro post (como configurar el apache para que haga determinadas cosas, como agregar document roots y aliases, un poco de seguridad simple, incluso podriamos hablar de integracion de nuestro trabajo local con un equipo de desarrollo mediante Subversion/SVN). Paso a paso….

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: