Sei sulla pagina 1di 34

Manual de APACHE 2.

08/10/2012 2 DAW Despliegue aplicaciones informaticas Jos Mara Moreno Moya

Jos Mara Moreno Moya

APACHE2.0

INDICE
INTRODUCCIN _______________________________________________________ 3 INSTALACIN DE APACHE _______________________________________________ 6 ESTRUCTURA DE APACHE _______________________________________________ 8 CONFIGURACIN DE APACHE ___________________________________________ 11 HOSTS VIRTUALES ____________________________________________________ 17 SSL EN APACHE _______________________________________________________ 20 OTRAS OPCIONES DE APACHE ___________________________________________ 25 LAMPP:LINUX+APACHE+MYSQL+PHP+PHPMYADMIN _______________________ 30

Jos Mara Moreno Moya

APACHE2.0

INTRODUCCIN
Servidor Web
La wikipedia define el servidor web como un programa que implementa el protocolo HTTP (hypertext transfer protocol). Este protocolo est diseado para transferir lo que llamamos hipertextos, pginas web o pginas HTML (hypertext markup language): textos complejos con enlaces, figuras, formularios, botones y objetos incrustados como animaciones reproductores de sonidos. La arquitectura utilizada es cliente/servidor, es decir, el equipo cliente hace una solicitud o peticin al equipo servidor, y ste atiende dicha solicitud. En el equipo cliente se ejecuta una aplicacin llamada 'navegador o cliente web' que: Sirve de interfaz con el usuario: atiende sus peticiones, muestra los resultados de las consultas y proporciona al usuario un conjunto de herramientas que facilitan su comunicacin con el servidor. Se comunica con el servidor web: transmite las peticiones de los usuarios. En el equipo servidor la nica tarea es atender las diferentes peticiones recibidas desde los diferentes navegadores o clientes web y hacerlo de forma eficiente y segura. Este es el caso de los servidores web seguros que solicitan un nombre de usuario y una contrasea para permitir el acceso slo a usuarios registrados y por tanto, con permiso para visualizar la pgina/s. El objetivo de un servidor web es servir o suministrar pginas web a los clientes web o navegadores que las solicitan. Un usuario, por ejemplo desde el navegador Firefox, al hacer 'click' sobre un enlace a una pgina web est enviando una solicitud al servidor web que aloja dicha pgina para que se la muestre (servir la pgina). El servidor web si la encuentra la enva y si no la encuentra devuelve al cliente un mensaje de error. El cliente cuando recibe la pgina web interpreta el cdigo HTML mostrando las fuentes, colores, imgenes que la componen, etc, de forma correcta. Pero el servidor web, adems de servir pginas web HTML estticas tambin permite la ejecucin de una serie scripts, en diferentes lenguajes de programacin, que proporcionan dinamismo a las pginas web. Estos lenguajes son PHP, CGI3, applets de Java4, etc.

Navegacin Web

Jos Mara Moreno Moya

APACHE2.0

Para que el navegador pueda llegar al servidor web (ya sea en una red local o en Internet) el servidor debe tener asignada una direccin IP (Internet Protocol) nica que identifica el equipo en la red. Cuando el navegador hace una peticin al servidor web utiliza un nombre que identifica al servidor y esta solicitud se transmite a un servidor DNS. ste resuelve el nombre y devuelve la direccin IP que corresponde al nombre. La solicitud del navegador entonces se encamina al servidor web correcto. La informacin que el usuario proporciona al navegador para conectar con un servidor web se llama URL (Uniform Resource Locators).
protocolo://servidor/ruta/recurso

URL de solicitud de un recurso consta de: 1. Protocolo a utilizar: http, https, ftp, ftps,... 2. Servidor: es la direccin IP o el nombre del servidor (FQDN) que contiene el recurso. 3. Ruta_al_recurso: directorio y subdirectorios del sitio web donde est ubicado el recurs 4. Recurso: recurso al que se quiere acceder.
http://es.wikipedia.org/wiki/Localizador_uniforme_de_recursos

Protocolo HTTP
Las siglas HTTP significan Hyper Text Transfer Protocol, Protocolo de Transferencia de HiperTexto y es el protocolo usado en las transacciones de la web (www). El hipertexto es el contenido de las pginas web, y el protocolo de transferencia es el conjunto de normas mediante las que se envan las peticiones de acceso a una web y la respuesta de esa web. HTTP es el protocolo de la web. Se define como un conjunto de normas que permiten la comunicacin entre el servidor y los clientes y la transferencia de informacin (archivos de texto, imgenes, archivos de msica, ...) entre ambos.

HTTP es un protocolo cliente/servidor cuyo funcionamiento est basado en el envo de mensajes y consiste en que: El usuario especifica en el cliente web (navegador) la direccin de la pgina que quiere consultar segn un formato http://direccin[:puerto][path]. El cliente web decodifica la informacin de la URL diferenciando el protocolo de acceso, IP o nombre de dominio del servidor, puerto,... El cliente web establece una conexin (socket) con el servidor web y solicita la pgina (mensaje request). El servidor enva dicha pgina (si no existe enva un cdigo de error) y el cliente web interpreta el cdigo HTML recibido. Mensaje response del servidor.

Se cierra la conexin.

Jos Mara Moreno Moya

APACHE2.0

El protocolo HTTP es un protocolo sin estado, es decir, no recuerda nada relativo a conexiones anteriores a la actual Para cada objeto que se transfiere por la red se realiza una conexin independiente. Ejemplo: si el cliente web solicita una pgina que incorpora varias imgenes se realizan las siguientes conexiones: una para el documento HTML y una por cada una de las imgenes. Para resolver estas situaciones de falta de memoria del protocolo, adems de recordar la informacin de la sesin actual (cuya informacin se pierde, por ejemplo, al cerrar el navegador), se utilizan las cookies. Las cookies son archivos de texto que se intercambian entre el cliente web y el servidor. Cuando se solicite de nuevo un intercambio de informacin entre estos mismos puntos se tendr en cuenta la informacin almacenada en esos archivos. Por ejemplo, para un mensaje de peticin al servidor la primera lnea tiene la estructura:
GET /index.html HTTP/1.0

que debe interpretarse como una peticin (GET) del archivo index.html que est en el directorio raz compatible con la versin 1.0 del protocolo HTTP. Por ejemplo, para un mensaje de respuesta del servidor la primera lnea tiene la estructura:
HTTP/1.0 200 OK,

que debe interpretarse como la respuesta de peticin servida (cdigo 2001) con xito e indica la versin de HTTP utilizada (1.0). El texto OK est relacionado con el cdigo de error correspondiente. El protocolo que se usa ahora es HTTP v. 1.1 es ms potente y presenta entre otras novedades las conexiones persistentes.

Servidor Web Apache

Jos Mara Moreno Moya

APACHE2.0

El servidor web apache es una de las aplicaciones estrella del mundo Linux. Es el servidor web ms implantado entre los distintos servidores que ofertan servicios web en Internet. Apache es un servidor Web que surgi a partir del servidor de HTTP ms famoso y difundido en su poca: NCSA. Desde entonces se convirti en un poderoso rival de todos los servidores Unix utilizados hasta la fecha por su eficiencia, funcionalidad y rapidez. Es por ello que se conoce como el rey de los servidores Web. Se desarrolla de forma estable y segura gracias a la cooperacin y los esfuerzos de un grupo de personas conocidas como grupo Apache (Apache Group), los cuales se comunican a travs de Internet y del Web. Juntos se dedican a perfeccionar el servidor y su documentacin regidos por la ASF (Apache Software Foundation). En la actualidad Apache es el servidor Web ms utilizado en el mundo de acuerdo con las estadsticas de http://news.netcraft.com que lo colocan en ms de 100 millones de servidores, lo cual significa ms del 45% en todo el mundo. Entre las caractersticas principales del Apache se encuentran:

Estable: es un servicio muy robusto y que no se cuelga con facilidad. Es un servidor Web potente, flexible y altamente configurable. Extensible, modular. Puede ser ajustado a travs de la definicin de mdulos empleando su propio API (Aplication Programming Interface). Puede crear servidores virtuales. stos pueden ser seguros. Software libre. Provee todo su cdigo fuente de forma libre y se distribuye bajo una licencia no restrictiva. Tiene su propia licencia. Multiplataforma. Est disponible para casi todos los sistemas operativos: Windows Cliente/Servidor, Macintosh, Linux, Unix,... Apache se distribuye en dos "ramas" separadas de cdigo, que corresponden a la versin 2.0.xx y la versin 1.3.xx. La versin 1.3 corresponde a la edicin clsica de Apache, especialmente optimizada para las plataformas Unix. La versin 2.2.X en con la que se recomienda trabajar que incluye muchas novedades. Apache significa ``A PAtCHy sErver'', o sea se basa en un cdigo y un conjunto de ficheros ``parches''. Otros desarrolladores relacionan su nombre con el de las tribus nativas americanas de Apaches.

INSTALACIN DE APACHE

Jos Mara Moreno Moya

APACHE2.0

Vamos a realizar una instalacin de apache en un distribucin Ubuntu. Gracias al sistema de paquetes de Ubuntu (basado en Debian), la instalacin de nuevas aplicaiones es muy sencilla. Basta con usar el comandoaptitude install y a continuacin el nombre del paquete a instalar. Instalaremos apache2. Hay que recodar que en linux slo el administrador del sistema, root, puede instalar aplicaiones, as que necesitaremos permisos para hacerlo. Se podra instalar desde una consola de root, o, siguiendo la filosofa de ubuntu desde una consola norma aadiendo el comando sudo y escribiendo la contrasea.
// Instalar Apache2 $ sudo aptitude install apache2

Por defecto, al instalarse el servicio se inicia cuando arranca el sistema, sin necesidad de iniciar sesin ningn usuario. Al instalar, si no estamos dentro de un dominio, nos dar el siguiente error:

No nos preocupamos por eso de momento, ya que est funcionado correctamente, lo comprobamos: Abrimos el Navegador y escribimos localhost en la barra de direcciones

Localhost, es una palabra que el sistema siempre identifica con la IP de lopback (normalmente 127.0.0.1), de esta menera podemos acceder a nuestro propio pc desde nuestro pc. Si quremos navegar deste otros pc hay que usar la direccin IP asignada.

Jos Mara Moreno Moya

APACHE2.0

Si la direccin IP de nuestro servidor fuera 192.168.1.100, podemos ir con el navegador a la direccin http://192.168.1.100 y obtendremos el mismo resultado. Como vemos en la pantalla anterior, la instalacin de Apache se produjo de forma adecuada, as pues hemos completado este apartado satisfactoriamente.

Arranque y parada del servidor web apache


El servidor web apache2, al igual que todos los servicios en Debian, dispone de un script de arranque y parada en la carpeta /etc/init.d.
// Arrancar o reiniciar el servidor apache2 $ sudo /etc/init.d/apache2 restart // Parar el servidor apache $ sudo /etc/init.d/apache2 stop // Recargar apache con la nueva configuracin $ sudo /etc/init.d/apache2 reload

Primera configuracin de Apache


Los archivos de configuracin de apache2 se encuentran en la carpeta /etc/apache2. El archivo principal de configuracin es/etc/apache2/apache2.conf. Antes de realizar cualquier cambio en este archivo, es conveniente realizar una copia de seguridad del mismo ya que si apache encuentra algn error en el archivo de configuracin, no arrancar. Se pueden configurar infinidad de parmetros. Aqu, para poner en marcha el servidor, editaremos el archivo apache2.conf y aadiremos nicamente el siguiente parmetro:
// Aadir en apache2.conf ServerName www.iesrioja.red // Aadir en /etc/hosts 127.0.0.1 localhost

www.iesrioja.red

De esta manera el servidor tendr un nombre de dominio cualificado, y adems desde el mismo ordenador se podr acceder con ese nombre. Para que se pudiese acceder desde otros ordenadores debera existir un servidor DNS donde introducir el nombre.

ESTRUCTURA DE APACHE

Jos Mara Moreno Moya

APACHE2.0

Archivos de configuracin
Apache se configura poniendo directivas en los ficheros de configuracin en texto simple. El fichero principal de configuracin suele llamarsehttpd.conf, o bien apache2.conf. En las distribuciones basadas en Debian apache2.conf es el que se usa. Adems, se pueden adicionar otros ficheros de configuracin usando la directiva Include. Cualquier directiva se puede colocar en cualquiera de estos ficheros de configuracin. Apache solo reconocer los cambios en los ficheros de configuracin durante el arranque o reinicio.

Directivas include que hay dentro de apache2.conf . Todos estos ficheros se


tendrn en cuenta para la configuracin de Apache. Se separa en diferentes ficheros para organizar mejor la configuracin, pero realmente da igual en qu fichero se escriban las directivas.
# Include module configuration: Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf # Include all the user configurations: Include /etc/apache2/httpd.conf # Include ports listing Include /etc/apache2/ports.conf # Include generic snippets of statements Include /etc/apache2/conf.d/ # Include the virtual host configurations: Include /etc/apache2/sites-enabled/

El directorio de configuracin por defecto es /etc/apache2. Dentro de este directorio tenemos la siguientes estructura:

Ficheros:

apache2.conf: Fichero de configuracin general.

Jos Mara Moreno Moya


APACHE2.0

10

ports.conf: Fichero de configuracin de los puertos en los que escucha Apache. httpd.conf: Archivo vaco que no se usa en la distribucin Ubuntu.

Directorios:

conf.d: Son archivos de configuracin de los distintos mdulos instalados. Se llaman (cargan) desde el fichero apache2.conf. mods-available: Todos los mdulos que dispone Apache. mods-enabled: Los mdulos que estn activos en este momento. Contiene
enlaces simblicos a algunos mods-available sites-available: Sitios preparados para ponerlos en marcha cuando sea necesario. sites-enabled: Sitios activos en este momento. Contiene enlaces simblicos a sites-available

Comandos tiles para configurar


a2enmod: activa mdulos a2dismod: desactiva mdulos a2ensite: activa sitios a2dissite: desactiva sitios

Sintaxis de los ficheros de configuracin


Los ficheros de configuracin de Apache contienen una directiva por lnea. En las directivas, dentro de los ficheros de configuracin, no se hace distincin entre maysculas y minsculas. Las lneas que comiencen con el carcter "#" sern consideradas comentarios, siendo ignoradas. No se pueden incluir comentarios en una lnea, despus de una directiva de configuracin. Los espacios y lneas en blanco antes de una directiva de configuracin se ignoran, de manera que se puede dejar una sangra en las directivas para mayor claridad. Se puede hacer un chequeo de la sintaxis de sus ficheros de configuracin sin tener que reiniciar el servidor, usando apache2ctl configtest apache2 -S ( si falla este ltimo hay que poner en apache2.conf dos lneas: User www-data y Group www-data)

Encontrar errores

Jos Mara Moreno Moya

APACHE2.0

11

Se debe consultar el registro de errores: es posible que el problema pueda deducirse de un mensaje de error. El archivo de registro de errores se encuentra en /var/log/apache2/error.log. Se recomienda mostrar los archivos de registro en una consola mientras se accede al servidor para ver cmo reacciona ste en cada momento. Con este fin, ejecute en una consola el siguiente comando como root. El fichero de log de apache est en /var/log, para verlo hay que ejecutar la orden: $ tail -f /var/log/apache2/*.log

CONFIGURACIN DE APACHE
Directivas de Configuracin
Las directivas de configuracin las podemos agrupar en 3 secciones.

Configuracin general. Directivas que definen los parmetros del servidor


principal y las opciones por defecto para los hosts virtuales. Optimizacin. Configuran los recursos y la eficacia de apache. De secciones. Directivas que configuran partes concretas funcionamiento de apache. del

Directivas de Configuracin General


ServerRoot
Define el directorio donde reside toda la informacin de configuracin y registro que necesita el servidor.
ServerRoot "/etc/apache2/"

DocumentRoot
Esta directiva le indica a Apache la carpeta raz que se ubica en el servidor, desde la que se servirn los documentos. Por defecto, todas las peticiones tendrn como raz esta carpeta, a no ser que se utilicen alias. Esta directiva est en la configuracin de un sitio o un Virtual Host.

Jos Mara Moreno Moya


DocumentRoot "/var/www"

APACHE2.0

12

ServerName
Define el nombre de host del servidor. Se suele utilizar cuando se crean redirecciones. Si no se define el nombre de servidor, intentar deducirlo a travs de su direccin IP.
ServerName www.iesrioja.red

DirectoryIndex
Mediante este parmetro, indicamos a Apache qu fichero debe buscar, por defecto, en caso de que no se especifique ninguno. Este fichero, de forma predeterminada es index.html, es decir, si desde el navegador tratamos de acceder a www.iesrioja.red el servidor por defecto servir www.iesrioja.red/index.html. Podemos indicarle ms de un fichero a buscar. El orden con el que se especifica el nombre del fichero determinara la prioridad a la hora de decidir que fichero es el que se muestra.
DirectoryIndex index.html index.php inicio.html ....

Esta directiva forma parte de un mdulo de apache (dir.c) y por eso su configuracin en Ubuntu est fuera de apache2, en el fichero mods-available/dir.conf

User / Group
User establece el identificador de usuario (userid) que utiliza el servidor para ejecutarse y responder a las peticiones. El valor de User determina el tipo de acceso que tendr el servidor web a los archivos y directorios en los que se encuentran las pginas. Si User no puede acceder a un archivo tampoco podr hacerlo el servidor web y, por tanto, tambin inaccesible al cliente web. Por defecto:
User www-data

El proceso Apache2 padre se inicia como root y a continuacin pasa al usuario wwwdata. El servidor debe arrancar como root porque necesita un puerto por debajo de 1024 (por defecto 80) y los puertos por debajo de 1024 estn reservados para el sistema y slo pueden ser utilizados por el root. Una vez que el servidor se ha conectado al puerto, pasa el proceso a User antes de aceptar peticiones. Group establece el identificador de grupo que utiliza el servidor para ejecutarse y responder a las peticiones. Por defecto:

Jos Mara Moreno Moya


Group www-data

APACHE2.0

13

Include
Permite que se incluyan otros archivos de configuracin en tiempo de ejecucin. Los paths o rutas dadas de los archivos pueden ser absolutos o relativos respecto al valor de la directiva ServerRoot.
Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf

Alias
Permite colocar contenido web en un directorio fuera del directorio DocumentRoot. Alias <url-path> <recurso> <url-path> indica la URL del contenido web <recurso> especifica la posicin del recurso en el sistema de archivos Ejemplo:
Alias /icons/ "/usr/share/apache2/icons/"

Indica que, si esta directiva est incluida en el archivo apache2.conf, cuando se escriba /icons/ en el navegador (http://localhost/icons/) se accedern a los recursos del sistema ubicados en el directorio /usr/share/apache2/icons/.

Listen
La directiva Listen indica al servidor que acepte peticiones entrantes solamente en los puertos y en las combinaciones de puertos y direcciones IP que se especifiquen. Si slo se especifica un nmero de puerto en la directiva Listen el servidor escuchar en ese puerto, a travs de todas las interfaces de red de la mquina. Si se especifica una direccin IP y un puerto, el servidor escuchar solamente en la interfaz de red a la que pertenezca esa direccin IP y solamente en el puerto indicado. Se pueden usar varias directivas Listen para especificar varias direcciones IP y puertos de escucha. El servidor responder a las peticiones de todas las direcciones y puertos que se incluyan. Por ejemplo, para hacer que el servidor acepte conexiones tanto en el puerto 80 como en el puerto 8000, se puede usar:
Listen 80

Jos Mara Moreno Moya


Listen 8000

APACHE2.0

14

Para hacer que el servidor acepte conexiones en dos interfaces de red y puertos especficos, usar
Listen Listen 192.168.1.1:80 192.168.1.5:8000

Esta directiva se encuentra en el fichero ports.conf

Directivas de Optimizacin
PidFile
Indica el fichero en el que el servidor graba el identificador de proceso (PID).
PidFile /var/run/apache2.pid

Timeout
El tiempo que el servidor web esperar para recibir y enviar peticiones durante la comunicacin. Expresado en segundos.
Timeout 300

KeepAlive
Activa o desactiva {On | Off} las conexiones persistentes.
KeepAlive On

MaxKeepAliveRequests
Establece el nmero mximo de peticiones permitidas por cada conexin. El valor 0 indica un nmero ilimitado.
MaxKeepAliveRequests 100

Jos Mara Moreno Moya

APACHE2.0

15

KeepAliveTimeout
Indica el nmero de segundos que el servidor esperar la siguiente peticin desde la misma conexin. Pasado este tiempo se considerar que se ha terminado y cerrar la conexin. Si se establece un valor muy grande se estarn utilizando muchos recursos de la mquina. Por defecto:
KeepAliveTimeout 15

Directivas de Secciones
Seccin Directory
La seccin <Directory /ruta / </Directory> engloba una o ms directivas de configuracin que slo se aplican al directorio y subdirectorios especificados. El argumento /ruta puede ser un nombre de directorio (ruta absoluta) o una expresin regular
<Directory "/usr/share/apache2/icons"> Options Indexes MultiViews AllowOverride None Order Allow,Deny Allow from all </Directory>

Dentro de <Directory> se usan las siguientes diretivas:

Options: [+|-] opcion:


Controla que caractersticas estn disponibles para un directorio en particular. La opcin se puede definir a None, de forma que ninguna caracterstica extra se habilita o a All de forma que todas se habilitan menos MultiViews. Otras caractersticas extra son: ExecCGI , FollowSymLinks, IncludesNOEXEC, Indexes, MultiViews, SymLinksIfOwnerMatch. Includes,

La opcin ms interesante puede ser Indexes: que si est activa indica que se mostrar el contenido del directorio.
Options Includes FollowSymLinks -Indexes

Indica que el directorio en cuestin tiene activados FollowSymLinks e Includes, pero no estar activa Indexes.

Jos Mara Moreno Moya

APACHE2.0

16

AllowOverride
Permite especificar qu partes del servidor pueden ser establecidas en los archivos .htaccess. Con None Los archivos .htaccess son totalmente ignorados. Con All, se permite todo tipo de configuracin dede los archivos .htaccess La configuracin del archivo .htaccess sobreescribe la configuracin dada en el sitio correspondiente y slo para el directorio en el que se especifica

Order
Especifica el orden en que van a procesarse las directivas deny y allow.

Allow, especifica qu hosts pueden acceder a un directorio determinado. Puede


contener 'All' (permite a todos), un nombre de dominio, una direccin IP, una red con su mscara de red, etc.

Deny, especifica qu hosts no pueden acceder a un directorio determinado.


Seccin Files
Las directivas de una seccin Files sirven para limitar el acceso a ciertos ficheros o directorios. En el ejemplo siguiente las directivas de configuracin, cuando se colocan en la seccin principal del archivo de configuracin, deniegan el acceso a cualquier archivo llamado privado.html sin tener en cuenta donde se encuentre.
<Files "privado.html"> Order Allow,Deny Deny from all </Files>

El argumento de <Files> puede ser un nombre de archivo, o una expresin regular. Por ejemplo, para indicar que el argumento es cualquier archivo con formato gif, jpg, jpeg o png utilizaramos la siguiente expresin regular: (Indicando con ~ que se trata de una expresin regular)
<Files ~ "\.(gif|jpe?g|png)$"> Order Allow,Deny Deny from all </Files>

Jos Mara Moreno Moya

APACHE2.0

17

Seccin IfModule
La seccin IfModule engloba directivas que se procesarn si el mdulo dado como argumento se compila con Apache2. Una de las directivas permitidas en IfModule es UserDir.
<IfModule mod_userdir.c> Userdir directorio </IfModule>

Userdir, define el nombre del directorio que ser aadido al directorio HOME del usuario si se recibe una peticin ~usuario.

HOSTS VIRTUALES
Introduccin
Configurando Hosts Virtuales podemos alojar varios sitios web en el mismo servidor, siendo uno totalmente independiente del otro. Con host virtuales, cuando una peticin entra en el servidor Apache2 desde un navegador web a travs de una IP dada, Apache2 comprueba el nombre de dominio que se est solicitando, la direccin IP y el puerto, y muestra el contenido asociado a dicho nombre de dominio. Actualmente, el sitio por defecto que viene configurado en apache, es un virtual host mas. Apache soporta varios tipos de hosts virtuales: 1. Hosts virtuales basados en nombres: permiten alojar varios nombres de host (o dominios) en una misma mquina (IP). Todos los hosts virtuales que comparten la misma IP deben declararse mediante la directiva NameVirtualHost. 2. Hosts virtuales basados en puerto: una mquina responde de diferente manera si se accede a un puerto u otro.. 3. Hosts virtuales basados en IP: una mquina responde de diferente manera si la peticin llega a diferente direccin Ip. Es decir, tenemos mltiples IPs asignadas al sistema y queremos que cada una de ellas soporte un sitio web. Hay que tener en cuenta que: 1. El host virtual heredar los parmetros de la configuracin global, que no se cambien para l de forma explcita.

Jos Mara Moreno Moya

APACHE2.0

18

2. Para la definicin de hosts virtuales se utiliza la seccin <VirtualHost> y en ella se incluyen las directivas que se aplican a un determinado host virtual. Como mnimo debe incluir la directiva DocumentRoot y ServerName. Directivas comunes al configurar Host Virtuales:

DocumentRoot: Directorio donde Apache2 va a buscar los documentos el servidor virtual. NameVirtualHost: Define la direccin IP y el puerto donde van a existir host virtuales basados en nombre ServerName: Define el nombre del servidor virtual . VirtualHost: Define una seccin para un host virtual con las directivas aplicables a l.

Pasos para crear un nuevo host


1. Crear una nueva carpeta (normalmente dentro de /var/www/), y copiar all dentro las pginas web. mkdir /var/www/nombresitio 2. Crear un nuevo archivo de configuracin en el directorio sites-avaliable. Lo ms cmodo es copiar el que viene por defecto. cp /etc/apache2/sitesavailable/default /etc/apache2/sitesavailable/nombresitio 3. Configurar en el nuevo fichero las opciones necesarias. Lo ms importante que DocumentRoot apunte al directorio creado. 4. Activar este nuevo sitio con el comando: a2ensite nombresitio. Si luego lo queremos desactivar a2dissite nombresitio

Hosts Virtuales basados en nombre


Supongamos que queremos alojar dos sitios web www.iesrioja.red y www.aparioja.red en la misma mquina, respondiendo ambos a una sola IP y con una sola instancia de Apache2 configurada en el puerto 80. Usando hosts virtuales podemos conseguir que, en el caso de que sea invocado www.iesrioja.red, Apache2 le responda con una pgina web alojada en un directorio y en el caso que sea convocado como www.aparioja.red, vaya a leer los archivos a otro directorio. Es decir, habr un directorio (DocumentRoot) para cada uno de los servidores virtuales que definamos. Es necesario incluir la directiva NameVirtualHost que indica que direccin IP y puerto va a proporcionar el servicio a los hosts virtuales. Si no queremos especificar una en concreto podemos usar * para que funcione en todas las direcciones IP del servidor.
NameVirtualHost *:80

En las ltimas configuraciones por defecto de apache2, esta directiva ya viene en el archivo ports.conf. Observar el archivo y si no est la directiva aadirla. Cmo sabe Apache2 si una peticin va dirigida a uno u otro host virtual?

Jos Mara Moreno Moya

APACHE2.0

19

La respuesta est en las cabeceras del HTTP/1.1. Cuando un navegador enva una peticin al servidor usando el protocolo HTTP/1.1 enva una cabecera del tipo host: nombre_de_un_host con la que Apache2 puede diferenciar las peticiones de los distintos hosts virtuales. Ahora ncecesitamos crear la directiva <VirtualHost> para cada host diferente que se quiera alojar en el servidor, los parmetros de configuracin (Ip:Puerto) de VirtualHost tienen que coincidir con los de NameVirtualHost.
<VirtualHost *:80 >

Dentro de cada bloque <VirtualHost>, necesitar como mnimo una directiva ServerName para indicar qu host se sirve y una directiva DocumentRoot para indicar dnde estn los contenidos a servir dentro del sistema de archivos. El servidor web existente (host virtual por defecto) dispone de su configuracin como host virtual en el archivo /etc/apache2/sites-available/default. Supongamos que ya se est sirviendo el dominio www.iesrioja.red y se quiere aadir el host virtual www.aparioja.red, que apunta a la misma direccin IP. Crear un nuevo sitio virtual con esta configuracin y activarlo.
<VirtualHost *:80 > ServerName www.aparioja.red DocumentRoot /var/www/aparioja <Directory /var/www/aparioja> Options FollowSymLinks AllowOverride None </Directory> </VirtualHost>

No olvidar que si no tenemos DNS hay que ditar el archivo /etc/hosts y aadir la lnea:
127.0.0.1 localhost www.aparioja.red www.iesrioja.red

Al poner NameVirtualHost *:80 se le est diciendo a Apache2 que se activan los hosts virtuales basados en nombre para en esa ip y puerto. Las directivas <VirtualHost *:80>...</VirtualHost> definen los hosts virtuales de nuestro servidor. En cada uno de estos bloques, se le indica a Apache2 el DocumentRoot del host y el ServerName con el que deben responder. En caso de acceder de otra manera al servidor habr un virtual host que acte por defecto, normalmente el primero que est especificado. Si queremos configurar un virtual host 'oficial' o por defecto se puede hacer definindolo de la siguiente manera: <VirtualHost _default_:80>

Hosts Virtuales basados en Puerto

Jos Mara Moreno Moya

APACHE2.0

20

Si queremos que apache funcione en dos puerto diferentes y que responda diferente segn el puerto crearemos dos VirtualHost cada uno con su configuracin de la manera siguiente.
<VirtualHost *:80 > ServerName www.iesrioja.red DocumentRoot /var/www/iesrioja </VirtualHost> <VirtualHost *:8080 > ServerName www.aparioja.red DocumentRoot /var/www/aparioja </VirtualHost>

Adems es indispensable, aadir en el fichero ports.conf el nuevo puerto con:


Listen 8080

Hosts Virtuales basados en IP


La tcnica de hosts virtuales basada en direcciones IP requiere que el computador que alberga los dos hosts tenga dos direcciones IP diferentes (dos interfaces de red). En este caso cada seccin VirtualHost hace referencia a cada una de las direcciones.
<VirtualHost 192.168.1.1> ServerName www.iesrioja.red DocumentRoot /var/www/iesrioja </VirtualHost> <VirtualHost 192.168.1.2> ServerName www.aparioja.red DocumentRoot /var/www/aparioja </VirtualHost>

SSL EN APACHE
Introduccin
Una pgina web segura o un sitio web seguro es un sitio web que utiliza el protocolo https en lugar de utilizar el protocolo http.

Jos Mara Moreno Moya

APACHE2.0

21

El protocolo https es idntico al protocolo http, pero aadiendo el protocolo SSL (Secure Socket Layer) que permite establecer de forma sencilla, conexiones seguras cifrando la informacin trasmitida entre cliente y servidor. Los algoritmos de cifrado utilizados renen las caractersticas necesarias para garantizar que la informacin que sale desde el servidor hacia el cliente, est cifrada y solamente pueda ser descifrada por el cliente y que la informacin que sale desde el cliente hacia el servidor, est cifrada y solamente pueda ser descifrada por el servidor. Para comprender mejor esta parte hay que conocer algunos trminos de criptografa, como clave pblica y privada, certificados digitales y Autoridades de Certificacin. Puedes aprender sobre ello en el siguiente Anexo de Criptografa

Requisitos previos
Para que apache2 funcione con SSL, necesita dos cosas.

Por un lado un mdulo llamado ssl, que viene con la instalacin pero que habr que activarlo. Por otro lado necesitaremos generar nuestras claves (privada y pblica) y el certificado (que en este caso nos lo firmaremos nosotros mismos), para ello necesitamos tener instalado el paquete openssl en nuestra distribucin. Podemos comprobar si est instalado con dpkg -l | grep opensll, y si no est lo instalamos con aptitude install openssl.

Generar el certificado
Para que nuestro servidor pueda servir pginas seguras con el protocolo https, necesita un certificado. Dicho certificado permitir que nuestro servidor utilizar cifrado asimtrico para intercambiar las claves de cifrado con los clientes, antes de iniciar una trasmisin segura de informacin. Inicialmente, el cliente deber aceptar el certificado del servidor, ya que generaremos un certificado autofirmado. Si queremos evitarlo, deberamos contratar un certificado a una entidad certificadora confiable, pero tiene un coste que no merece la pena soportar en un entorno educativo. Para generar nuestro certificado autofirmado, ejecutaremos los siguientes comandos (antes exista un script llamado apache2-ssl-certificate, ahora hay que usar directamente las funciones de openssl):. Lo primero que vamos a hacer es crear una carpeta ssl en /etc/apache2 para situar all todos los archivos que generamos y desde all ejecutamos los siguientes comandos (necesitaremos permisos de root puesto que estamos escribiendo en una carpeta del sistema): sudo mkdir /etc/apache2/ssl
// Generar una clave privada $ sudo openssl genrsa -out iesrioja.key 1024 // Generar el certificado

Jos Mara Moreno Moya

APACHE2.0

22

$ sudo openssl req -new -key iesrioja.key -out iesrioja.csr

Tendremos que responder a algunas preguntas sobre nuestra ubicacin geogrfica, nombre de nuestra organizacin,..., respondemos como queremos, a la ltima opcin de password la dejamos en blanco si no queremos que nos la pida cada vez que lo usemos.
// Generar certificado autofirmado $ sudo openssl x509 -req -days 360 -in iesrioja.csr -signkey iesrioja.key -out iesrioja.crt

De esta manera tendramos tres ficheros: iesrioja.key con la clave privada, iesrioja.csr con un certificado sin firmar y iesrioja.crt con el certificado firmado por nosotros mismos. Estas extensiones se ponen por diferenciar, aunque su formato de guardado es el formato pem. Tambin podemos generar la clave y el certificado autofirmado (que es lo que se usa) de un solo comando:
// Generar clave privada y certificado autofirmado directamente $ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout clave.pem -out certi.pem

El siguiente paso ser configurar un servidor virtual para que utilice dicho certificado.

Crear servidor virtual seguro en apache2


Hemos visto como crear hosts virtuales basados en puerto, bsicamente esto es lo que hay que hacer usando el puerto 443 y configurando algunas directivas de seguridad en este virtual host. Adems, en la instalacin de apache viene un site llamado default-ssl (en sites-availabes) preconfigurado ya con todo lo bsico para activarlo rpidamente (si queremos activarlo para una carpeta distinta de /var/www, hay que crear la carpeta e intruducir la web all). As pues, editamos ese fichero y nos aseguramos que est la siguiente configuracin, que es la que caracteriza a un sitio seguro.
<VirtualHost _default_:443> DocumentRoot /var/www SSLEngine On SSLCertificateFile /etc/apache2/ssl/iesrioja.crt SSLCertificateKeyFile /etc/apache2/ssl/iesrioja.key <Directory "/var/www"> Options Indexes FollowSymlinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost>

Jos Mara Moreno Moya

APACHE2.0

23

Estas son las directivas esenciales para que funcione mediante certificado, pero hay otras muchas directivas. Por ejemplo si queremos que un directorio slo funcione con SSL hay que poner dentro de Directory la directiva SSLRequireSSL. Otra opcin puede ser pedir un certificado al cliente con SSLVerifyClient require. El protocolo https utiliza el puerto 443, por lo tanto, tendremos habilitar dicho puerto para que apache lo utilice:
// Aadir en /etc/apache2/ports.conf (Est funcionar si est activado el modulo ssl) Listen 443 configurado para

Posteriormente debemos habilitar el mdulo ssl del servidor apache:


// Habilitar el mdulo ssl $ sudo a2enmod ssl

Habilitamos el sitio ssl:


// Habilitar el sitio que hemos modificado o creado $ sudo a2ensite default-ssl

Finalmente reiniciamos el servidor apache:


// Reinicio de apache $ sudo /etc/init.d/apache2 restart

Probando el acceso a la pgina web segura


Para acceder a las pginas seguras de nuestro servidor web, tecleamos desde el navegador 'https://www.iesrioja.red'. Lo primero que se muestra es la alerta de seguridad que nos indica que el certificado no est emitido por una CA en la que confiamos:

Jos Mara Moreno Moya

APACHE2.0

24

Si pulsamos sobre Entiendo los riesgos, y luego sobre Aadir excepcin, el botn 'Examinar certificado', nos aparecer una pantalla donde podemos obtener el certificado y verlo. Veremos la informacin tanto del certificado como de la entidad certificadora que lo firma:

Jos Mara Moreno Moya

APACHE2.0

25

Si aceptamos el certificado significa que, a pesar de estar firmado por una entidad certificadora que no es de confianza para el navegador (lo hemos firmado nosotros mismos), lo aceptamos. Tendremos que indicar al navegador si aceptamos el certificado para siempre o solo para ahora.

Ahora ya tenemos acceso a la web segura mediante el protocolo https lo que nos garantiza que la informacin de la pgina antes de salir del servidor, ha sido cifrada y por tanto la trasferencia de datos desde el servidor a nuestro navegador se ha producido de forma segura. Al llegar a nuestro navegador, se han descifrado los datos. Los navegadores indican que es segura de diferentes formas, con candado, con colores,...

OTRAS OPCIONES DE APACHE


Apache permite una variedad enorme de opciones y configuraciones. Hemos visto algunas de ellas, ahora veremos otras que tambin se usan bastante.

Control de Acceso
Es posible permitir el acceso a los usuarios en funcin de la mquina desde la que hacen las solicitudes de informacin. Para ello se utilizan las directivas Allow y Deny que permiten y rechazan, respectivamente, el acceso en funcin del nombre o la direccin de la mquina desde la que se hace la solicitud de informacin. Estas directivas van normalmente dentro de la seccin <Directory>, en la seccin <Files> o en los archivos .htaccess
Allow from 88.20.10.1

Denegar el acceso desde la red 192.168.100.0

Jos Mara Moreno Moya


Deny from 192.168.100

APACHE2.0

Deny from 192.168.100.0/24

26

Denegar el acceso desde el pc1 del dominio iesrioja.red


Deny from pc1.iesrioja.red

Para una correcta configuracin, hay que prestar especial atencin a la directiva Order, que indica en qu orden se aplican estas directivas. Por defecto, Order tiene valor Deny,Allow. Todo cliente que no se concrete en las directivas (Allow y Deny) ser permitido. Si Order se pone en Allow,Deny. Todo cliente que no se concrete en las directivas (Allow y Deny) ser denegado. Todos los host del dominio iesmalo.red se permiten, todos los dems denegados
Order Deny,Allow Deny from all Allow from iesmalo.red

Todos los host de la red 10.0.0.0 se permiten excepto las ip 10.0.0.3 y a la ip 10.0.0.5 que se deniegan. Todos los host de las dems IP son denegados por defecto puesto que Order est en Allow,Deny
Order Allow,Deny Allow from 10.0.0.0/8 Deny from 10.0.0.3 10.0.0.5

Autenticacin
La autentificacin se basa en el principio de que el cliente envia su nombre y su password al servidor, un modulo de Apache chequea si las credenciales son correctas, y si lo son devuelve la pgina solicitada. Si el usuario no tiene permitido el acceso o el password no es vlido, el servidor Apache devuelve un cdigo de estado 401 (Acceso no autorizado). Para utilizar los mecanismos proporcionados por Apache para el proceso de autenticacin deben esta activado el mdulo correspondiente al mtodo que se vaya a utilizar. Para autenticacin bsica: $ sudo a2enmod auth_basic. Otros mtodos son digest o mysql.

Jos Mara Moreno Moya

APACHE2.0
una

27 seccin

Para configurar la autenticacin habr que aadir <Directory>...</Directory> por cada directorio que se quiera proteger:

<Directory "/var/www/privado"> AuthType Basic AuthName "Este directorio es privado, introduce tus datos" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Directory>

AuthType
Indica cul es el tipo de autenticacin que va a utilizar. Puede ser Basic (transferencia sin cifrar) o Digest (cifrada).
AuthType Basic

AuthName
Especifica un nombre del dominio para el cual se solicita el acceso, este nombre figurar en la pantalla donde se pide la clave, y a su vez servir para que el cliente identifique la contrasea que debe utilizar al enviar una peticin a un rea determinada.
AuthName "Este directorio es privado, introduce tus datos"

AuthUserFile
Ubicacin del archivo que contendr los nombres de usuario y contraseas usadas en la autenticacin HTTP bsica. Se suele llamar .htpasswd.
AuthUserFile /etc/apache2/.htpasswd

Require
Selecciona qu usuarios autenticados pueden acceder a un recurso Slo el usuario juan puede acceder al recurso
Require user juan

Slo los usuarios del grupo oficina puede acceder al recurso

Jos Mara Moreno Moya


Require group oficina

APACHE2.0

28

Cualquier usuario dado de alta en el sistema puede acceder


Require valid-user

Crear fichero de usuarios para autenticar


Para poder usar la autenticacin de usuarios, hay que tener crear un fichero con los usuarios y sus contraseas. Elegimos un nombre y una ruta (que deber coincidir con la directiva AuthUserFile y lo creamos. Se puede hacer con un comando que tiene apache para ello:
// Crear el fichero y aadir el primer usuario. Pedir la contrasea. $ sudo htpaswd -c /etc/apache2/.htpasswd usuario1 // Aadir usuarios al fichero. Pedir la contrasea. $ sudo htpaswd /etc/apache2/.htpasswd juan

Tambin se puede hacer con algn editor: sudo vim /etc/apache2/.htpasswd Dentro del fichero escribiremos los usuarios y contraseas siguiendo este formato:
usuario1:contrasea juan:1234 perico:perico#57

IMPORTANTE En las ltimas versiones de apache se requiere que estas contraseas estn cifradas para que funcione, se pueden conseguir las contrseas cifradas en varios sitios como en http://home.flash.net/cgi-bin/pw.pl o en http://www.htaccesstools.com/htpasswd-generator/ Quedando el fichero:
usuario1:/g42H/M0YGX2. juan:qvApimGRgQOyo perico:cKH2sP2WY6XIE

Si se quiere trabajar con grupos, se podra hacer con la directiva AuthGroupFile y un fichero /etc/apache2/.htgroup con la sintaxis
grupo1: usuario1 usuario2 amigos: juan perico

Jos Mara Moreno Moya

APACHE2.0

29

Redirecciones
Se puede configurar un directorio para que l y su contenido sean redirigidos de modo transparente hacia cualquier otra direccin. Para ello se utiliza la directiva Redirect:
Redirect 301 /blog http://miblog.wordpress.com/

En el ejemplo se indica que si un usuario trata de acceder al subdirectorio /blog en el servidor, Apache2 le deber redirigir hacia http://miblog.wordpress.com/. El nmero 301 corresponde al mensaje del protocolo HTTP para indicar que la redireccin es permanente.

Archivos .htaccess
Apache, adems de la configuracin por medio del fichero apache2.conf (y los incluidos en este), se puede configurar de otra manera, por medio de ficheros .htacces, estos ficheros los puede generar cualquier usuario en un directorio de los que son mostrados por apache. Gracias a esto no hay que dar acceso a la configuracin general (por defecto slo puede configurar el root) y cualquier usuario que pueda escribir en el directorio se podr configurar su fichero .htacces. Hay que tener en cuenta que para permitir la opcin de estos ficheros, es necesario el permiso por parte del administrador por medio de la directiva AllowOverride que con All permite reescribir todo tipo de configuracin con .htaccess, con none ninguna y con otras directivas se especifica que podr incluir estos ficheros. Estos ficheros son muy usados en los hosting virtuales que alquilamos en Internet, no tenemos acceso al servidor Apache, pero si tenemos acceso por ftp a sus carpetas, as que podemos configurar ciertas cosas. .htaccess es un archivo de texto (oculto en los sistemas linux) que contiene una serie de directivas para el servidor Apache. Cuando un cliente 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 estas reglas antes de proceder con la peticin, es decir, se aplican las normas especificadas al directorio en el que se encuentre .htaccess y los directorios por debajo de l. Se puede configurar gran cantidad de cosas, y el lenguaje, las directivas son las mismas que hemos aprendido. Slo hay que crear un fichero .htaccess, con las directivas elegidas dentro y copiarlo al directorio a configurar.

Proteger con usuario y contrasea

AuthType Basic

Jos Mara Moreno Moya

APACHE2.0

30

AuthName "Este directorio es privado, introduce tus datos" AuthUserFile .htpasswd Require valid-user

Redireccionar el trfico web


Redirect /index.html http://www.servernuevo.red/index.html

Denegar el acceso a una direccin IP


Order deny,allow Deny from 192.168.0.17 Allow from all

Impedir el listado del contenido de un directorio


Options -Indexes

No mostrar www
Options +FollowSymlinks RewriteEngine on RewriteCond %{http_host} ^www\.iesrioja\.red[nc] RewriteRule ^(.*)$ http://iesrioja.red/$1 [r=301,nc]

LAMPP:LINUX+APACHE+MYSQL+PH P+PHPMYADMIN
Para poder aprovechar al mximo las caractersticas del servidor web apache, es muy conveniente que pueda ejecutar scripts en servidor y pueda acceder a bases de datos. Las aplicaciones web ms interesantes como los gestores de contenidos para crear y mantener sitios web dinmicos, wikis, blogs, foros-web, repositorios de arhivos, etc... requieren de lenguaje script en servidor y sistema gestor de bases de datos. En el desarrollo web del mundo Linux el lenguaje script en servidor ms utilizado es el lenguaje php y el sistema gestor de bases de datos ms utilizado es mysql. Phpmyadmin es una excelente herramienta para administrar bases de datos mysql.

Jos Mara Moreno Moya

APACHE2.0

31

PHP
Introduccin
PHP es un lenguaje de programacin interpretado, de alto nivel, ejecutado en el servidor y usado frecuentemente para la creacin de contenido para webs dinmicas. Su cdigo est embebido en el cdigo HTML y al ser ejecutado en el servidor PHP nunca es enviado al cliente. El servidor es quien procesa la peticin del cliente ejecutando el cdigo PHP y devolviendo el HTML generado.

Instalacin de PHP
Para instalar PHP en nuestro servidor la haremos desde los repositorios. El paquete a instalar depende de la versin que deseemos instalar. La ltima versin de php a fecha de hoy es la 5.
// Instalacin de php5 para apache 2 # $ sudo aptitude install php5

IMPORTANTE Si todo va bien, al instalar php5 tambin se instalar el paquete libapache2-mod-php5, que es el encargado de "introducir" el soporte php5 dentro de apache. Si al poner el comando nos da algn tipo de aviso, podemos usar el comando
sudo aptitude install libapache2-mod-php5

El problema es que apache est instalado con el modelo multiproceso $apache2mpm-worker y al instalar php5 tiene que desinstalar este modelo y usar $apache2mpm-prefork. Aunque aptitude de algn aviso de peligro, no pasa nada Apache funciona con los dos perfectamente y slo cambia algo el rendimiento, cosa que para nuestros ejemplos no tienen importancia. Adems, automticamente se configura creando los archivos necesarios en la carpeta de mdulos disponibles de apache (/etc/apache2/mods-available), los enlaces necesarios para habilitarlos en la carpeta de mdulos habilitados de apache (/etc/apache2/mods-enabled) y el fichero de configuracin en /etc/php5/apache2/php.ini. Una muy buena forma de saber si tenemos soporte php y adems cmo est configurando es haciendo lo siguiente: Creemos un nuevo archivo de la siguiente manera vim /var/www/info.php, y escribimos las siguiente lnea.<?php phpinfo(); ?> . Ahora podemos ir a nuestra pgina webhttp://localhost/info.php y all nos tendra que salir informacin sobre la configuracin de php.

Jos Mara Moreno Moya

APACHE2.0

32

Configuracin de PHP
El archivo de configuracin de php5 es el archivo /etc/php5/apache2/php.ini, dos parmetros destacables a configurar son:

Safe Mode = Off (Modo Seguro. Si el Modo seguro est activado, se deshabilitan todas las funciones del php consideradas peligrosas. Para servicios de hosting se recomienda activar el modo seguro.) Display errors = On (Mostrar Errores. Muestra los errores en las mismas pginas, cuando les haya.

MySQL
Introduccin
MySQL es un SGBDR (Sistema Gestor de Bases de Datos Relacional) muy completo y muy utilizado hoy en da sobre todo en los hosting en Internet. MySQL se ofrece con licencia GNU GPL y es multiplataforma. Si disponemos de un servidor web con soporte php y base de datos mysql, tendremos la arquitectura ideal para crear un portal dinmico utilizando gestores de contenidos como Joomla, drupal o Typo3, as como aplicaciones web orientadas al trabajo colaborativo y al desarrollo rpido de contenidos como Wikis y Blogs.

Instalacin de mysql
Para la instalacin del servidor y el cliente de mysql en su ltima versin, basta con instalar el metamaquete mysql-server, el cual instala la ltima versin disponible de mysql. Durante la instalacin nos pedir que elijamos la contrasea del usuario root para la base de datos, es decir el usuario que podr manejar toda la configuracin de la base de datos.
// Instalacin de mysql $ sudo aptitude install mysql-server

Arranque y parada del SGBD mysql


MySQL es un servicio ms, al igual que apache, y como tal est escuchando en un puerto (normalmente 3306) a futuras conexiones. El servidor de datos mysql, al igual que todos los servicios en Debian, dispone de un script de arranque y parada en la carpeta /etc/init.d.
// Iniciar o reiniciar el servidor mysql

Jos Mara Moreno Moya

APACHE2.0

33

$ sudo /etc/init.d/mysql restart // Parar el servidor mysql $ sudo /etc/init.d/mysql stop

Configuracin del SGBD mysql


El archivo de configuracin de mysql es el archivo: /etc/mysql/my.cnf En dicho archivo se configuran aspectos generales como la contrasea, el puerto a utilizar y algn otro aspecto pero para hacer un uso normal de mysql, no es necesario realizar ninguna modificacin del archivo original. Adems mysql se puede administra desde lnea de comandos, bastara con poner mysql -u root -p, introducir la password que hemos puesto en la instalacin y tendramos acceso a toda la base de datos, para crear usuarios, bases de datos, tablas....

phpMyAdmin
Introduccin
phpMyAdmin es una herramienta escrita en PHP para llevar la administracin de MySQL va web. Permite crear y eliminar BBDD, crear, eliminar y modificar tablas, borrar, editar y aadir campos, ejecutar cualquier sentencia SQL, administrar claves y privilegios, etc. Disponible bajo la licencia GPL.

Instalacin de phpMyAdmin
PhpMyAdmin tambin est en los repositorios de Ubuntu, as que bastar con poner:
// Instalacin de phpMyAdmin $ sudo aptitude install phpmyadmin

Entre otros paquetes, se instala uno muy importante, es el paquete php5-mysql , que es necesario para que cualquier aplicacin escrita en php pueda acceder a una base de datos mysql. Si no queremos instalar phpMyAdmin, no hay que olvidar instalar este paquete. La instalacin necesitar la contrasea del usuario root de la base de datos para poder acceder a ella y crear las tablas necesarias. Para poder manejar phpMyAdmin se necesita que el directorio donde se ha copiado, normalmente /usr/share/phpmyadmin sea un directorio que se muestre en Apache.

Jos Mara Moreno Moya

APACHE2.0

34

Lo que hace la instalacin normalmente es aadir al sitio por defecto de apache, un alias de tal manera que al poner la URL http://ip-del-servidor-web/phpmyadmin/ se muestre el directorio de phpMyAdmin. Si esta direccin no funciona habr que configurar Apache para mostrar phpMyAdmin. En el fichero /etc/phpmyadmin/apache.conf est toda la configuracin necesaria. Basta con copiar esta configuracin a un sitio activo en apache, o crear uno nuevo con ella. Tambin se puede crear un simple enlace en el directorio de un sitio activo a la carpeta /usr/share/phpmyadmin. Por ejemplo: ln -s /usr/share/phpmyadmin /var/www/Al acceder nos pide un usuario y contrasea con privilegios para gestionar mysql. Al manejo es bastante sencillo. El archivo de configuracin de phpmyadmin es el archivo: /etc/phpmyadmin/config.inc.php, en l, estn los parmetros que permitirn a phpmyadmin conectar con mysql como el host, puerto y autenticacin.

Potrebbero piacerti anche