Professional Documents
Culture Documents
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/
/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:
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
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.
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.
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
</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
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.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:
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:
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
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.
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:
<VirtualHost *:80>
DocumentRoot /var/www/sitio1
ServerName www.mipagina.com.pe
</VirtualHost>
<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
Igualmente se debe cargar nuevamente la configuracin de Apache para activar los cambios:
sudo service apache2 reload
<head>
<title>Sitio 1</title>
</head>
<body>
<h1>Este es el sitio 1</h1>
</body>
</html>
<html>
<head>
<title>Sitio 2</title>
</head>
<body>
</body>
</html>