Está en la página 1de 7

1 Instalar Apache

Apache es un servidor web HTTP de cdigo abierto, para plataforma UNIX, Linux, Windows, Mac y
otras, que implementado el protocolo HTTP y la nocin de sitio virtual (varias pginas alojadas en el
mismo servidor Web). Es el servidor Web el ms usado en el mundo y en las plataformas de hosting.
Es modular, as que permite ampliar las funcionalidades a travs la instalacin de mdulos o plugins.

Desde una mquina Ubuntu, se debe utilizar los siguientes comandos para instalar el servidor Web
Apache:
sudo apt-get install apache2
Despus de su instalacin, la mquina se convierte en servidor Web y es posible tener acceso a una
pgina por defecto instalada con Apache, travs de la direccin: http://localhost/

Por defecto, los archivos HTML se encuentran en la siguiente carpeta:

/var/www/html/

Cada vez que se modifica la configuracin del servidor Apache, es necesario reiniciar el servicio Apache
con el siguiente comando:
sudo systemctl restart apache2

2 MySQL
MySQL es un motor de base de datos, de cdigo abierto, muy usado para desarrollar pginas Web.

Desde una mquina Ubuntu, se debe utilizar los siguientes comandos para instalar el servidor MySQL:
sudo apt-get install mysql-server
Luego de su instalacin, es necesario asegurar los accesos ya que por defecto son abiertos, utilizando
el script mysql_secure_installation:
sudo mysql_secure_installation

3 PHP
Por defecto Apache no incluye ningn otro lenguaje de programacin aparte de HTML y CSS, as que
es necesario realizar la instalacin de PHP, con el siguiente comando:
sudo apt-get install php libapache2-mod-php php-mysql
El paquete php permite instalar el lenguaje PHP y sus dependencias en el sistema Ubuntu.

El paquete libapache2-mod-php permite instalar el mdulo de ejecucin PHP para el servidor Apache2.

El paquete php-mysql permite instalar las extensiones PHP para gestionar una base de datos MySQL.

Como se puede apreciar, el lenguaje PHP es modular, tiene un montn de extensiones o mdulos para
aadir funcionalidades: dibujar grficos, criptografa, conexiones a varios tipos de base de datos En
el sistema Ubuntu, todos los paquetes empezando por php- son mdulos de php. Pueden ver la lista
usando el siguiente comando:
sudo apt-cache search php- | more
Para tener ms detalles sobre cada mdulo, puede utilizar el siguiente comando:
sudo apt-cache show nombre_del_mdulo
Para instalar un mdulo o varios, se utiliza el siguiente comando:

sudo apt-get install nombre_mdulo1, nombre_mdulo2


Existe un paquete especial llamado php-common que permite instalar los mdulos ms comunes.

3.1 Probar PHP


A fin de probar PHP, vamos a crear un archivo llamado phpinfo.php dentro de la raz del servidor Web.
Desde un terminal ejecutar el siguiente comando:
sudo gedit /var/www/html/phpinfo.php

Usando el editor de texto Gedit, escribir el siguiente contenido dentro del archivo phpinfo.php:

<?php

phpinfo();

?>

Luego, con un navegador web, visitar la pgina http://localhost/phpinfo.php, aparece una tabla con
toda la configuracin de PHP y los mdulos cargados.

4 PHPMyAdmin
PHPMyAdmin es una herramienta desarrollada en PHP que permite administrar una base de datos
MySQL. Para instalarlo, utilizar el siguiente comando:
sudo apt-get install phpmyadmin apache2-utils

apache2-utils es un paquete adicional para Apache que instala herramientas necesarias al


funcionamiento de PHPMyAdmin.

Tambin el paquete phpmyadmin necesita los mdulos comunes de PHP, as que, si no estn
instalados, se instalar al mismo tiempo el paquete php-common.

La interface de PHPMyAdmin est accesible desde la siguiente direccin:


http://localhost/phpmyadmin/

5 Crear aliases con Apache


El PHPMyAdmin est accesible desde http://localhost/phpmyadmin pero si miramos dentro de la
carpeta /var/www/html/, no existe la carpeta phpmyadmin. Es porque se utiliza un alias de Apache
para realizar la configuracin de PHPMyAdmin.

Un alias permite crear varios proyectos diferentes en el mismo servidor, con cada uno su propia
arborescencia de archivos y ruta de acceso. Por ejemplo podramos crear el proyecto prueba,
accesible con la direccin Web http://localhost/prueba, y archivos almacenados en /var/www/prueba.

5.1 Crear la arborescencia de archivos


Utilizando el terminal de Ubuntu, creamos la carpeta prueba dentro de /var/www/, con el siguiente
comando:
sudo mkdir /var/www/prueba
5.2 Crear el alias
Por defecto Apache utiliza varios archivos de configuracin, todos se encuentran dentro de
/etc/apache2/

En el caso de Alias, la poltica actual de apache es crear un archivo de configuracin por cada alias, para
facilitar la gestin. Los archivos de configuracin de los alias se encuentran dentro de
/etc/apache2/conf-available. Dentro de esta carpeta creamos un nuevo archivo de configuracin
llamado bootstrap:
sudo gedit /etc/apache2/conf-available/prueba.conf

Este archivo contiene la configuracin bsica del alias prueba:

Alias /prueba "/var/www/prueba"

<Directory "/var/www/prueba /">

Allow from all

</Directory>

La lnea Allow from all permite a todo el mundo tener el acceso, al contrario de Deny from all que
prohbe el acceso a todos. Gracias a esas lneas de configuracin es posible prohibir el acceso a ciertas
mquinas, por ejemplo, y tener una combinacin de autorizaciones y restricciones usando:

Order deny,allow

Deny from 192.168.0.1

Allow from all

Este ejemplo define el orden de verificacin, primero se verifica los accesos denegados. Aqu el acceso
a la mquina usando la direccin IP 192.168.0.1 est prohibido, pero autorizado para todas las otras
mquinas.

5.3 Activar la configuracin del Alias


Una vez creado el archivo de configuracin de nuestro Alias, debemos activar dicha configuracin, con
el comando:
sudo a2enconf prueba

En realidad, este comando crea un link del archivo /etc/apache2/conf-available/prueba.conf dentro


de la carpeta /etc/apache2/conf-enabled/, lo que activa dicha configuracin.

La ltima etapa es cargar la nueva configuracin en el servicio apache, utilizando:


sudo service apache2 reload

5.4 Verificacin
Puede verificar el funcionamiento del alias, visitando la siguiente direccin: http://localhost/prueba/
Puede probar tambin prohibir los accesos para todos, cambiando la configuracin de
/etc/apache2/conf-available/prueba.conf, cargando nuevamente la configuracin en apache, y tratar
abrir la direccin: http://localhost/prueba/, tendr un acceso denegado:

Una vez las pruebas realizadas, devolver la configuracin inicial a fin de permitir el acceso a todos.

5.5 Conclusin
El uso de Alias en apache permite:

Manejar varios proyectos en el mismo servidor Web,


Utilizar una ubicacin diferente de /var/www/html.

6 Virtual Host
En el precedente ejemplo, se utiliz los alias para crear varios proyectos, el problema de dicha solucin
es que necesariamente todos los proyectos utilizarn el mismo nombre de dominio, en este caso
localhost.

Cmo utilizar un solo servidor Web para tener varias pginas con diferentes nombres de dominio?

La respuesta es usando los Virtual Host de Apache. La idea es indicar a Apache cual es la ubicacin de
los archivos de cada pgina en funcin de su nombre de dominio, por ejemplo:

www.midominio.com: ubicado en /var/www/sitio1


www.otrodominio.com: ubicado en /var/www/sitio2

6.1 Nombre de dominio


En el Internet se utiliza el protocolo DNS para resolver los nombres de dominio y direcciones IP, as
que si deseamos crear una pgina Web con el nombre www.midominio.com y que sea accesible desde
cualquier parte del mundo, sera necesario comprar y registrar dicho nombre de dominio. Para realizar
las pruebas de este captulo, se utilizar el mecanismo interno de resolucin de nombres de la mquina
Ubuntu, as que la resolucin sola ser local, no funcionar desde otra mquina.

Todas las mquinas, que sean Linux o Windows utilizan un archivo para las resoluciones locales de
nombres, previamente a la resolucin DNS.
En caso de Windows el archivo se ubica en: C:\Windows\System32\drivers\etc\hosts

En caso de Linux es: /etc/hosts

Desde la mquina Ubuntu, abrir este archivo:

sudo gedit /etc/hosts

Esa lnea indica que la direccin IP 127.0.0.1 (la mquina Ubuntu misma) tiene como nombre localhost.
Quiere decir que en realidad cuando se navega con la direccin http://localhost/ es equivalente a sudo
gedit /etc/hosts http://127.0.0.1/

Las otras lneas indican otros nombres para la mquina, y tambin con el protocolo IPv6.

Para los Virtual Host vamos a utilizar dos nombres de dominios fictivos:

www.mipagina.com.pe
www.otrapagina.com.pe

Si desde un terminal hacemos un ping con esas direcciones, no responde, ya que no existen en el
sistema DNS mundial.

Abriendo el archivo /etc/hosts, vamos a crear esas dos relaciones de nombres:


sudo gedit /etc/hosts

Ahora si la prueba de ping funciona:


Utilizar las teclas CTRL + C para apagar el comando ping.

6.2 Crear el Virtual Host


Primero debemos crear las carpetas que contendrn los archivos de cada pgina:
sudo mkdir /var/www/sitio1

sudo mkdir /var/www/sitio2

Luego podemos crear los archivos de configuracin bsicos por cada pgina. De la misma manera que
para los Alias, Apache utiliza la carpeta /etc/apache2/sites-available/ para almacenar las
configuraciones de los Virtual Host. Dentro de esta carpeta crear un archivo con el siguiente contenido
para activar el Virtual Host www.mipagina.com.pe:

sudo gedit /etc/apache2/sites-available/mipagina.com.pe.conf

<VirtualHost *:80>

DocumentRoot /var/www/sitio1

ServerName www.mipagina.com.pe

</VirtualHost>

La configuracin indica que con el nombre de dominio www.mipagina.com.pe se debe utilizar


/var/www/sitio1 como carpeta raz.

Realizar la misma configuracin para el segundo Virtual Host www.otrapagina.com.pe:

sudo gedit /etc/apache2/sites-available/otrapagina.com.pe.conf

<VirtualHost *:80>

DocumentRoot /var/www/sitio2

ServerName www.otrapagina.com.pe

</VirtualHost>

Finalmente, tal como para los Alias, se debe activar dicha configuracin, lo que crear un link dentro
de la carpeta /etc/apache2/sites-enabled/, con el siguiente comando:
sudo a2ensite mipagina.com.pe

sudo a2ensite otrapagina.com.pe

Igualmente se debe cargar nuevamente la configuracin de Apache para activar los cambios:
sudo service apache2 reload

6.3 Prueba de verificacin


A fin de verificar el funcionamiento de nuestras dos pginas, vamos a crear dos archivos HTML bsicos.

Crear el archivo /var/www/sitio1/index.html con el siguiente contenido:


sudo gedit /var/www/sitio1/index.html
<html>

<head>

<title>Sitio 1</title>

</head>

<body>
<h1>Este es el sitio 1</h1>

</body>

</html>

Crear el archivo /var/www/sitio2/index.html con el siguiente contenido:

sudo gedit /var/www/sitio2/index.html

<html>

<head>
<title>Sitio 2</title>

</head>

<body>

<h1>Este es el sitio 2</h1>

</body>

</html>

Probar navegando con las siguientes direcciones: www.mipagina.com.pe y www.otrapagina.com.pe: