Configurar nuestra computadora como servidor web con ubuntu
Normalmente el enfoque de la web and beer esta orientado a personas que ya tienen un cierto nivel y pueden hacer estas cosas con los ojos cerrados y varios whisky’s encima, pero estamos haciendo un esfuerzo por captar nuevos miembros, aunque estos tengan un nivel muy basico.
La idea es clara, que todos podamos aprender.
En esta ocacion vamos a configurar nuestra computadora con Ubuntu para que pueda ser un servidor web y gestionar los distintos proyectos que podamos tener.
Esto va a ser una explicacion muy orientada a la practica, esto quiere decir que no profundizaremos mucho en ciertos temas y cuestiones, para ellos por favor buscar en otras fuentes, o quizas en alguno de nuestros post (seguro algo de informacion existe).
Para poder seguir este tutorial, por favor contar con una computadora con Ubuntu instalado.
Primero que nada, vamos a instalar Apache, PHP y MySQL. Esa combinacion de software es la mas tipica, y es conocida como entorno LAMP (Linux, Apache, MySQL y PHP).
Primero instalamos Apache:
sudo apt-get install apache2.2-common
El que no sepa que hace apt-get por favor ni se moleste en seguir con este tutorial!. Bueno bueno, es el manejar de paquetes, los paquetes son “cosas” como programas, librerias, etc. Ejecutando ese comando instalara apache 2.2 mas todas las dependencias (cosas que necesita para poder funcionar).
Una vez instalado apache instalamos PHP.
sudo apt-get install php5 php5-cli php5-common php5-curl php5-gd libapache2-mod-php5filter
Con eso deberia ser suficiente para nosotros, ojo, no intalamos aun el soporte a mysql, hay razones para esto que aprenderan con el tiempo y la experiencia ganada.
Ahora vamos a instalar MySQL.
sudo apt-get install mysql-server-5.1 mysql-client-5.1
Eso nos instalara el server y client (el programa para poder acceder a mysql).
Muy bien, ya tenemos todo entonces verdad? apache, mysql y php, pero ahora vamos por el detalle, la lib de acceso a mysql para php.
sudo apt-get install php5-mysql
Con eso ya tenemos todo listo para comenzar.
Ahora bien, primero vamos a aprender a iniciar, parar y reiniciar nuestro apache (es un proceso en memoria, se lo conocemo como daemon, hay muchos daemon en nuestro ubuntu).
Los daemons o programas que estan “a la escucha” en Ubuntu son manejados por un comento que casi siempre estan en:
/etc/init.d/<algo a manejar>
Por ejemplo, para iniciar apache escribimos
/etc/init.d/apache2 start
Para detener apache
/etc/init.d/apache2 stop
Para reiniciar (por ejemplo porque cambiamos algo de la configuracion de apache o PHP).
/etc/init.d/apache2 restart
Ahora bien, vamos a ver si todo esta funcionando correctamente.
Abrimos nuestro navegador (espero que sea un chrome a estas alturas por favor) y escribimos http://127.0.0.1
Deberia salir un mensaje de “It works” o algo asi, depende de lo que les pinto en ese momento a los de apache.
Que es “127.0.0.1″ ? es la direccion ip de lookup, es decir, la direccion ip de nuestro “localhost”, nuestra computadora se refencia asi misma con esa direccion ip, en todas las computadoras del universo casi siempre es asi, siempre que hagamos ping a 127.0.0.1 estamos haciendonos un ping a nosotros mismos.
Ok, ahora vamos a plantear un escenario comun, imaginemos que queremos trabajar en 2 proyectos diferentes, uno se llama “los simpsons” y el otro “dale gas”. Como hacemos para tener bien separados estos proyectos? Vamos a la solucion.
Primero que nada, entendamos que apache es un servidor web, cada servidor web puede gestionar varias paginas web, cada pagina web tecnicamente es conocida como “virtual host”.
Un virtual host es una declaracion en la configuracion de apache donde basicamente le decimos que si alguien escribe en su navegador “lossimpsons.com” debe leer los archivos del directorio que le indiquemos, como asi tambien si escriben “dalegas.com”.
Los virtuals hots en apache dentro de ubuntu se encuentran en el directorio
/etc/apache2/sites-enabled/
Asi que vamos a crear un virtual host.
sudo gedit /etc/apache2/sites-enabled/lossimpsons
Se nos abre un editor de texto, asi que vamos a escribir este contenido en su interior
<VirtualHost *:80> ServerName lossimpsons.com DocumentRoot /var/www/lossimpsons.com/public_html </VirtualHost>
Guardamos el archivo y cerramos el editor.
Ahora tenemos que reiniciar apache (ya dije como se hace).
Pero claro, lossimpsons.com no estan resolviendo a la direccion de internet que tengamos en ese momento, entonces como podemos hacer para probarlos?
En los sistemas operativos existe un archivo conocido como “archivo hosts” donde se pueden redefinir ciertas reglas a la hora de resolver un dominio a una direccion ip, y con estas reglas podemos forzar que un dominio tenga la direccion ip que nosotros querramos (obviamente esto solo afectara a nuestra computadora).
Para editar nuestro archivo hosts ejecutamos:
sudo gedit /etc/hosts
En mi caso, el archivo hosts de mi computadora se ve asi:
192.168.0.109 lortmorris-laptop # Added by NetworkManager 127.0.0.1 localhost.localdomain localhost ::1 lortmorris-laptop localhost6.localdomain6 localhost6 127.0.1.1 lortmorris-laptop 127.0.0.1 lossimpsons.com
Como veran, en la ultima linea agregue que la ip 127.0.0.1 es para el dominio “lossimpsons.com”.
Esto hara que cuando hagamos ping a lossimpsons.com la direccion ip devuelta sea “127.0.0.1″.
Ponemos en nuestro navegador entonces “lossimpsons.com” y vemos que pasa.
Si nos da error, es simplemente poque no hemos creado el document root de ese virtual host, el document root es el directorio en el cual estara nuestro sitio web (virtual host), por lo que vamos a crearlo.
mkdir /var/www/lossimpsons.com mkdir /var/www/lossimpsons.com/public_html
Ahora vamos a meter un archivo ahi adentro para saber que todo funciona bien
echo "<?php phpinfo(); ?>" > /var/www/lossimpsons.com/public_html/index.php
Ahora volvemos a nuestro navegador y vemos que pasa.
Si todo sale bien deberian ver una pagina web con informacion muy “rara” sobre php, apache, etc. Eso quiere decir que todo quedo bien.
Les comento para los que no se dieron cuenta, que en el comando anterior (echo …) generamos un archivo.php donde en su interior hay una funcion llamada php_info.
Lo que deberia ver es algo como esto
Bueno, de la misma forma que generamos el primer virtual hosts, podemos generar todos los que queramos.
Cualquier duda o comentario dejarlo en este blog



Recent Comments