Você está na página 1de 12

APACHE Apache es el Servidor Web ms utilizado, lder con el mayor nmero de instalaciones a nivel mundial muy por delante

de otras soluciones como el IIS (Internet Information Server) de Microsoft. Apache es un proyecto de cdigo abierto y uso gratuito, multiplataforma (hay versiones para todos los sistemas operativos ms importantes), muy robusto y que destaca por su seguridad y rendimiento. Ahora bien,se puede estar preguntando alguien, qu es un Servidor Web y qu hace exactamente? Bueno, lo primero que debemos aclarar es que estamos hablando de software, aunque el equipo donde se ejecuta recibe la misma denominacin. Su misin es crtica, ya que es el encargado de aceptar las peticiones de pginas (o recursos en general) que provienen de los visitantes que acceden a nuestro sitio web y gestionar su entrega o denegacin, de acuerdo a las polticas de seguridad establecidas. Esto, que puede parecer simple, implica muchas facetas y funcionalidades que debe cubrir, como pueden ser:

Atender de manera eficiente, ya que puede recibir un gran nmero de peticiones HTTP, incluyendo una ejecucin multitarea ya que pueden darse peticiones simultneas. Cualquier peticin compleja (por ejemplo con acceso a base de datos) dejara colapsado el servicio.

Restricciones de acceso a los ficheros que no se quieran exponer, gestin de autentificaciones de usuarios o filtrado de peticiones segn el origen de stas.

Manejar los errores por pginas no encontradas, informando al visitante y/o redirigiendo a pginas predeterminadas.

Gestin de la informacin a transmitir en funcin de su formato e informar adecuadamente al navegador que est solicitando dicho recurso.

Gestin de logs, es decir almacenar las peticiones recibidas, errores que se han producido y en general toda aquella informacin que puede ser

registrada y analizada posteriormente para obtener las estadsticas de acceso al sitio web. Adems, Apache nos permite configurar un Hosting Virtual basado en IPs o en nombres, es decir, tener varios sitios web en un mismo equipo (por ejemplo: nombreweb1.com, nombreweb2.com,.) o como indicbamos, establecer distintos niveles de control de acceso a la informacin incluyendo el soporte a cifrado SSL utilizando protocolo seguro HTTPS. A continuacin, para los que quieran tener una visin ms en detalle de cmo se trabaja con Apache, reproducimos la explicacin del fichero de configuracin de Apache 2 de nuestro curso Servidor Web Apache, elaborado por Franciso Illeras. Este apartado, junto a otros dos, los podis descargar en el extracto del curso que hemos publicado en nuestra seccin de Tutoriales, para que podis tener una mejor idea del mismo. Archivo apache2.conf (apartado del Tema Configuracin y ajuste del servidor Apache) Sin lugar a dudas, apache2.conf es el fichero ms importante de Apache, puesto que en l se definir el comportamiento general del servidor de pginas web y adems, es el encargado de acceder a los distintos mdulos que amplan la funcionalidad del servidor. Como ya hemos comentado, el archivo apache2.conf se encuentra en el directorio /etc/apache2, y al tratarse de un fichero de texto podr editarlo fcilmente (por ejemplo, con nuestro editor preferido joe). Dentro del archivo de configuracin encontraremos dos partes bien diferenciadas: 1) Variables globales del servidor: variables que definen el funcionamiento general del servidor. Las ms importantes son (siempre podr completar la informacin que le suministro con la que posee en la propia web de Apache, el

lugar

donde

encontrar

la

documentacin

es

http://httpd.apache.org/docs/2.0/es/):

Directiva

Descripcin

ServerRoot /etc/apache2

Indica la ubicacin de los ficheros de configuracin del servidor Apache.

ServerName miservidor.ugr.es

Indica el nombre del servidor.

Fichero en el que se almacenar el nmero de proceso con el que se esta ejecutando el servidor Apache. Fjese que no se indica un PidFile ${APACHE_PID_FILE} directorio o ubicacin sino que se le asigna el valor de la variable APACHE_PID_FILE. Ms adelante comprobar que esa variable esta definida en el archivo de configuracin envvars.

Timeout 300MaxKeepAliveRequests 100KeepAliveTimeout 15

Todas estas directivas estn relacionadas con el tiempo de espera de las conexiones con los clientes.

Aunque nosotros hemos instalado el servidor Apache como administradores (root), la aplicacin no podr ejecutarse con estos privilegios User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} porque provocara muchos

problemas de seguridad. En lugar de ello, el servidor Apache dispondr de su propio usuario y grupo con el que se ejecutar. De nuevo hace referencia en a las unos valores variables Y

almacenados

APACHE_RUN_USER en el archivo envvars.

APACHE_RUN_GROUP que podr localizar

Indica el nombre (.htaccess) que deber AccessFileName .htaccess tener el fichero local de un directorio en el que se almacenen directivas de acceso. Indica el nombre del directorio del sistema en el que se guardarn los registros de error del servidor Apache.

ErrorLog /var/log/apache2/error.log

A la vista de la tabla anterior parecera que Apache es un servidor que no es muy complejo de configurar, porque no posee muchas opciones. Es cierto en parte, aunque stas son solo una pequea parte de las opciones que posee Apache, ya que mayora de las variables de configuracin se encuentra repartida entre otros pequeos ficheros de configuracin (mdulos) guardados en mods-available (pero esto lo veremos ms adelante). En este momento solo tiene que preocuparte que el nombre de nuestro servidor est bien indicado mediante la variable ServerName para que cualquier redireccin o referencia existente en nuestros documentos HTML funcionen bien. Y el resto de las variables no tendrn que tocarse puesto que por defecto vienen con los valores adecuados, salvo la parte correspondiente a AccessFileName. Lo explicaremos de una manera ms detallada.

.htaccess es un archivo de texto oculto (por esa razn comienza por .) que permite personalizar el funcionamiento del servidor Apache un directorio concreto sin necesidad de modificar el fichero de configuracin principal apache2.conf. Cuando un cliente web solicita un archivo al servidor, este busca desde el directorio raz hasta el subdirectorio que contiene el archivo solicitado el archivo .htaccess y tiene en cuenta las directivas contenidas en el mismo antes de proceder con la peticin. Los usos principales del .htaccess son:

Impedir el listado de los archivos de un directorio. Redireccionar el trfico Web. Personalizar las pginas de error. Restringir el acceso a determinados archivos. Impedir el acceso a determinadas IPs o rangos de IP.

En el apartado de comunicaciones seguras de este mismo tema lo veremos con ms detenimiento. 2) Ampliacin de funcionalidades: relacionado con las llamadas a otros mdulos y archivos de configuracin. Todas las directivas relacionadas con este punto vendrn precedidas por la palabra Include.

Directiva

Descripcin

Include

/etc/apache2/mods- Incluir todos los mdulos existentes en el directorio /etc/apache2/mods-enabled/. Esto significa que todas las directivas que se encuentren en los archivos de este directorio sern tenidas en cuenta para el

enabled/*.loadInclude /etc/apapche2/modsenabled/*.conf

funcionamiento del servidor. Todos estos ficheros servidor. son funcionalidades extra del

Incluir las directivas incluidas en el archivo Include /etc/apache2/ports.conf ports.conf, que hacen referencia al puerto por el que se dar servicio (normalmente el puerto 80).

Incluye Include enabled/ /etc/apache2/sites-

el

directorio

/etc/apache2/sites-

enabled, que es el lugar donde se definirn los distintos dominios virtuales que deseemos ofrecer con nuestro servidor. Lo veremos ms adelante.

Si an no te has hecho una idea mental de cmo esta conformado el servidor Apache, la siguiente imagen te ayudar.

Ilustracin 1: Estructura del servidor Apache2.

Hasta ahora has aprendido que el archivo de configuracin principal de Apache 2 se llama apache2.conf y se encuentra en el directorio /etc/apache2. Ya sabes como indicar el nombre del servidor, que el usuario y grupo con el que se ejecuta el servidor Apache se llama www-data, y que se cargarn todos los mdulos que se encuentren almacenados en los directorios de configuracin mods-enabled y sites-enabled.

Introduccin Bases de datos-SQL-Sentencias SQL-Introduccin El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalizacin hay excepciones para casi todo; de hecho, cada motor de bases de datos tiene sus

peculiaridades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servir para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI ser interpretable por cualquier motor de datos. Breve Historia La historia de SQL (que se pronuncia deletreando en ingls las letras que lo componen, es decir "ese-cu-ele" y no "siquel" como se oye a menudo) empieza en 1974 con la definicin, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigacin de IBM, de un lenguaje para la especificacin de las caractersticas de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implement en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisin del lenguaje (SEQUEL/2), que a partir de ese momento cambi de nombre por motivos legales, convirtindose en SQL. El prototipo (System R), basado en este lenguaje, se adopt y utiliz internamente en IBM y lo adoptaron algunos de sus clientes elegidos. Gracias al xito de este sistema, que no estaba todava comercializado, tambin otras compaas empezaron a desarrollar sus productos relacionales basados en SQL. A partir de 1981, IBM comenz a entregar sus productos relacionales y en 1983 empez a vender DB2. En el curso de los aos ochenta, numerosas compaas (por ejemplo Oracle y Sybase, slo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estndar industrial de hecho por lo que respecta a las bases de datos relacionales. En 1986, el ANSI adopt SQL (sustancialmente adopt el dialecto SQL de IBM) como estndar para los lenguajes relacionales y en 1987 se transfom en estndar ISO. Esta versin del estndar va con el nombre de SQL/86. En los aos siguientes, ste ha sufrido diversas revisiones que han conducido primero a la versin SQL/89 y, posteriormente, a la actual SQL/92. El hecho de tener un estndar definido por un lenguaje para bases de datos relacionales abre potencialmente el camino a la intercomunicabilidad entre

todos los productos que se basan en l. Desde el punto de vista prctico, por desgracia las cosas fueron de otro modo. Efectivamente, en general cada productor adopta e implementa en la propia base de datos slo el corazn del lenguaje SQL (el as llamado Entry level o al mximo el Intermediate level), extendindolo de manera individual segn la propia visin que cada cual tenga del mundo de las bases de datos. Actualmente, est en marcha un proceso de revisin del lenguaje por parte de los comits ANSI e ISO, que debera terminar en la definicin de lo que en este momento se conoce como SQL3. Las caractersticas principales de esta nueva encarnacin de SQL deberan ser su transformacin en un lenguaje standalone (mientras ahora se usa como lenguaje hospedado en otros lenguajes) y la introduccin de nuevos tipos de datos ms complejos que permitan, por ejemplo, el tratamiento de datos multimediales. Componentes del SQL El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. Comandos Existen dos tipos de comandos SQL:
o

DLL que permiten crear y definir nuevas bases de datos, campos e ndices.

DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.

Comandos DLL Comando Descripcin CREATE DROP Utilizado para crear nuevas tablas, campos e ndices Empleado para eliminar tablas e ndices

ALTER

Utilizado para modificar las tablas agregando campos o cambiando la definicin de los campos.

Comandos DML Comando Descripcin SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado Utilizado para cargar lotes de datos en la base de datos en una nica operacin. Utilizado para modificar los valores de los campos y registros especificados Utilizado para eliminar registros de una tabla de una base de datos

INSERT

UPDATE

DELETE

Clusulas Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular. Clusula FROM Descripcin Utilizada para especificar la tabla de la cual se van a seleccionar los registros Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar Utilizada para separar los registros seleccionados en grupos especficos Utilizada para expresar la condicin que debe satisfacer cada grupo Utilizada para ordenar los registros seleccionados de acuerdo con un orden especfico

WHERE

GROUP BY

HAVING

ORDER BY

Operadores Lgicos Operador Uso AND Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad slo si ambas son ciertas. Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. Negacin lgica. Devuelve el valor contrario de la expresin.

OR NOT

Operadores de Comparacin Operador < > <> <= >= = BETWEEN LIKE In Uso Menor que Mayor que Distinto de Menor o igual que Mayor o igual que Igual que Utilizado para especificar un intervalo de valores. Utilizado en la comparacin de un modelo Utilizado para especificar registros de una base de datos

Funciones de Agregado Las funciones de agregado se usan dentro de una clusula SELECT en grupos de registros para devolver un nico valor que se aplica a un grupo de registros. Funcinn Descripcin AVG Utilizada para calcular el promedio de los valores de un campo

determinado COUNT SUM Utilizada para devolver el nmero de registros de la seleccin Utilizada para devolver la suma de todos los valores de un campo determinado Utilizada para devolver el valor ms alto de un campo especificado Utilizada para devolver el valor ms bajo de un campo especificado

MAX

MIN

Orden de ejecucin de los comandos Dada una sentencia SQL de seleccin que incluye todas las posibles clusulas, el orden de ejecucin de las mismas es el siguiente: 1. Clusula FROM 2. Clusula WHERE 3. Clusula GROUP BY 4. Clusula HAVING 5. Clusula SELECT 6. Clusula ORDER BY

Você também pode gostar