Instalación de un servidor web Apache en Ubuntu 12.04

En un post anterior vimos cómo instalar un servidor Apache en Fedora, hoy le toca el turno a Ubuntu. Además veremos algunas opciones más avanzadas de configuración del servidor, como la instalación del módulo para PHP o la habilitación, deshabilitación y redirección de VirtualHosts según nuestras necesidades. Para ello utilizaremos en la medida de lo posible la configuración por defecto de Apache: no cambiaremos el timeout, ni la ruta a las carpetas, ni tampoco el nombre del archivo principal a mostrar(index.html,index.htm,index.php…)

Comencemos

Lo primero será instalar el paquete apache2 con sus dependencias:

sudo apt-get install apache2

Una vez hecho esto, comprobamos que está funcionando correctamente, abrimos un navegador y escribimos localhost:

También podemos comprobarlo mediante el comando /etc/init.d/apache2 status:

Muy bien, ya tenemos el servidor apache instalado y funcionando!

Si únicamente quisiéramos alojar una página simple (HTML y CSS) ya estaríamos preparados para hacerlo, únicamente habría que situar los archivos de la página dentro de la carpeta /var/www, reemplazando el index.html por defecto con el de nuestra página web.

Antes de continuar me gustaría enseñaros un pequeño resumen sobre las carpetas y archivos de Apache que se utilizan con más frecuencia, saber para qué sirve cada una nos ayudará a comprender lo que vamos a hacer en los siguientes pasos de este tutorial:

Como somos muy de complicarnos la vida vamos a suponer que queremos alojar varias páginas independientes, haciendo nuestro pequeño servicio de hosting. Para ello, tal y como comenté en otro post, deberemos utilizar VirtualHosts (a no ser que prefiramos entrar con direcciones web del tipo http://www.ejemplo.com/web1.html, lo cual además de cutre es inseguro).

VirtualHost

La configuración de los VirtualHosts en Ubuntu (o Debian) es bastante más flexible y organizada que en Fedora, ya que tendremos la posibilidad de crear archivos de configuración independientes para cada una de las páginas que alojemos, algo muy útil si manejamos un gran volumen de páginas web desde un mismo servidor.

Crearemos VirtualHosts basados en nombre, por ser el método más flexible y utilizado de los que existen. El uso de VirtualHost basados en nombres nos permite mostrar a un navegador web una página u otra dependiendo de la URL que nos solicite dicho navegador.

Lo primero que haremos será crear varias páginas web de prueba, cada una con su index.html dentro de carpetas independientes en la ruta /var/www, algo como esto para las pruebas es más que suficiente:

Una vez que lo tenemos nos toca configurar el archivo /etc/hosts para las pruebas en local:

Ahora vamos a crear los archivos de configuración para cada uno de los VirtualHost. Los crearemos dentro de /etc/apache2/sites-available con el nombre de la página para distinguirlos fácilmente, un ejemplo de archivo de configuración lo tenéis aquí:

Con estas opciones es suficiente para que funcione correctamente. Hay muchas más, algunas de ellas las veremos más tarde, otras podéis verlas directamente en el archivo /etc/apache2/sites-available/default (Ojo, echadle un vistazo para ver más opciones de configuración pero no os recomiendo que cambieis nada de este archivo, dejadlo como está).

Una vez que hemos creado uno para cada VirtualHost solamente nos queda habilitarlos. Para ello utilizaremos el comando a2ensite nombrearchivoconfiguracion:

Si queréis deshabilitar una página podéis hacerlo en cualquier momento con el comando a2dissite nombrearchivoconfiguracion.

Para realizar una redirección a otra página web, que puede estar en el mismo servidor o en cualquier parte de internet, tenemos que añadir la siguiente línea al archivo de configuración del VirtualHost que queramos redireccionar:

RedirectPermanent / http://www.ejemplo.com

Recordad que para que los cambios sean efectivos debéis reiniciar el servidor con sudo service apache2 reload.

Entramos en el navegador para comprobar si están funcionando OK todas las páginas que tenemos alojadas:

 Módulo PHP

La gestión de los módulos en Apche bajo Ubuntu/Debian es bastante parecida a la gestión de VirtualHost, e igual de flexible. Podemos ver qué módulos tenemos disponibles en la carpeta /etc/apache2/mods-available y ver cuáles están activados en la carpeta /etc/apache2/mods-enabled.

Por defecto no tenemos el módulo para PHP disponible, así que tendremos que instalarlo:

sudo apt-get install php5

Tras instalarlo volvemos a /etc/apache2/mods-available y comprobamos que ahora se encuentra disponible el módulo PHP:

Comprobamos que se encuentra activo dentro de /etc/apache2/mods-enabled:

Si por algún motivo no se iniciase automáticamente tras la instalación, lo activaríamos con el comando a2enmod nombremodulo, para deshabilitar un módulo utilizaríamos el comando a2dismod nombremodulo.

Recordad: Cada cambio que realicéis en el servidor necesita un reinicio (sudo service apache2 reload) para que se haga efectivo.

Vamos a crear una página simple con código PHP para comprobar que funciona. Edito el archivo /var/www/getupcity1/index.html y lo renombro a index.php, y le inserto un código PHP a la página:

Accedo a http://www.getupcity1.com desde el navegador:

Pues ya tenemos todo funcionando! Espero que os sirva de ayuda, si tenéis cualquier duda o sugerencia comentad.

Saludos!

About these ads

27 Respuestas a “Instalación de un servidor web Apache en Ubuntu 12.04

  1. Muy bueno!!! Ojalá le puedas cambiar el contraste entre el color del texto y el fondo porque se vuelve muy difícil de leer.

  2. cuando reincio el apache2 aparece lo siguiente:

    apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
    (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
    no listening sockets available, shutting down
    Unable to open logs
    Action ‘start’ failed.
    The Apache error log may have more information.
    [fail]

    REALMENTE ME URGE, PUES NO PUEDO TRABAJAR EN MIS PROYECTOS Y TENGO L TIEMPO ENCIMA

    • Quisas donde aparece 0.0.0.0:80 debes cambiar el 80 por el 100…..espero te sirva ya que a mi me funciono. Y disculpa la anterior respuesta.

  3. Oyes amigo, y para activar el modulo rewrite, para url’s amigables, como le hago, hice los de a2enmod rewrite, y me dice que ya esta activado, en mi proyecto no respeta las url amigables, bueno no me reconoce las variables,

    AYUDENME!!! POR FAVOR!
    Gracias, Saludos!

    • al utilizar la interfaz de tasksel podrias corromper el sistema completo ya que por defecto desinstalaria lo que no este seleccionado, para instalar LAMPP necesitarias desde consola instalar el paquete de tasksel, osea sudo aptitude install lamp-server^ (o apt-get segun sea el caso)

  4. Buenisimo el tuto, me ha servido para un trabajo de redes que tengo… Lo unico que me piden autenticacion de un usuario con contraseña… y por mucho que lo hago con md5 no me sale… me estoy volviendo locaaaaa… ayuda please…

  5. FANTASTICO !!! mas facil, imposible, mas limpio y libre de cosas inecesarias, imposible, una noche dandome mal por el tema de los host virtuales, veo tu post y en 2 minutos todo comprendido y hecho. Muchas gracias por compartir tus conocimientos con nosotros.

  6. This can be flight simulator version FS2002, FS2004
    or the latest version of Flight Simulator, FSX. Solution Options:
    It was decided to use a web services simulator to simulate the exact
    functions of a web services backend. So, if the games above
    don’t whet your appetite, it’s not that hard to find
    more – Tanzanite is one of the new exotic gemstones to come onto the market.
    If you are looking for some excitement beyond just flying, the Jane’s series of combat flight simulators is the best place to look. The instruments that lag in real life, lag correctly, gyro drift is modeled correctly, the magnetic compass is subject to aircraft body forces – all those things that make real world flying a challenge are present.

  7. no me sirvio de mucho el tutorial lo que quiero es un servidor web que este en linea y puedan acceder otros usuarios desde internet de manera local no me sirve tutoriales para niños, si tienes un tutorial asi como lo describo mandamelo por correo

  8. La verdad muy bien logrodo el tuto, lo unico quiero comentar que a mi el primer vhost ok, cuando cree el segundo ponia la url en el navegador y seguia saliendo el primero. No fue hasta que agregue su URL en las directivas “NameVirtualHost URL”. No se si es la manera adecuada de arreglarlo, ya me diras algo saludos!

Añade un comentario:

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