Existen multitud de herramientas para instalar y configurar fácilmente un servidor Apache con MySQL tanto en Windows como en Linux, que nos permiten tener un sistema local para hacer nuestras pruebas en el mundo de la web, pero a nivel local y sin los problemas de seguridad que puede dar un servidor real.
El uso de herramientas de este tipo viene bien cuando no queremos complicarnos demasiado con la configuración de PHP, MySQL y Apache. De esta forma tenemos una configuración básica de apache sin problemas y perféctamente funcional. Herramientas como EasyPHP (http://www.easyphp.org/) para Windows o XAMPP para Linux que se puede encontrar en la web http://sourceforge.net, son algunos ejemplos de ésto.
En esta primera parte se va a explicar lo necesario para instalar un servidor Apache en Linux, así como las diferentes opciones de configuración del servidor de las que disponemos en el fichero httpd.conf
Instalación de Apache en Linux
A día de hoy los gestores de paquetes disponen de la mayoría de aplicaciones en los repositorios que vienen de serie en las distintas distribuciones, especialmente si utilizamos Ubuntu que facilita bastante la instalación de aplicaciones en nuestro sistema.
En nuestro caso utilizaremos el gestor de paquetes apt-get que nos permitirá de forma sencilla descargar e instalar una versión de Apache. Para instalar nuestro servidor apache ejecutamos:
sudo apt-get install apache2
Una vez que ha terminado el proceso ya tenemos nuestro servidor Apache en funcionamiento. Ahora tenemos que comprobar que el servidor responde a nuestras peticiones. Para eso abrimos nuestro navegador web habitual e introducimos la dirección http://127.0.0.1. De esta forma obtendremos una web con un texto que dice: IT'S WORKS! Esto indica que Apache está respondiendo a nuestras peticiones.
Funcionamiento básico del sistema de directivas de Apache. Ejemplo de configuración
Ahora que ya disponemos de nuestro servidor, tenemos que saber como configurarlo correctamente para lo que queramos hacer. Para ello, vamos a describir el funcionamiento básico del fichero httpd.conf que podemos encontrar normalmente en la ruta /etc/apache2/httpd.conf.
La configuración de Apache se basa en un sistema de directivas que se aplican de forma general o bien en secciones concretas (un directorio o una IP por ejemplo). Todos los parámetros que se le pueden aplicar al fichero httpd.conf se denominan directivas. Estas directivas son de dos tipos:
Directivas generales. Las directivas generales son aquellas que se aplican a todo el servidor, de forma que lo que indique afectará a toda petición que se realice a dicho servidor. Por ejemplo si en nuestro fichero httpd.conf indicamos lo siguiente.
DirectoryIndex index.php
esta directiva le esta diciendo al servidor que el fichero a buscar cuando el cliente solicita una web a este servidor, será index.php. Es posible añadir mas de un fichero separado por espacios.
Directivas de sección. A diferencia de las generales, las directivas de sección solo afectan a partes concretas del servidor (un directorio, un dominio o subdominio, etc.).
Se puede decir que las directivas de sección nos permiten agrupar directivas generales, y que mientras que las primeras permiten establecer un ámbito de efecto dentro del servidor por sí solas, las segundas afectan a todo el servidor a menos que estén dentro de una directiva de sección.
Apache se divide en varios módulos cada uno de los cuales hace referencia a un grupo de directivas que tratan partes distintas del servidor, como puede ser el sistema de archivos, el núcleo, etc. Los módulos de los que dispone Apache los podemos encontrar en la web de Apache httpd.apache.org/docs/2.0/es/mod/.
A continuación se expone un ejemplo de configuración de un servidor Apache para el caso en que queramos utlilizar hosts virtuales:
NameVirtualHost 192.168.55.1 DirectoryIndex index.php <Directory /> order Deny, Allow Deny from all Allow from 192,168.55.1 </Directory> <VirtualHost 192.168.55.1> DocumentRoot /web/miweb ServerName www.miweb.midominio.es </VirtualHost> <VirtualHost 192.168.55.1> DocumentRoot /web/webmitio ServerName www.webmitio.midominio.es ServerAlias www.mitio.es <Directory /web/webmitio> order Deny, Allow Allow from all </Directory> </VirtualHost>
Esta configuración es un ejemplo del uso de host virtuales. Como se puede ver, el fichero httpd.conf no es más que una serie de directivas generales y de sección que en este caso definen dos subdominios para el dominio www.midomino.es. Se suele utilizar cuando queremos alojar en un servidor mas de una web sin necesidad de comprar más de un dominio en la red, se conoce como servidor compartido.
En nuestro ejemplo queremos alojar las web www.miweb.es y www.webmitio.es en nuestro servidor Apache, pero tan sólo disponemos del dominio www.midominio.es y para ello se utilizan los hosts virtuales, de tal manera que se pueden crear subdominios para tener mas de una web usando los recursos de los que disponemos. De esta forma tenemos www.miweb.midominio.es y www.webmitio.midominio.es en el servidor como subdominios de www.midominio.es.
Cada host virtual se trata como si fuese una máquina independiente dentro del sistema, por lo que puede llevar sus propias directivas para dar o denegar permisos, establecer un alias para ese host virtual, etc. Cada una de las webs que se cren con hosting virtual tiene su propio direcotrio raiz que definimos con la directiva DocumentRoot, así como un nombre de host que definiremos con la directiva ServerName.
Además, se le pueden incluir restricciones con directivas de sección como en el segundo de los casos del ejemplo. Con la directiva Directory, podemos crear restricciones a un directorio concreto. En este caso estamos dando permiso total al directorio raiz de la web.
Comentarios