Sie sind auf Seite 1von 303

Apache

AULA
MENTOR
educacion.es
Nipo: 030-12-321-5

Autora:
Elvira Mifsuf Taln

Coordinacin pedaggica:
Aula Mentor

Ilustracin de portada:
Mara Guija Medina
Curso Mentor Apache

Apache
Unidad 1: Introduccin a Apache


Enestecaptuloaprenders:

elconceptodeservidorwebysusfunciones.
elorigenyevolucindelservidorwebApache2ysuscaractersticasmasrelevantes.
elprotocoloHTTPcomoconjuntodenormasqueregulanelmecanismodeintercambiode
mensajesentreelservidorwebyelclienteweb(navegador).
autilizarlostiposMIMEparalainterpretacindelcontenidodelosarchivostransferidos
entreservidorycliente.

Materialcomplementario:

1. Actividadesdelaunidad.ArchivoU1_Actividades.pdf
2. Mapaconceptualdelcaptulo.ArchivoU1_mapaconceptual.png
3. Glosariocompletodelcurso.Archivoglosario.pdf

1 de 31
Curso Mentor Apache

Introduccin
Objetivos

Conocerelconceptodeservidorwebyculessonsusfunciones.

Conocerlosservidoreswebmasimportantesy/omasutilizados.

EstudiarlascaractersticasmasrelevantesdelservidorwebApache.

ConocerelprotocoloHTTP,susfuncionesydiferentesversiones.

ConocerlostiposMIMEysusfunciones.

Conocimientos previos

Eslaprimeraunidady,porlotanto,norequieredelalumnoningnrequisitoprevio.nicamentetenerladisponibilidadnecesaria
paraadquirirlosconocimientostericosqueconstituirnlabasedetodoelcurso.
Aunquelaunidadparezcamuydensayconmuchainformacinvariada,esimportantequeseasimilecorrectamente.

Contenidos

Unidad1:IntroduccinaApache
A. Ubuntu y Windows

1. Quesunservidorweb?
1. ObjetivoyEsquemadefuncionamiento
2. Accesoalservidorweb
3. Comparativaentreservidoresweb
4. IntroduccinaApache2
5. Unpocodehistoria
6. CaractersticasgeneralesdelservidorApache2
7. Apache:servidorweb
8. ElprotocoloHTTP
9. TiposMIME

B. Fin de unidad

1. Glosario
2. Fuentesdeinformacin
3. Resumenfinal
4. Autoevaluacin

2 de 31
Curso Mentor Apache

Qu es un servidor web?
Definicin

Lawikipediadefineelservidorwebcomo:
UnprogramaqueimplementaelprotocoloHTTP(hypertexttransferprotocol).Esteprotocoloestdiseadoparatransferirloque
llamamos hipertextos, pginas web o pginas HTML (hypertext markup language): textos complejos con enlaces, figuras,
formularios,botonesyobjetosincrustadoscomoanimacionesoreproductoresdesonidos.

Arquitectura del servidor web

Laarquitecturautilizadaescliente/servidor,esdecir,elequipoclientehaceunasolicitudopeticinalequiposervidor,ysteatiende
dichasolicitud.
Enelequipoclienteseejecutaunaaplicacinllamada'navegadoroclienteweb'que:

sirvedeinterfazconelusuario:atiendesuspeticiones,muestralosresultadosdelasconsultasyproporcionaalusuario
unconjuntodeherramientasquefacilitansucomunicacinconelservidor.
secomunicaconelservidorweb:transmitelaspeticionesdelosusuarios.

Enelequiposervidorlanicatareaes:

atenderlaspeticionesrecibidasdesdelosnavegadoresoclienteswebyhacerlodeformaeficienteysegura.Estees
elcasodelosservidoreswebsegurosquesolicitanunnombredeusuarioyunacontraseaparapermitirelaccesosloa
usuariosregistradosyportanto,conpermisoparavisualizarlapgina/s.

Unpasomasenlaseguridadproporcionadaporlosservidoreswebsebasaenelestablecimientodeconexionescifradasconel
navegador.Esteniveldeseguridadesbsico,porejemplo,paralastransaccionescomercialesrealizadasdesdeInternet.

Saber ms ... sobre la arquitectura de un servidor web

Busca en la web informacin general sobre servidores web.

3 de 31
Curso Mentor Apache

Objetivo y Esquema
Objetivo del servidor web

Elobjetivodeunservidorwebesservirosuministrarpginaswebalosclienteswebonavegadoresquelassolicitan.
Ejemplo:

1. UnusuariodesdeelnavegadorFirefox,alhacer'click'sobreunenlaceaunapginawebestenviandounasolicitudal
servidorwebquealojadichapginaparaqueselamuestre(esosellamaservirlapgina).
2. Elservidorwebsilaencuentralaenvaysinolaencuentradevuelvealclienteunmensajedeerror.
3. ElclientecuandorecibelapginawebinterpretaelcdigoHTMLmostrandolasfuentes,colores,imgenesquela
componen,etc,deformacorrecta.

Pero el servidor web, adems de servir pginas web HTML estticas, tambin permite la ejecucin de una serie scripts en
diferenteslenguajesdeprogramacin,queproporcionandinamismoalaspginasweb.Estoslenguajesson:PHP,CGI,appletsde
Java,etc.

Esquema

Lafigurasiguientemuestraelesquemadefuncionamientodeunservidorweb.
Enellaobservamoslostreselementosbsicosquecomponenlaspeticioneswebdinmicas:

elclientequehacelapeticin
elservidorqueatiendelapeticin
ylosdatossolicitadosmediantelapeticin

4 de 31
Curso Mentor Apache

Saber ms ... sobre painas web

1. Para conocer mejor el concepto de pgina web puedes acceder a http://es.wikipedia.org/


2.Hayalgunadiferenciaentrepginawebysitioweb?
Enestareferenciahttp://www.masadelante.com/faqs/sitio-webpuedescomprobarladiferenciaentreambosconceptos.

5 de 31
Curso Mentor Apache

Acceso al servidor web


Acceso desde un navegador web

Paraqueelnavegadorpuedallegaralservidorweb(yaseaenunaredlocaloenInternet)elservidordebetenerasignadauna
direccinIP(InternetProtocol)nicaqueidentificaelequipoenlared.
Cuandoelnavegadorhaceunapeticindepginaalservidorwebutilizaunnombrequeidentificaalservidoryestasolicitudse
transmiteaunservidorDNS.steresuelveelnombreydevuelveladireccinIPquecorrespondealnombre.
Lasolicituddelnavegador,entonces,seencaminaalservidorwebcorrecto.
La informacin que el usuario proporciona al navegador para conectar con un servidor web se llama URL (Uniform Resource
Locators).
UnaURLdesolicituddeunrecursoconstade:

1. Protocoloautilizar:http,https,ftp,ftps,...
2. //:hacelasvecesdeseparador
3. Servidor:esladireccinIPoelnombredelservidor(FQDN)quecontieneelrecurso.
4. Ruta_al_recurso:directorioysubdirectoriosdelsitiowebdondeestubicadoelrecurso
5. Recurso:recursoalquesequiereacceder.

PorlotantounaURLindicalaformadeaccederaunrecursoutilizandoundeterminadoprotocolodecomunicacin.
Porejemplo:laURLhttp://recursostic.educacion.es/observatorio/web/es/home

Saber ms ... sobre algunos trminos

FQDN (Fully Qualified Domain Name, Nombrededominiototalmentecualificado) es un nombre que incluye el nombre del equipo y
el nombre del dominio asociado a esa mquina

6 de 31
Curso Mentor Apache

Comparativa entre servidores web


Comparativa

Existenmultituddeservidoresweb,perolosdosmasconocidoseimportantesporsusnivelesdeimplantacinsonApacheeIIS
(InternetInformationService).
Normalmente se asocia Apache a entornos Unix/GNU Linux (existen versiones de Apache para Windows) y IIS para entornos
Windows(noexistenversionesparaGNULinux).
Sinentrarendetallesdelascaractersticastcnicassepuededecirque:

Apache IIS

Essoftwarelibre Essoftwarepropietario(Microsoft)

Esmodular Esmodularapartirdelaversin6

UtilizadoenlosgrandesservidoresrazdeInternet Utilizadoenentornoscorporativos

Ejecutado desde un usuario diferente del superusuario root Ejecutadodesdeelpropiousuarioadministradordelsistema


delsistema hastalaversin6

LaimplantacindecadaunodeellossepuedeverenlafiguradelepgrafeEvolucin.
ComprobarcomoelporcentajedeutilizacindeApacheesbastantesuperioraldeIIS.

Evolucin

Lafigurasiguientemuestralaimplantacindediferentesservidoreswebysuevolucineneltiempo.

Developer February 2011 Percent March 2011 Percent Change

Apache 171,195,554 60.10 179,720,332 60.31 0.21

7 de 31
Curso Mentor Apache

Microsoft 57,084,126 20.04 57,644,692 19.34 -0.70

Google 14,454,484 5.07 15,161,530 5.09 0.01

Lighttpd 1,953,966 0.69 1,796,471 0.60 -0.08

Esta informacin actualizada, incluida la imagen, se puede obtener dehttp://news.netcraft.com/archives


/web_server_survey.html

8 de 31
Curso Mentor Apache

Introduccin a Apache2
Qu es Apache?

ElservidorHTTPApache2esunservidorwebdesoftwarelibredesarrolladoporlaApacheSoftwareFoundation
(ASF).Elproductoobtenidodeesteproyectoesunservidordecdigofuentecompleto,descargableygratuito.
Lapginawebdelproyectoeswww.apache.org.
Apache2esrobustoyconunciclodedesarrollomuyrpidograciasalagrancantidaddecolaboradoresvoluntariosde
quedispone.
Estambinunservidorestable,eficiente,extensibleymultiplataforma.

Estable:esunaconsecuenciadesuprobadarobustezqueimpidecadasocambiosenelservidorinesperados.
Flexible y eficiente:escapazde trabajarcon elestndarHTTP/1.1 (RFC2616)ycon la mayorparte de las
extensioneswebqueexistenenlaactualidad,comosonlosmdulosPHP,SSL,CGI,SSI,proxy,...
Extensible:disponedegrancantidaddemdulosqueamplansufuncionalidad.
MultiplataformayaqueestdisponibleparadiferentesplataformascomoGNU/Linux,Windows,MacOS.

Desdeelao1996eselservidormsutilizadoenInternetyeselutilizadoenlossistemasGNU/Linux.Enconcreto,a
fechadeMarzode2011msdel60%delossitioswebdeInternetutilizanApache.

Busca el significado de los trminos...

SSL (Secure Sockets Layer)


SSI (Server Side Includes)

9 de 31
Curso Mentor Apache

Un poco de historia
Origen de Apache

En los comienzos de Internet hablar de 'servicio web' se limitaba a la publicacin de pginas en formato HTML
utilizandoelprotocoloHTTPsobreredesTCTP/IP.
Al poco tiempo de la aparicin de la Web un grupo de personas del Centro Nacional de Actividades de
Supercomputacin(NationalCenterforSupercomputingActivities,NCSA)delaUniversidaddeIllinois,creunservidor
web(HTTPdNCSA)quefueelmsutilizadohasta1994.Suprincipaldesarrollador,RobMcCool,abandonelNCSAy
elproyecto.
Peroapartirdeaquelmomentovarioswebmasterscomenzaronadesarrollardiferentes'parches'paraelcdigofuente
deesteservidorymedianteelcorreoelectrnicosincronizabansusaportaciones.Deestaformaaparecielproyecto
Apache,cuyonombresedebea:
APAtCHyserver

La primeraversin que aparecede Apacheesla 0.6en Abrilde 1995,que tom como puntode partidalaversin
httpd1.3deNCSA.
El proyecto evolucion muy rpidamente y en l tambin colaboraron desarrolladores de NCSA. La versin 1.0
apareciendiciembrede1995.YenunaopasaserelservidorwebmsutilizadoenInternetanivelmundial.
En 1998 se lleg a un acuerdo con IBM que permiti que Apache funcionara tambin en plataformas Windows
convirtindoseasenunaalternativaalservidorIIS(InternetInformationServer).
Enestosmomentosseesttrabajandoconversiones2.2.X,aunquetodavamuchosservidoreswebenproduccin
utilizanlaltimaversinmsextendidaqueesla1.3.33.LaltimaversindeApacheesla2.2.17(Abril2011).
Serecomiendautilizarlaversin2.2yaqueincluyenuevasfuncionalidades(http://httpd.apache.org/docs/2.2/es/). La
pginacorrespondientealadocumentacinencastellanoeslaindicada.

Licencia de Apache

RespectoalalicenciadeApache2estndisponiblessustrminosenlaURLhttp://httpd.apache.org/docs/2.2/en/license.html.
Enresumensepuededecirque,lalicencia:
Permite:

Descargar y usar libremente el software de Apache2, total o parcialmente, de forma personal, desde la empresa con
objetivosinternosocomerciales.
UtilizarelsoftwaredeApache2enpaquetesodistribucionesquecreeelusuario.

Prohibe:

RedistribuirpartesdelsoftwareincluidoenApache2sinelpermisoadecuado.

Requiere:

IncluirunacopiadelalicenciaencualquierredistribucinqueelusuariopuedahacerqueincluyaelsoftwaredeApache2.
DecirclaramentequeApachepertenecealaASF(ApacheSoftwareFoundation)encualquierdistribucinqueincluyael
softwaredeApache.

Norequiere:

Incluir los fuentes del software de Apache propiamente, o de cualquier modificacin que el usuario haga sobre el, en
cualquierdistribucinenelquepuedaserincluido.

10 de 31
Curso Mentor Apache

EnviarloscambiosqueelusuariohacealsoftwarealaApacheSoftwareFoundation.

11 de 31
Curso Mentor Apache

Caractersticas generales del servidor Apache2


Caractersticas

Incluimos un resumen de las caractersticas generales del servidor Apache2. Es posible que de muchas de ellas ahora no se
entiendasusignificado,peroalolargodelcursoseirn'descubriendo'.

1.CumpleelestndarHTTP/1.1

NuevaversindelprotocoloHTTPqueampliasufuncionalidadsegnsedetallaenesta
unidad.

2.Configurableyextensiblemediantemdulos

ExistegrancantidaddemdulosdisponiblesparaApache2ypermitelacreacinde
nuevosmdulosporpartedeusuariosprogramadores.EnlaUnidad4sehabla
extensamenteacercadelosmdulos.

3.Proporcionaelcdigofuenteconlicenciasinrestricciones.

Esgratuito,peroantetodoescdigofuentelibre,locualpermitesaberentodo
momentoquestamosinstalando.

4.Multiplataforma

ExistenversionestantoparaWindowscomoparaGNU/Linux.Elcursocontemplalas
plataformasWindows7yGNU/LinuxUbuntu.

5.Continuaactualizacinydesarrollo.

Ungrupodedesarrolladoresestcontinuamenterevisandoycorrigiendotodoslosfallos
deseguridadygeneralesdelaherramientaquevansurgiendoentreversiones.

6.BasesdedatosDBMparaautenticacindeusuarios.

Permitenlaproteccindedocumentosmediantecontraseasparaunagrancantidadde
usuarios.

7.Permitecrearpginaswebprotegidas

Medianteconstraseasconunnmerograndedeusuariosautorizados,sinsobrecargar
elservidor.

8.Permitepersonalizarlasrespuestasaerroresyproblemasdelservidor.
9.MltiplesdirectivasDirectoryIndex

Ejemplo: DirectoryIndex index.html index.cgi


que indica al servidor que debe enviar index.html o ejecutar index.cgi cuando se
accedaaunaURLqueseaundirectorio.

10.SinlmitefijosobreelnmerodeAliasyredirecciones

Puedenserdeclaradasenlosarchivosdeconfiguracin.

11.Negociacindecontenido

El servidor proporciona a los clientes web de diferentes tipos los documentos con el
mejorniveldecalidadqueestosclienteswebpuedensoportar.

12.Hostsvirtualestambinllamadosservidoresmulti-alojados.

Esto permite al servidor distinguir entre peticiones hechas a diferentes direcciones


IP/:puerto nombres (mapeados a la misma mquina). En la Unidad 5 se habla
extensamenteacercadeloshostsvirtuales.

12 de 31
Curso Mentor Apache

13.Archivoslogsconfigurables

SepuedeconfigurarApache2paragenerarlogsenelformatoquesequiera.

13 de 31
Curso Mentor Apache

Actividades
Actividad 1.1

Quediferenciahayentresoftwarelibreysoftwaregratuito?
Esimportantediferenciarambostrminos.
Software libre (Free Software) es un software que se publica bajo la licencia GPL (General Public Licence) y debe cumplir los
siguientesrequisitos:

Poderejecutarloconcualquierpropsito.
Podercopiarloydistribuirlo.
Podermodificarloparaqueseadapteatusnecesidadesolasdeuntercero.
Podermejorarloypublicarlasmejorasparaayudaralacomunidad.

Ytodoestosiempreycuandonoseviolelalicencia,quedicequesepuedecopiar,distribuirymodificarsiemprequeserespetela
autoradelaversinoriginaldelaobra.
Porelsoftwarelibressepuedecobrar.Muchasempresaslohacen,comoRed-Hat,IBM,...EltminoFreehacereferenciaaesas
libertadesquehemosmencionadonoasugratuidad.
Masinformacinenhttp://www.fsf.org/

Software gratuito (llamado normalmente Freeware) puede ser distribuido comercialmentey puede incluir en ocasiones el cdigo
fuente. Pero este tipo de software no es libre en el mismo sentido que lo es el software libre propiamente, a menos que se
garanticentodaslaslibertades.
Existenmuchasmodalidadesdefreeware.Enhttp://www.desarrolloweb.com/articulos/2460.phphayunadescripcindealgunasde
ellas.
Para completar la actividad puedes buscar en la web definiciones para Software privativo, Open Source y Shareware.

14 de 31
Curso Mentor Apache

Apache: servidor web


Tipos de contenidos

Apacheproporcionacontenidosalclientewebonavegadorcomo:

Pginasestticas:eselmodomsbsicoyantiguo,perotambineselusomsgeneralizadoquesehacedeunservidor
web.DeestaformasetransfierenarchivosHTML,imgenes,etcynoserequiereunservidormuypotenteenloqueal
hardwareserefiere.
Pginasdinmicas:lainformacinquemuestranlaspginasquesirveApachecambiacontinuamenteyaqueseobtienea
partirdeconsultasabasesdedatosuotrasfuentesdedatos.Sonpginasconcontenidodinmico,cambiante.

Apachefacilitalageneracindeestetipodecontenidosyaque:

1. DisponedesoportedelprotocoloHTTP/1.1yademsmantienelacompatibilidadconHTTP/1.0.
2. Permite la ejecucin de scripts CGI (Common Gateway Interface) que son programas externos que se llaman desde el
propioservidorcuandounapginalonecesita.
3. ElCGIrecibeinformacindesdeelservidorygeneracomosalidaunapginawebdinmicaquesevisualizaenelcliente
web. Este script puede escribirse en cualquier lenguaje de programacin siempre que siga las reglas del interfaz CGI.
NormalmenteseutilizaPerl.Estetipodemecanismoyanoseutilizaprcticamenteysedesaconsejasuusoyaquelanza
unprocesoexternoalservidorwebporcadapeticindelclienteyseralentiza.Ensulugarseestnutilizandolosservlets.
4. Permite la creacin de hosts virtuales y de esa forma atender varios sitios web en distintos dominios desde la misma
mquina.
5. Permiterestringirrecursosadeterminadosusuariosogruposdistintosdelosdelsistema.
6. Permitelautilizacindemdulos,comoPHP ymod_perl,parasustituirlafuncionalidaddelosCGIs.Estosmdulosal
estarincluidosenApachenorequierenlaejecucindeunnuevoprocesoporcadapeticin.
7. ConsoporteparaSSL(SecureSocketsLayer)quepermiteencriptacindedatosyasaseguralaprivacidadyfiabilidadde
lacomunicacinweb.Utilizacriptografaasimtricaycertificadosdigitalesparaintercambiarunaclavedesesinsimtrica.
8. Servlets y JSP en Java. Esta opcin se utiliza en servidores de aplicaciones como Tomcat, Jboss, Oracle IAS,
WebSpheredeIBMoBEAWebLogic.Suventajaeslaescalabilidadylaportabilidad,yaquesepuededesarrollarenJavay
luegosepuedeejecutarencualquiermquinavirtualcompatible.

Arquitectura en capas

Unmodelomuyutilizadoenlaactualidadeseldelaarquitecturaencapas.Unaarquitecturaentrescapasutilizaunacapa:

1. depresentacinqueserlainterfazgrficaconlaqueinteractaelusuario.
2. paraelservidordeaplicacionesqueindicarcmoseejecutanlosprocesos(modelo).
3. paraguardarlosdatos(servidordebasesdedatos).

Estemodeloencapascontrastaconelmodeloclsicoenelquesloexisteunservidorwebyunclientewebonavegador.

15 de 31
Curso Mentor Apache

Lafiguraanteriormuestraelmodelodeservidorwebentrescapas.
Masinformacinsobrelaarquitecturaentrescapasenwww.mhproject.org.

Qu es un servlet?

SegnlaWikipedia(http://es.wikipedia.org/wiki/Java_Servlet)losservletssonobjetosquecorrendentrodelcontexto
deunservidorwebyextiendensufuncionalidad.Porejemplo,Tomcatsloesuncontenedordeservlets.
LosservletsseutilizanparamanejarpeticionesdeclienteHTTP.
Por ejemplo, tener un servlet procesando datos enviados mediante un formulario HTML con datos relativos a una
compraelectrnica.Esteservletformarapartedeunsistemadepagoson-linequeaccederaaunabasededatosde
productos.
Unservletesunprogramaqueseejecutaenunservidorwebynotieneinterfazgrfico.
Elusomscomndelosservletsesgenerarpginaswebdeformadinmicaapartirdelosparmetrosdelapeticin
queenveelnavegadorweb.
Otrousodelosservletsesreenviarpeticionesaotrosservidoresyservlets.
Esimportanteconocerladiferenciaentreservletyportlet.

16 de 31
Curso Mentor Apache

Actividades
Actividad 1.2

Diferenciaentreservletyportlet
Unservletesunprogramaqueseejecutaenunservidorweb. Elusomscomndelosservletsesgenerarpginaswebdeforma
dinmicaapartirdelosparmetrosdelapeticinqueenveelnavegadorweb.
LosservletssepuedenconsiderarquesonherederosdelosantiguosCGIs.Atiendenpeticionesdeuncliente.Porejemplo,un
servletpuedeserelresponsabledetomarlosdatosdeunformularioHTMLyenviarlosaunabasededatosparasuactualizacin.
LosportletssoncomponenteswebbasadosenJavaqueprocesanpeticionesygenerancontenidodinmico.Losportalesusan
portletscomocomponentesdeinterfazdeusuarioqueproveendeunacapadepresentacinalossistemasdeinformacin.
Lassimilitudesentrelosportletsylosservletsson:

LosportletsyservletssoncomponenteswebdeJ2EE.
Ambossonmanejadosporcontenedores,quecontrolansuciclodevidayinteraccin.
Cadaunogeneracontenidodinmicosiguiendolaestructurapeticin/respuesta.

Lasdiferenciasentreellossonlassiguientes:

Losportletsgeneranfragmentosdecdigomientrasquelosservletsgenerandocumentoscompletos.
Adiferenciadelosservlets,losportletsnovinculandirectamentealURL.
Losportletstienenunesquemadepeticinmascomplejo,condostiposdepeticin:ActionyRender.
Losportletsseadhierenalaestandarizacindeunconjuntodeestadosymodosquedefinensucontextodefuncionamiento
ylasreglasderenderizacin.

Ademslosportletspuedenhacerotrascosasquenolopuedenhacerlosservlets,como:

Losportletstieneunmecanismomuchomssofisticadoparaaccederyguardarlainformacindelaconfiguracin.
Losportletstienenaccesoalainformacindelosperfilesdelosusuariosmsalldelainformacinbsicayelrol
proporcionadoenlaespecificacindelservlet.
Losportletstienendosformasdiferentesparaguardarobjetosdentrodelasesin.

Algunascaractersticasquenotienelosportletsson:

Losportletsnopuedenalterarelencabezadohttpofijarlacodificacindelarespuesta.
NopuedenaccederalaURLqueelclienteutilizparainiciarlapeticinenelportal.

Mas informacin en:

http://150.185.75.30/atiwiki/index.php/PORTLETS
http://es.wikipedia.org/wiki/Java_Servlet

17 de 31
Curso Mentor Apache

El protocolo HTTP
Qu es el protocolo HTTP?

18 de 31
Curso Mentor Apache

LassiglasHTTPsignificanHyperTextTransferProtocol,ProtocolodeTransferenciadeHiperTexto.
HTTPeselprotocolousadoenlastransaccionesdelaweb(www).
Elhipertextoeselcontenidodelaspginasweb,yelprotocolodetransferenciaeselconjuntodenormasmediante
lasqueseenvanlaspeticionesdeaccesoaunawebylarespuestadeesaweb.
HTTPsedefinecomounconjuntodenormasquepermitenlacomunicacinentreelservidorylosclientesyla
transferenciadeinformacin(archivosdetexto,imgenes,archivosdemsica,...)entreambos.
HTTPesunprotocolocliente/servidorcuyofuncionamientoestbasadoenelenvodemensajesyconsisteenque:

El usuario especifica en elcliente web (navegador) la direccin de la pgina que quiere consultar segn un
formatohttp://direccin[:puerto][path].
ElclientewebdecodificalainformacindelaURLdiferenciandoelprotocolodeacceso,IPonombrededominio
delservidor,puerto,...
Elclientewebestableceunaconexin(socket)conelservidorwebysolicitalapgina(mensajerequest).
Elservidorenvadichapgina(sinoexisteenvauncdigodeerror)yelclientewebinterpretaelcdigoHTML
recibido.Mensajeresponsedelservidor.
Secierralaconexin.

ElprotocoloHTTPesunprotocolosinestado,esdecir,norecuerdanadarelativoaconexionesanterioresalaactual.
Entonces:

SielservidorencuentraeldocumentoHTMLsolicitadoporelclienteweb,loenva.
Sinoexisteseenvauncdigodeerror.

Enamboscasos,yporserunprotocolosinestado,alfinalseliberalaconexin.
Porlotanto,laconexinslotieneladuracincorrespondientealatransmisindelapginasolicitada.
Paracadaobjetoquesetransfiereporlaredserealizaunaconexinindependiente.
Ejemplo:sielclientewebsolicitaunapginaqueincorporavariasimgenesserealizanlassiguientesconexiones:una
paraeldocumentoHTMLyunaporcadaunadelasimgenes.

19 de 31
Curso Mentor Apache

Qu son las cookies?

Para resolverestassituacionesde falta de memoriadelprotocolo,ademsde recordarla informacin de la sesin


actual(cuyainformacinsepierde,porejemplo,alcerrarelnavegador),seutilizanlascookies.
Lascookiessonarchivosdetextoqueseintercambianentreelclientewebyelservidor.
Cuando se solicite de nuevo un intercambio de informacin entre estos mismos puntos se tendr en cuenta la
informacinalmacenadaenesosarchivos.
Por ejemplo, un usuario navega por la web y va visitando pginas, validandose en unas, cambiando el idioma en
otras, haciendo bsquedas o simplemente guardando informacin de otras. Todas estas visitas dejan 'migas' que
identificannuestrodeambularporlawebydefinennuestraspreferenciasysonguardadasenestosarchivosdetexto
llamadascookies.

Mtodos del protocolo HTTP

ComoejemplodemtodosdisponiblesenHTTPrecordamosqueenlaversin1.0elclientewebpodasolicitardelservidorslo
tresoperaciones:

Mtodos Descripcin

GET obtenerinformacindelservidor,comopuedeserpedirunapginaalhacerunclicsobreun
enlace.Eslaoperacinqueseejecutacadavezquesepulsasobreunenlaceyseaccedeauna
pginaweb.

POST enviarinformacindesdeelclientewebalservidor,como,porejemplolosdatosintroducidos
enunformularioweb.

HEAD similaraGETperoslosepidelacabeceradelapginaconinformacincomoeltamao,
tipo,fechademodificacin,etc.

Porejemplo,paraunmensajedepeticinalservidorlaprimeralneatienelaestructura:

GET /index.html HTTP/1.0

quedebeinterpretarsecomounapeticin(GET)delarchivoindex.htmlqueesteneldirectoriorazcompatibleconlaversin1.0
delprotocoloHTTP.
Porejemplo,paraunmensajederespuestadelservidorlaprimeralneatienelaestructura:

HTTP/1.0 200 OK

quedebeinterpretarsecomolarespuestadepeticinservida(cdigo200)conxitoeindicalaversindeHTTPutilizada(1.0).El
textoOKestrelacionadoconelcdigodeerrorcorrespondiente.LalistadecdigosestdisponibleenlaUnidad2.
ElprotocoloHTTPv.1.1esmspotenteydisponedetrecemtodosdiferentes.
Segn sus creadores el protocolo HTTP/1.1 se puede describir como: "un protocolo de nivel de aplicacin orientado a
sistemasdistribuidos,paralacolaboracinehypermedia.Unprotocologenrico,sinestado,orientadoaobjetosyque
puede ser utilizado para muchas aplicaciones, como servidores de nombres y sistemas de gestin de objetos
distribuidos, a travs de las extensiones de los mtodos de peticin. Una caracterstica de este protocolo es la
negociacindelostiposyrepresentacindelosdatos,permitiendoquelossistemasnodependandeltipodedatos
queseutilicen".
La nueva versin de HTTP/1.1 est detallada en el RFC 2068 (http://www.faqs.org/rfcs/rfc2068.html) de Enero de 1997. Las
principalescaractersticasdeestanuevaversinson:

20 de 31
Curso Mentor Apache

Conexionespersistentes:aunqueundocumentoconstedevariaspartesnoseabreycierralaconexinparaelenvode
cadaunadeellas.DeestaformaseevitaunasobrecargaporconexionesTCP.
Variaspeticionessimultneas:elclientewebpuedehacervariaspeticionesatravsdeunanicaconexin,sintenerque
esperaraqueelservidorrespondaacadaunadeellas.
Negociacin del contenido: consiste en seleccionar la representacin HTTP adecuadacuando se da respuesta a una
peticin,comoporejemplo,adaptarsealaspreferenciasdelnavegadorutilizado.
Nuevosmtodos:juntoaGET,POSTyHEADaparecenlosmtodos
TRACEverloqueestrecibiendoelservidor

DELETEborrarunrecursodelservidor

PUTalmacenarrecursosenelservidor

PATCHaplicarcorreccionesenunrecursoasociadoaunaURL

COPYcopiarrecursosidentificadosporunaURLenotrolugar

MOVEmoverelrecursoidentificadoporlaURLaotrolugar

LINKestablecerenlacesentrediferentesrecursos

UNLINKquitarenlacesestablecidospreviamenteporLINK

OPTIONSelclientepuedeobtenerlascaractersticasdelservidor

WRAPPEDpuedeunirvariaspeticionesypuedeprotegerlasconunfiltradocomopuedaserlaencriptacin.

Nuevomtododeautenticacin:enelquelasclavesdeaccesovanencriptadasporlared,alcontrariodeloqueocurre
enHTTP1.0.Todavapendiente.

Apesardetodasestasmejorasintroducidasporlaversin1.1deHTTPelfuturodeesteprotocolosellamaHTTP-NG(HTTP
Next Generation) que incluye ms funcionalidades, es mas sencillo, tiene un mejor rendimiento, mejor nivel de seguridad
(encriptacin),autenticacinenambosextremosdelaconexin,pagosenlnea(comercioelectrnico),visualizacinobligatoriade
informacinsobreelobjetoquesetransmite(autor,copyright,licencia,...),informacinderegistro,etc.
Seesperaquelanuevaversin3deApacheyaimplementeesteprotocoloHTTP-NG.

Saber mas ... sobre el protocolo HTTP

Puedes visitar los enlaces:

1. Lista de cdigos de estado HTTP


2. Definicin de campos de cabecera HTTP

21 de 31
Curso Mentor Apache

Actividades
Actividad 1.3

22 de 31
Curso Mentor Apache

FuncionamientodeGET
ElfuncionamientodelprotocoloHTTPconlaoperacinGETeselsiguiente:

1. Elclientewebenvaunapeticinalservidor.Porejemplo,intentamosconectarnosmediantetelnetalapginadeGooglea
travs del puerto 80. Desde una terminal ejecutar como root el siguiente ejemplo de peticin y aadimos una posible
respuestaenelcasodequelaordennoestuvieradesactivada:

#telnetwww.google.es80
Trying66.249.93.104...
Connectedtowww.google.es.
Escapecharacteris'^]'.
GET/index.htmlHTTP/1.0#PeticinmedianteGET

2. Elservidorrespondeconunalneadeestado,incluyendolaversindelprotocolodelmensajeysilapeticintuvoxitoo
fracaso,conuncdigoderesultado,seguidodeunaseriedeinformacionesdelservidorydelelementosolicitado.Alfinalel
servidorrompelaconexin.
Siguiendoelejemplo:

HTTP/1.0302Found
Location:http://www.google.es/index.html
Cache-Control:private
Content-Type:text/html
Server:GWS/2.1
Content-Length:228
Date:Fri,21Apr200615:09:01GMT
Connection:Keep-Alive
.............................aquvendraelcdigodeindex.html

Sepuedeestudiarlapeticinalservidortambinutilizandolaordenwgetdelaforma:

#wgetwww.terra.es
--2011-04-0516:39:46--http://www.terra.es/
Resolviendowww.terra.es...213.4.130.210
Conectandoawww.terra.es|213.4.130.210|:80...conectado.
PeticinHTTPenviada,esperandorespuesta...302Found
Ubicacin:http://mov.terra.es[siguiente]
--2011-04-0516:39:46--http://mov.terra.es/
Resolviendomov.terra.es...213.4.130.231
Conectandoamov.terra.es|213.4.130.231|:80...conectado.
PeticinHTTPenviada,esperandorespuesta...200OK
Longitud:29838(29K)[application/xhtml+xml]
Guardandoen:index.html

100%[======================================>]29.838--.-K/sen0,05s

2011-04-0516:39:46(593KB/s)-index.htmlguardado[29838/29838]

SetratadeunapeticinHTTPquecomorespuestadevuelveelOK(200)yasuvezdescargalapginadeinicio(index.html)dela
webindicada.

23 de 31
Curso Mentor Apache

Tipos MIME
Qu son los tipos MIME?

LassiglasMIMEsignificanMultiporposeInternetMailExtension.
Los tipos MIME son un estndar que especifican cmo debe un programa (inicialmente un programa de correo o un
navegadorweb)transferirlosarchivosmultimedia(vdeo,sonido,ocualquierarchivoquenoestcodificadoenASCII).

AntesdelautilizacindelostiposMIMEcualquierarchivoquenofuesetextoASCIIdebacodificarseaestoscaractereshaciendo
usodelasherramientasUuencodeyUudecode.
MIMEadjuntaunarchivodecabeceraalosarchivos,indicandoeltipodecontenidodelarchivoyestopermitealservidorwebyal
navegadormanejarymostrarcorrectamentelosdatos.
Porlotanto,sepuededecirqueeltipoMIMEindicaeltipodearchivoqueseesttransfiriendodelservidoralclienteonavegador
web.
LostiposMIMEdefinentipos(indicadoantesdelcarcter'/')ysubtipos(indicadodespusdelcarcter'/').Porejemplo:

eltipoMIME"text/html"definetodoslosarchivosdetextoquecontienencdigoHTML.
eltipo"video/mpeg"definetodoslosarchivosdevdeoalmacenadosenformatompeg.
eltipoMIME"image/*"definetodoslosarchivosdeimagenalmacenadasencualquierformato:gif,jpeg,bmp,etc.

ElprotocoloHTTPusatiposMIMEenlascabeceras,porejemploparalassiguientesfunciones:

1. Informar al navegador el tipo de datos que est recibiendo del servidor. Esto se hace con el encabezado
Content-Type.ElnavegadormanejarlosdatosdetresformasdiferentessegneltipoMIMEindicadoenContent-Type:

Visualizareldocumento,porejemplocontipostext/html.
Llamaraunaaplicacinexterna,porejemplocontiposapplication/pdf.
Opreguntarlealusuarioquhacerconuntipoquenoseentiende,porejemploimage/x-fwf.

Ejemplo:desdeelnavegadorMozillaFirefoxabrimosGoogleybuscamosITE.EnelmendelnavegadoriraVer>Cdigofuentedelapginayaparece

<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>CNICE -

Buscar con Google</title><style><!--

2. Permitirlanegociacindecontenido.ElnavegadorensupeticinincluyelostiposMIMEqueacepta.Porejemplo,siel
navegador soporta archivos comprimidos del tipo application/zip, lo indica en la cabecera HTTP poniendo Allow:
application/zip.
3. Encapsularunoomsobjetosdentrodelcuerpodemensaje,medianteeltipoMIME multipart.Quizselejemplo
ms conocido sea el tipo multipart/form-data que sirve para enviar los datos de un formulario (mediante el mtodo
POST).

EnlaedicinweblareferenciaalostiposMIMEsepuedehacerdesdetreslugaresdiferentes:

1. Desdeelservidor:queindicaalnavegadoreltipodedatosqueenva.Porejemplo,enelservidorApachesepuedeindicar
conladirectivaDefaultTypeeltipoMIMEpordefectoqueelservidorutilizarenlosarchivosquenopuedaidentificarsu
tipoautomticamente.

DefaultType text/plain

2. Desdelapginaweb:enellasehacereferenciaalostiposMIMEatravsdeunenlaceaunarchivoexternocomounahoja
deestilo:

<link rel=Stylesheet href=hoja_estilo.css type=text/css>

TambinpuedeespecificarsecomoatributoenotrasetiquetasHTML,comoobjectoform(atributoenctype).
Ytambinconlasetiquetas<metaHTTP-EQUIV:....>podemoshacerquelapginaparticipeeneldilogocliente-servidor

24 de 31
Curso Mentor Apache

especificandotiposMIME.
3. Desdeelnavegadorweb:quedebepoderinterpretareltipoMIME recibidodesdeelservidorytambinpuedeindicarqu
tiposMIMEacepta(cabecerahttp-accept).Siaparece*/*significaqueaceptacualquiertipoMIME.

text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;
q=0.8,image/png,*/*;q=0.5

Este es el contenido de la variable predefinida HTTP_ACCEPT de PHP que est disponible mediante la llamada a la funcin
phpinfo().

Saber ms... sobre los tipos MIME

Tienes mas informacin sobre los tipos MIME en:

http://es.wikipedia.org
http://technet.microsoft.com
http://www.iana.org

25 de 31
Curso Mentor Apache

Glosario
Glosario Unidad 1

Concepto Definicin

Applet ProgramaenlenguajeJavaquepuedeintegrarseenpginasHTMLyseejecutaenelnavegador,aunque
no puede acceder a los recursos locales, como archivos, perifricos,.... Es independiente del sistema
operativo.

ASF Apache Software Foundation. Comunidad de desarrolladores que trabajan en proyectos de


cdigolibresobreApachebasadosenelconsensoylacolaboracin.

Certificadodigital ConstadeunaclavepblicayunidentificadorquehansidofirmadosdigitalmenteporunaAutoridadde
Certificacin(CA).Sirveparademostrarqueunaclavepblicaperteneceaunusuarioconcreto.

CGI Common Gateway Interface (en ingls 'Pasarela de Interfaz Comn'). Los scripts CGI son pequeos
programas alojados en el servidor web y que pueden ser utilizados desde las pginas web que se
hospedenendichoservidor.

Criptografaasimtrica Tcnicabasadaenelusodedosclaves,unapblicayotraprivada.Laclavepblicacifrayla
privadadescifra.Cadausuariotienedosclaves.Laclaveprivadasololaconoceeldueodela
clave,esdecir,noseenvaporlared.Laclavepblicaesconocidaporotrosusuariosenotras
mquinas,esdecir,sepublica.Estasclavessegeneranalmismotiempodandolugarapares
biunvocos,detalformaquelacombinacinpblica-privadaesnica.

Enctype EstableceeltipoMIMEyelcdigodecaracteresempleadoparalatransferenciadeinformacin
entreunclienteyunservidor.

FQDN Nombrededominiototalmentecualificado.

HTTP Protocoloparatransferirarchivosodocumentoshipertextoatravsdelared.Basadoenlaarquitectura
cliente/servidor.

MtodoGET FormadepasodeparmetrosmedianteURL.

MtodoPOST Formadepasodeparmetrosmedianteformulario(normalmente).

Navegadorweb Cliente que permite consultar a Servidores web y presentar la informacin HTML. Ejemplos: Firefox,
Konqueror,Opera,InternetExplorer,etc.

Portlet Componentesmodularesde interfazde usuario gestionadosyvisualizadosen un portalweb


(interfazdeusuario).

Protocolo de Eselsistemamedianteelcualseenvanlaspeticionesdeaccesoaunawebylarespuestade
transferencia esaweb.

Sitioweb Conjuntodereglasdelservidorwebylaspginaswebquelocomponen.

Softwarelibre Softwarequepuedeserusado,copiado,estudiado,modificadoyredistribuidolibremente.

URI-URL Trminosequivalentesque identifican o localizan un recurso universalen la web,ya sea una


imagen,unsonido,unvdeoolapginawebqueintegratodosestoscontenidos.

26 de 31
Curso Mentor Apache

Concepto Definicin

Webmaster Personaresponsableoadministradordeunsitiowebconcreto.

WorldWideWeb Es una agrupacin de miles de pginas electrnicas basadas en textos y en todo tipo de
informacin multimedia, conectadas entre s, a travs de hiperenlaces, con la finalidad de
recuperar informacin de forma sencilla, sin que sea necesario conocer previamente su
ubicacinexacta.

Otros Glosarios

Otros glosarios relacionados con la informtica y el mundo web.


Se pueden visitar las webs siguientes:

ATI: dispone de un glosario completo de trminos informticos en http://www.ati.es/novatica/glosario/glosario_internet.html


Microsoft: http://msdn.microsoft.com/es-es/library/aa302380.aspx

27 de 31
Curso Mentor Apache

Fuentes de informacin
Documentos y enlaces de inters

1. Gua de Ubuntu: http://www.guia-ubuntu.org/index.php?title=Servidor_web


2. Introduccin a los servidores web: http://www.cibernetia.com/
3. Conceptos sobre servidores web: http://trevinca.ei.uvigo.es/

28 de 31
Curso Mentor Apache

Resumen final
Sntesis de la Unidad 1 'Introduccin'

Lospuntosadestacardeestaunidadsonlossiguientes:

1. Un servidor web es un programa que implementa el protocolo HTTP (hypertext transfer protocol). Este protocolo est
diseadoparatransferirloquellamamoshipertextos,pginaswebopginasHTML.
2. Elobjetivodeunservidorwebesservirosuministrarpginaswebalosclienteswebonavegadoresquelassolicitan.
3. Paraqueelnavegadorpuedallegaralservidorweb(yaseaenunaredlocaloenInternet)elservidordebetenerasignada
unadireccinIP(InternetProtocol)nicaqueidentificaelequipoenlared.
4. LainformacinqueelusuarioproporcionaalnavegadorparaconectarconunservidorwebsellamaURL(UniformResource
Locators).
5. ApacheesunservidorwebconunporcentajedeutilizacinbastantesuperioraldeIIS.
6. ElservidorHTTPApache2esunservidorwebdesoftwarelibredesarrolladoporlaApacheSoftwareFoundation(ASF).El
productoobtenidodeesteproyectoesunservidordecdigofuentecompleto,descargableygratuito.
7. HTTPsedefinecomounconjuntodenormasquepermitenlacomunicacinentreelservidorylosclientesylatransferencia
deinformacin(archivosdetexto,imgenes,archivosdemsica,...)entreambos.
8. Los tipos MIME son un estndar que especifican cmo debe un programa (inicialmente un programa de correo o un
navegadorweb)transferirlosarchivosmultimedia(vdeo,sonido,ocualquierarchivoquenoestcodificadoenASCII).

29 de 31
Curso Mentor Apache

Autoevaluacin Unidad 1
Autoevaluacin

El cuestionario de autoevaluacin de la Unidad 1 est disponible en la plataforma Mentor (https://centrovirtual.educacion.es).

30 de 31
Curso Mentor Apache

Este artculo est licenciado bajo Creative Commons Attribution Non-commercial 3.0 License

31 de 31
Curso Mentor Apache

Apache
Unidad 2: Instalacin de Apache


Enestecaptuloaprendersa:
realizar la instalacin del servidor web Apache2 (versin 2.2) en Ubuntu tanto desde la lnea de orden
(terminal)comodesdeelentornogrfico.
identificarlosprocesosqueselanzanenelsistemaalejecutarse,ascomolospuertosenlosqueApache2
estescuchandopeticionesdelosclientes.
lasopcionesdearranqueyparadadelservicioApache2.
identificarlosdirectoriosyarchivosquecontienenlaconfiguracindelservicio.
realizar la instalacin del servidor web Apache2 (versin 2.2) en Windows teniendo en cuenta algunas
consideraciones.
identificarlaherramientagrficadegestindelservidorApache2.
identificarlosdirectoriosyarchivosquecontienenlaconfiguracindelservicio.

Materialcomplementario:
1. Archivoconlasactividadesreferidasalolargodelaunidad.ArchivoU2_Actividades.pdf

2. Mapaconceptualdelaunidad.ArchivoU2_mapaconceptual.png

3. Glosariocompletodelcurso.Archivoglosario.pdf

1 de 30
Curso Mentor Apache

Introduccin
Objetivos

ConocerlosrequerimientosdelsistemaparalainstalacindeApache2.

Realizar la instalacin de Apache en ambos sistemas operativos.

Realizar la desinstalacin de Apache en ambos sistemas.

Identificar las diferentes herramientas y archivos de configuracin generados en el proceso de instalacin.

EstalecerelnombrededominiodelservidorwebApache2quesevaautilizaralolargodelcurso.

Conocimientos previos

En esta unidad abordamos la instalacin de Apache2 desde cero. El nico requerimiento es tener claros los conceptos sobre
servidoresweb,elprotocoloHTTPylostiposMIMEvistosenlaUnidad1.

Contenidos

Unidad2:InstalacindeApache
A.Ubuntu

1. Instalacin y desinstalacin de Apache2


2. Aranque y parada de Apache2
3. Archivos y herramientas instaladas por Apache2
4. Nombre de dominio del servidor web Apache2

B. Windows

1. Instalacin y desinstalacin de Apache2


2. Aranque y parada de Apache2
3. Archivos y herramientas instaladas por Apache2
4. Nombre de dominio del servidor web Apache2

C. Fin de unidad

1. Glosario
2. Fuentes de informacin
3. Resumen final
4. Autoevaluacin

2 de 30
Curso Mentor Apache

Ubuntu: Instalacin de Apache2


Preparativos para Ubuntu

VamosatrabajarconunaversindeUbuntucomoestacinindependiente(standalone).
LainstalacindeApache2laharemosdesdeelpaqueteDebianGNU/Linux.Convieneasegurarsequenoexistepreviamenteenel
sistemaningnpaquetedeApache2procedentedeanterioresinstalaciones.
Elusuarioqueejecutatodoelprocesoesroot(#)peropodrahacerlotambinunusuario'sudo',esdecirconprivilegios.Lainstalacin
deUbuntunoproporcionacontraseapararootperounusuario'sudo'podrapasaraserrootejecutandoenunaterminallaorden
sudo su.

Actividad 2.1

Enunciado:CmocomprobarassiexisteunainstalacindeApache2previaenelsistema?
Solucin:
Utilizandolaordendpkgdelaformasiguiente:

#dpkg-sapache2

3 de 30
Curso Mentor Apache

Instalacin
Instalacin desde la lnea de orden

Parainstalarsimplementehayqueejecutarcomoroot(outilizandolaordensudodesdeunusuarioconprivilegiosdeadministracin)la
ordensiguiente.Esimportantefijarseenlasalidadelaordenyaquenosproporcionamuchainformacinacercadelasnecesidadesy
laconfiguracindelservicio.

$ sudo su
# apt-get install apache2 o # aptitude install apache2
Leyendo lista de paquetes... Hecho
Creando rbol de dependencias
Leyendo la informacin de estado... Hecho
Se instalarn los siguientes paquetes extras:
apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapr1
libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
Paquetes sugeridos:
apache2-doc apache2-suexec apache2-suexec-custom
Se instalarn los siguientes paquetes NUEVOS:
apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common
libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
0 actualizados, 9 se instalarn, 0 para eliminar y 0 no actualizados.
Necesito descargar 3330kB de archivos.
Se utilizarn 10,1MB de espacio de disco adicional despus de esta operacin.
Desea continuar [S/n]? s
Des:1 http://lliurex.net/leia/ llx1009/main libapr1 1.3.8-1build1 [116kB]
Des:2 http://lliurex.net/leia/ llx1009/main libaprutil1 1.3.9+dfsg-3ubuntu0.10.04.1
[85,6kB]
Des:3 http://lliurex.net/leia/ llx1009/main libaprutil1-dbd-sqlite3 1.3.9+dfsg-
3ubuntu0.10.04.1 [27,3kB]
Des:4 http://lliurex.net/leia/ llx1009/main libaprutil1-ldap 1.3.9+dfsg-3ubuntu0.10.04.1
[25,3kB]
Des:5 http://lliurex.net/leia/ llx1009/main apache2.2-bin 2.2.14-5ubuntu8.4 [2622kB]
Des:6 http://lliurex.net/leia/ llx1009/main apache2-utils 2.2.14-5ubuntu8.4 [160kB]
Des:7 http://lliurex.net/leia/ llx1009/main apache2.2-common 2.2.14-5ubuntu8.4 [290kB]
Des:8 http://lliurex.net/leia/ llx1009/main apache2-mpm-prefork 2.2.14-5ubuntu8.4 [2426B]
Des:9 http://lliurex.net/leia/ llx1009/main apache2 2.2.14-5ubuntu8.4 [1484B]
Descargados 3330kB en 3s (923kB/s)
Seleccionando el paquete libapr1 previamente no seleccionado.
(Leyendo la base de datos ... 00%
269497 ficheros y directorios instalados actualmente.)
Desempaquetando libapr1 (de .../libapr1_1.3.8-1build1_i386.deb) ...
......................................................
Seleccionando el paquete apache2.2-common previamente no seleccionado.
Desempaquetando apache2.2-common (de .../apache2.2-common_2.2.14-5ubuntu8.4_i386.deb) ...
Seleccionando el paquete apache2-mpm-prefork previamente no seleccionado.
Desempaquetando apache2-mpm-prefork (de .../apache2-
mpm-prefork_2.2.14-5ubuntu8.4_i386.deb) ...
Seleccionando el paquete apache2 previamente no seleccionado.
Desempaquetando apache2 (de .../apache2_2.2.14-5ubuntu8.4_i386.deb) ...
Procesando disparadores para man-db ...
Procesando disparadores para ufw ...
Procesando disparadores para ureadahead ...
ureadahead will be reprofiled on next reboot
Configurando libapr1 (1.3.8-1build1) ...

4 de 30
Curso Mentor Apache

Configurando libaprutil1 (1.3.9+dfsg-3ubuntu0.10.04.1) ...


Configurando libaprutil1-dbd-sqlite3 (1.3.9+dfsg-3ubuntu0.10.04.1) ...
Configurando libaprutil1-ldap (1.3.9+dfsg-3ubuntu0.10.04.1) ...
Configurando apache2.2-bin (2.2.14-5ubuntu8.4) ...
Configurando apache2-utils (2.2.14-5ubuntu8.4) ...
Configurando apache2.2-common (2.2.14-5ubuntu8.4) ...
Enabling site default.
Enabling module alias.
Enabling module autoindex.
Enabling module dir.
........................
Enabling module env.
Enabling module authz_host.
Enabling module reqtimeout.
Configurando apache2-mpm-prefork (2.2.14-5ubuntu8.4) ...
* Starting web server apache2 [ OK ]
Configurando apache2 (2.2.14-5ubuntu8.4) ...
.......................

Instalacin desde Synaptic

LainstalacintambinsepuedehacerdesdeelentornogrficoutilizandolaherramientaSynaptic(Sistema>Administracin>
GestordepaquetesSynaptic).

Apache2 en ejecucin?

SitodohaidobienalabrirelnavegadorwebFirefoxeirahttp://localhost(dondelocalhostesunaliasdelaIP127.0.0.1,identificada
comolainterfazdeloopback)deberaparecerunapginaindicandoqueelservidorApache2estinstaladoyejecutndose.Tambin
puedeindicarseunnombrededominiosisedisponedel.
Porlotanto,alinstalarApache2yaentraenejecucinylanzavariosprocesosparaatenderpeticioneshttp.Paracomprobarloejecutar
laorden:

#ps ax | grep apache2


1240 ? Ss 0:00 /usr/sbin/apache2 -k start
1241 ? S 0:00 /usr/sbin/apache2 -k start
1242 ? S 0:00 /usr/sbin/apache2 -k start
1244 ? S 0:00 /usr/sbin/apache2 -k start
1245 ? S 0:00 /usr/sbin/apache2 -k start
1246 ? S 0:00 /usr/sbin/apache2 -k start
EsconvenientetambininstalarelpaqueteconladocumentacindeApache2.Paraelloejecutar:

#apt-get install apache2-doc

Saber ms ... sobre tus conocimientos de Apache2

5 de 30
Curso Mentor Apache

ConoceculestuniveldeconocimientossobreelservidoswebApache.

6 de 30
Curso Mentor Apache

Desinstalacin de Apache2
Desinstalar en Ubuntu

LadesinstalacindeApache2sepuederealizardesdeSynapticseleccionandoelpaqueteapache2yconelbotnderechopulsaren
desinstalacincompleta.
Desdelalneadeordensepuedeutilizarlaordendpkg.
En cualquiera de los casos es importante saber que, mientras exista un archivo de configuracin /etc/apache2/apache2.conf, se
puedelanzarelprocesoaunqueelpaquetenoexista.Porlotanto,sisequierelimpiarcompletamente,habrqueeliminarelrestode
paquetesquearrastralainstalacindeApache2.Enconcreto,elresponsabledelacreacindeldirectorio/etc/apache2/eselpaquete
apache2.2-common.Hayquetenerencuentaquesilossubdirectoriosdeestedirectorionoestnvacosstosnoseeliminan.
PortantoparaeliminarcompletamenteApache2habrquelimpiarlosdirectoriosmods-available,mods-enabled,sites-availabley
eliminartambinlospaquetesapache2.2-commonyapache2-mpm-worker.
Sisequiereconocer,enunmomentodeterminado,culeslaversindeApache2instalada,ejecutarlaorden:

#apache2 -v
Server version: Apache/2.2.16 (Ubuntu)
Server built: Nov 18 2010 21:17:29

Actividad 2.2

Averiguar qu lnea de orden utilizaras para eliminar completamente el paquete correspondiente a Apache2.

Saber ms ... sobre algunas rdenes Ubuntu

Laordendpkgseutilizaparainstalar,desinstalaryproporcionarinformacinsobrepaquetes.deb.HayquetenerencuentaqueNO
resuelvelasdependencias.

7 de 30
Curso Mentor Apache

Arranque y parada de Apache2 en Ubuntu


Servicios en Ubuntu

LosserviciosenUbuntusepuedenejecutardetresformasdependiendodeltipodeservicio:

1. Comoprocesosindependienteshijosdelprocesoinit.
2. Comoprocesoshijosdeldemonioinetd(oxinetd).
3. Comoprocesoshijosdeportmap

Por defecto la instalacin de Apache2 lo hace como procesos independientes hijos de init. Es el mtodo ms seguro ya que no
requierelaejecucinpermanentedeotroproceso(inetd)queestescuchandoposiblespeticioneshttp.

Actividad 2.3

Enunciado:ComprobarqueelprocesogeneradoporlaejecucindelservidorApache2,esunprocesohijodeldemoniodelsistema
init.
Para ello ejecutamos la orden siguiente:

# ps axl | grep apache2


5 0 1240 1 20 0 5448 2828 poll_s Ss ? 0:00 /usr/sbin
/apache2 -k start
5 33 2256 1240 20 0 5448 1700 inet_c S ? 0:00 /usr/sbin
/apache2 -k start
5 33 2257 1240 20 0 5448 1700 inet_c S ? 0:00 /usr/sbin
/apache2 -k start
5 33 2258 1240 20 0 5448 1700 inet_c S ? 0:00 /usr/sbin
/apache2 -k start
5 33 2259 1240 20 0 5448 1700 inet_c S ? 0:00 /usr/sbin
/apache2 -k start
5 33 2260 1240 20 0 5448 1700 inet_c S ? 0:00 /usr/sbin
/apache2 -k start

Comprobamosqueenlaprimeralneaselanzaelproceso/usr/sbin/apache2conunPID=1240yunPPID=1queeselPIDdelinit.
TodoslosdemsprocesoslanzadossonhilosdeejecucinhijosdelprocesoinicialdeApache2.

Acciones sobre el servidor Apache2

LasaccionesquesepuedenrealizarsobreelservidorwebApache2sonlassiguientes:

1. ArrancarApache:ejecutarcomorootlaorden

#/etc/init.d/apache2start
*Startingwebserverapache2

yquedalugaralaejecucindelbinariosiguienteconlasopcionespordefecto:

/usr/sbin/apache2-kstart

donde:
-kindicaelmododeejecucindeApache2:arranque,parada,etc.

8 de 30
Curso Mentor Apache

Sinoarrancadeformaautomtica,paraaadirlasentradasadecuadasparaqueelservidorwebseinicieenlosnivelesdeejecucin
estndardeDebianejecutar:

#update-rc.dapache2defaults

2. DetenerApache:ejecutarcomorootlaorden:

#/etc/init.d/apache2stop
* Stopping web server
apache2......waiting

quematatodoslosprocesoslanzadosrelativosaApache.
3. Reiniciarelservidor:cierralasconexionesactivas

#/etc/init.d/apache2restart

4. ForzaraqueApachevuelvaaleersuarchivodeconfiguracin:

#/etc/init.d/apache2reload/force-reload
Otras opciones disponibles desde Apache2 son:

Opcin Descripcin

-l listalosmduloscompilados

-L muestralasdirectivasdecompilacin

-t realizaunchequeodelarchivodeconfiguracin(sintaxis)

9 de 30
Curso Mentor Apache

Herramientas instaladas por Apache2


Archivos y directorios

PordefectolainstalacindeApache2intentaaadiryeliminarmdulos,hostsvirtualesydirectivasdeconfiguracinextrasdeforma
tanflexiblecomoseaposible,conelobjetivodeautomatizarloscambiosyfacilitarlaadministracindelservidor.
Losarchivosydirectorioscreadosen/etc/apache2/enelprocesodeinstalacinsonlossiguientes:

apache2.confeselarchivodeconfiguracinprincipal

conf.d/contienearchivosdeconfiguracinasociadosamdulosespecficos.Losarchivosdeestedirectoriosonincluidos
mediantelalneasiguienteen/etc/apache2/apache2.conf:

Include/etc/apache2/conf.d

httpd.confarchivovaco.NoseusadesdeUbuntu.

mods-available/estedirectoriocontieneunaseriedearchivos.loady.conf.

Losarchivos.loadcontienendirectivasdeconfiguracindeApachenecesariasparalacargadelmduloencuestin.
El correspondiente archivo .conf contiene directivas de configuracin necesarias para la utilizacin del mdulo en
cuestin.
mods-enabled/ para activar un mdulo para Apache2 es necesario crear un enlace simblico en este directorio a los
archivos .load asociados con el mdulo en mods-available/. Tambin para .conf si existe. Por defecto la instalacin de
Apache2deja'activados'ungrupodemdulos.
ports.confdirectivasdeconfiguracinqueindicanpuertosydireccionesIPdondeApache2escuchapeticiones.

sites-available/similaramods-available/exceptoquecontienearchivosdeconfiguracinparadiversoshostsvirtualesque
podran ser utilizados en Apache2. Observar que el 'hostname' no tiene que corresponder exactamente con el nombre del
archivo.'default'eselhostpordefecto.
sites-enabled/ funcionalidad similar a mods-enabled/ y contiene enlaces simblicos a sitios de sites-available/ que el
administradorhaactivado.

Herramientasdisponibles:

Nombre Descripcin

a2enmod activamdulosutilizandoelanteriorsistemadeconfiguracin

a2dismod desactivamdulosutilizandoelanteriorsistemadeconfiguracin

a2ensite activasitios

a2dissite desactivasitios

Busca el significado de los trminos...

Host virtual
Mdulo de Apache

10 de 30
Curso Mentor Apache

Dominio del servidor Apache2


Nombre de dominio

Alhacerlainstalacinpreguntaporunnombrededominio.Pordefectoleasignalocalhost.Sidisponemosdeunnombrededominio
cualificadoydisponemosdelservicioDNSconfiguradopodremosutilizardichonombreenlaconfiguracindeApache2.
Ennuestrocasoyparaelcurso,sevaatrabajarconunservidorApache2queatiendepeticionesdeclienteswebdentrodesupropia
red local y est situado detrs de un router que sirve DHCP. El puerto 80 slo escucha dentro de la red local que ser la
192.168.0.0/24.Unaconfiguracinmuysencillaquerespondealosrequerimientosdelaula.
Leasignamosinternamenteelnombrededominioservidor.apache2.comyparaellosehamodificarelarchivo/etc/hostsdelaforma
siguiente:

127.0.0.1localhostservidor.apache2.comservidor

11 de 30
Curso Mentor Apache

Windows: Instalacin de Apache2


Preparativos para Windows

ElcursoutilizaWindows7HomePremium86ynorequiereningnsoftwareadicionaldesistemaparalainstalacindeApache.
SilainstalacindeApache2esenWindowsXPrequieretenerinstaladoelServicePack1.SinosedisponedelaccederalaURL
siguienteparasudescarga:
http://www.microsoft.com/windowsxp/pro/downloads/servicepacks/sp1/default.asp

ParaWindowsutilizamoslaversin2.2.18quesoportaperfectamentePHP5.
La descarga de la versin con la que vamos a trabajar httpd-2.2.18-win32-x86-openssl-0.9.8r-r2.msi (que lleva incorporado soporte
SSL)sepuederealizardesde:http://www.apache.org/dist/httpd/binaries/win32/.
LainstalacindeApache2requierelaejecucin(dobleclic)delarchivodescargadohttpd-2.2.18-win32-x86-openssl-0.9.8r-r2.msi

A tener en cuenta ...

1.EsimportantetenerencuentaquelainstalacindebehacersedesdelacuentadelAdministradordelsistemaodesdelacuentade
unusuarioquetengaprivilegiosdeadministrador.SlodeestaformaelservidorwebApache2podrserutilizadoporcualquierusuario
existenteenlamquinaWindows.
2.Convieneantesdehacerlainstalacin,asegurarsequenosetieneotrainstalacinpreviadeApache2.Sisetieneespreferible
desinstalarla.Probablementenoocurranadadurantelanuevainstalacinperosufuncionamientopuedeserimpredecible.
3.SiseinstalaunanuevaversindeApache2diferentedelayaexistenteenelsistema,hayquetenercuidadodenoinstalarla
nuevaversinenelmismodirectorioquelaanterior.

12 de 30
Curso Mentor Apache

Instalacin
Instalacin

LainstalacindeApache2requierelaejecucin(dobleclic)delarchivodescargadohttpd-2.2.18-win32-x86-openssl-0.9.8r-r2.msi
Laprimerapantallaquesemuestraesladebienvenida,enlaqueseindicalaversindelservidorwebApache2quesevaainstalar.

AcontinuacinsemuestranlostrminosdelaLicenciaalaquecontestamosqueAceptamos(Iaccept).

Lasiguientepantallasolicitaelnombredeldominio.SisedisponedeundominioregistradoyredireccionadoalaIPdondeestamos
instalando Apache2 lo indicamos en Network Domain. Por ejemplo .apache2.com. Si no se dispone de dominio propio indicar
'localhost'olaIPdelamquina.

13 de 30
Curso Mentor Apache

EnServerNameindicartambin'localhost'sinosedisponededominiopropioysidisponemosdedominioindicamoselnombrede
lamquinadentrodenuestrodominio(servidor.apache2.com).Elnombredadoaqusirveparaque,alaccederanuestroservidor
Apache2,sepuedaeliminarlapartewwwyaccederdirectamenteconapache2.com.Lomasimportanterespectoaestenombrees
que se pueda resolver, es decir, que un servidor DNS pueda transformar ese nombre en una direccin IP. En nuestro caso la
resolucinsehardeformalocal.
Damosladireccindecorreoelectrnicodeladministrador.Estadireccinconvienequesearealyaqueaellairnaparartodoslos
mensajesdeerrorydelosvisitantesdelaspginasdelservidorweb.
Porltimo,enlapantallanospreguntasisequierelanzarApache2comounservicioparatodoslosusuariosescuchandoenelpuerto
80(ForAllUsers,onPort80,asaService),queeslomasusualyeslaopcinqueseleccionamos.Laotraopcinindicaque
Apache2sloselanzaparaelusuarioactualyescuchandoenelpuerto8080(OnlyfortheCurrentUser,onport8080,when
startedManually).EstaopcinsesueleutilizarparahacerunusopersonalydepruebasdelservidorApacheosisetieneyaotro
servidorescuchandoenelpuerto80.
EstaclaveidentificaeldirectorioparaladirectivaServerRootcuyoobjetivoesindicareldirectorioquecontieneelsubdirectorioconf.
AlarrancarApache2,steleeenestedirectorioelarchivodeconfiguracinhttpd.conf.Sielvalordeestaclavenocoincideconel
valordeServerRoot,Apache2siempretomarelvalordeladirectiva.
SisemodificalaubicacindelosarchivosdeconfiguracinhayqueactualizareldirectorioindicadoenServerRootparaquesepueda
localizarelarchivohttpd.conf.
La siguiente ventana permite seleccionar el tipo de instalacin que se quiere realizar: Tpica o Personalizada. Es conveniente
seleccionarlaopcinPersonalizada(Custom)yaque,deesaformasepuedecomprobarqusevaainstalarennuestroequipo.

14 de 30
Curso Mentor Apache

La instalacin muestra la ventana indicando qu se va instalar con una breve descripcin y dnde se va a instalar. Permite la
modificacindeldirectoriodestino(botnChange...).

Unavezconfiguradostodoslosparmetrosdelainstalacin,comienzapropiamentelainstalacin(pulsarelbotnInstall):

15 de 30
Curso Mentor Apache

Acontinuacinsemuestraunabarradeprogresindelainstalacinindicndonosquepuedetardarvariosminutos.

ComosehaseleccionadolainstalacindeApache2comoservicio,alterminarlainstalacinarrancaautomticamenteApache2al
pulsarelbotnFinish:

16 de 30
Curso Mentor Apache

Apache2 en ejecucin?

EnWindows7hayiconosqueestnpordefecto'escondidos'yparaaccederaelloshayquepulsarenlabarradetareaselbotn

ComprobamosqueentrelosbotonesdisponiblesestelcorrespondienteaApachequehasidoinstaladoyalfinalizarlainstalacines
ejecutadoyporlotantoestactivoelservicio.

Dentrodelaconfiguracindeestosiconos'escondidos'podemosindicarquesemuestresiempreenlabarradetareas.

17 de 30
Curso Mentor Apache

AhorayapodremosvereliconodeApache2enlabarradetareasystenosinformarcuandoestarrancado(puntointerioren
verde)oparado(puntointeriorenrojo)elservidorweb.
Pulsandosobreestebotnpodremosarrancar(start),parar(stop)oreiniciar(restart)elservidorwebApache2:

TambinpodemosgestionarelserviciopulsandoelbotnderechodelratnsobreeliconodeApache:

PorotraparteyenelmenquecontieneTodoslosprogramasaparecelareferenciaaApacheHTTP Server2.2,talycomose
muestraenlafigurasiguiente:

18 de 30
Curso Mentor Apache

LaformadecomprobarqueApache2seinstalcorrectamenteyestfuncionandoennuestramquinaesabrirunnavegadoreirala
URLhttp://localhost/(onombrededominiosidisponemosdel)ymuestralaventanasiguientequenosindicaquetodoestcorrecto:

Sinosevisualizalapginadebienvenidaanterioriralsubdirectoriologsyabrirelarchivoerror.log.Esposiblequehayaunproblema
deresolucindenombres(configuracindelservicioDNS)y,enesecasoprobarconlaURLhttp://127.0.0.1/
Si se ha indicado un puerto diferente al utilizado por defecto, hay que incluirlo en la URL de la forma
siguiente:http://127.0.0.1:8080/
NOTA.- Hay que tener en cuenta que si este puerto se ha utilizado para otro servicio, como
puede ser un cortafuegos, habr que reconfigurar dicho servicio para que no coincidan.

Instalacin/desinstalacin desde la lnea de orden

LainstalacinydesinstalacindeApache2desdelalneadeordenesmuysencilla.Paraelloira Inicio > Todos los Programas >


Accesorios > Smbolo del Sistemayescribirenlaterminal:
apache2-kinstall

yparadesinstalarejecutar:

apache2-kuninstall

Pararealizaruntestdelservicioejecutar:

19 de 30
Curso Mentor Apache

apache2-t

Paraconocerlaversindelservicioejecutar:

apache2-V

20 de 30
Curso Mentor Apache

Arranque y parada de Apache2


Acciones sobre el servidor

ElservidorApache2permiteejecutarsobrellassiguientesoperaciones:

1. ArrancarApache:opcinstart

Podemos lanzar el proceso desde una consola de Windows. Para ello ir a Inicio > Todos los Programas >
Accesorios>SmbolodelSistema.yescribirenlaterminalabierta

netstartapache2

2. DetenerApache:opcinstop

netstopapache2

3. Reiniciarelservidor:opcinrestartquefuerzaaqueApachevuelvaaleersuarchivodeconfiguracin.

netrestartapache2

4. Verlosserviciosactivosdelamquina:opcinservices
5. Conexinaunservidorwebremoto:opcinconnectquepermitelaadministracindedichoservidorwebdesdelamquina
local.
6. Desconexindelservidorwebremoto:opcindisconnect

Desdelabarradetareasestndisponiblestodasestastareas.

Desde estaventanasetienendisponiblestodaslasopcionesdearranqueyconexindeApache2.Lafiguraanteriormuestraque
Apacheestfuncionando(verde)yqueesposiblepararorelanzarelservicio.
LafigurasiguienteindicaqueelservicioApache2estdesactivado.

21 de 30
Curso Mentor Apache

Lafigurasiguientemuestralosdiferentesserviciosdelsistema,daunabrevedescripcindecadaunodeellosypermiteconocersus
propiedades,ascomopararorelanzarelservicio.

Permite, tambin, la conexin a otros equipos de la red simplemente proporcionando el nombre de la mquina a la que se quiere
conectar.

22 de 30
Curso Mentor Apache

ElpasosiguienteserllevaracabolaconfiguracindelservicioqueseverenlaUnidad3.

23 de 30
Curso Mentor Apache

Herramientas instaladas por Apache2


Archivos instalados

La instalacin de Apache2.2 en Windows 7 (XP), deja los siguientes archivos en el directorio raz (C:\Archivos de
programa\ApacheSoftwareFoundation\Apache2.2\)delainstalacin:

Directorio Descripcin

bin ContienearchivosejecutablesdeApache2

conf Contienearchivosdeconfiguracindelservidor

error Archivosconlosmensajesdeerrordelservidor

htdocs Directoriorazpor defectodelservidor,enelquesealmacenanlosarchivosdisponibles


desdeelservidor

icons Contienelosiconosqueutilizaelservidor

logs Contienelosregistrosdeaccesoyerroresdelservidor

manual ContieneelmanualdelApache

proxy Contienelosarchivosdelacachdelservidor

Archivo Descripcin

httpd.conf Archivodeconfiguracinprincipal,equivalentea/etc/apache2/apache2.confenUbuntuy
estubicadodentrodeldirectorioconf.

.htaccess Sepuedeencontrardentrodecualquierdirectorioaccesibledesdeelservidorweb.

Enestosarchivossesitanlasdirectivasdeconfiguracin.Algunasdeestasdirectivasdeconfiguracinpuedenaparecerenambos
archivos.Siseproduceestasituacinsiempreprevalecenlasdirectivasincluidasenlosarchivos.htaccess.
Eldirectorioconf/contienelosarchivosdeconfiguracin.Sialhacerlainstalacinexistenarchivosdeconfiguracinenestedirectorio
nosesobreescribensinoquepasanallamarsenombre.default
Ya tenemos nuestro servidor web Apache2 instalado tanto en Ubuntu como en Windows 7 en el equipo que hace la funcin de
servidordelaulayfuncionandoenbaseaunaconfiguracinpordefectoquevamosairadaptandoanuestrasnecesidades.

24 de 30
Curso Mentor Apache

Glosario
Glosario Unidad 2

Concepto Definicin

Ubuntu DistribucinbasadaenDebianGNU/LinuxydesarrolladaporlaempresaCanonicalLTD.

Hilodeejecucin Loshilossonunaformadedividirlaejecucindeunprogramaenvariastareasqueseejecutandeforma
paralela.Unprocesopuedetenerunoovarioshilosdeejecucin.

inetd Demonioquesemantienealaescuchaendeterminadospuertosylanzadeterminadosserviciosenfuncin
delassealesrecibidas.Porejemplo,escuchaenelpuerto22yatiendelasllamadasdelserviciossh.

init Es el primer proceso que se ejecuta en un sistema UNIX/Linux. Utiliza los niveles de ejecucin para
establecerlosserviciosqueofreceelsistema(monousuario,multiusuario,...).

localhost Interfaz de red ficticia que utiliza el sistema para comunicarse consigo mismo. Se identifica por lo e
identificalaIP127.0.0.1.

niveldeejecucin Los sistemas operativos tienen diferentes niveles de ejecucin que determinan su funcionalidad. Por
ejemplo, Ubuntu y, en general GNU/Linux tienen 6 niveles de ejecucin, de los cuales el nivel 2 (es el
habitual)indicaqueelsistemaarrancaenmodomultiusuarioyconred.Elnivel1esutilizadoparatareasde
administracindelsistemaquearrancaenmodomonousuarioymultitarea(sinred).

PID Identificadornicodelprocesoenelsistema.Existemientraselprocesoest'vivo'.

portmap Demonio que convierte nmeros de programas RPC (Llamada a Procedimiento Remoto) a nmeros de
puertosdeInternet.Utilizadoparaciertosservicios,comoNFS(NetworkFileSystem).

PPID Identificadordelprocesopadrecorrespondiente.Todoprocesoenelsistematieneunprocesopadrequees
quienlogeneraolanza.

root Usuarioadministradordelsistema.TambinselellamaSuperusuario.ElUID(identificadordeusuario)de
rootes0.

servicioDNS ServicioquepermitetraducirnombresdemquinasadireccionesIP.

sudo OrdenquepermiteaunusuarioejecutarrdenesLinuxcomoadministradorsielarchivo/etc/sudoersest
configuradoparaello.

synaptic HerramientagrficaparalaactualizacindelospaquetesdelsistemadesdeUbuntu,inclusindenuevos
paquetesyborradodelosyaexistentes

Otros Glosarios

Otros glosarios relacionados con la informtica y el mundo web.

25 de 30
Curso Mentor Apache

Se pueden visitar las webs siguientes:

ATI: dispone de un glosario completo de trminos informticos en http://www.ati.es/novatica/glosario/glosario_internet.html


Microsoft: http://msdn.microsoft.com/es-es/library/aa302380.aspx

26 de 30
Curso Mentor Apache

Fuentes de informacin
Documentos y enlaces de inters

1. Gua de Ubuntu: http://www.guia-ubuntu.org/index.php?title=Servidor_web


2. Pgina oficial de apache: http://www.apache2.es/2.2.2/

27 de 30
Curso Mentor Apache

Resumen final
Sntesis de la Unidad 2 'Instalacin'

Lospuntosadestacardeestaunidadsonlossiguientes:

1. LainstalacindeApache2laharemosenUbuntudesdeelpaqueteDebianGNU/Linux.Convieneasegurarsequenoexiste
previamenteenelsistemaningnpaquetedeApache2procedentedeanterioresinstalaciones.Yelusuarioqueejecutatodoel
procesoesroot(#)peropodrahacerlotambinunusuario'sudo',esdecirconprivilegios.
2. LainstalacintambinsepuedehacerdesdeelentornogrficoutilizandolaherramientaSynaptic
3. Losarchivosydirectorioscreadosen/etc/apache2/enelprocesodeinstalacinsonapache2.confcomoarchivode
configuracinprincipalyconf.d/comodirectorioquecontienearchivosdeconfiguracinasociadosamdulosespecficos.
4. EnWindowsesimportantetenerencuentaquelainstalacindebehacersedesdelacuentadelAdministradordelsistemao
desdelacuentadeunusuarioquetengaprivilegiosdeadministrador.SlodeestaformaelservidorwebApache2podrser
utilizadoporcualquierusuarioexistenteenlamquinaWindows.
5. Convieneantesdehacerlainstalacin,asegurarsedequenosetieneotrainstalacinpreviadeApache2.Sisetienees
preferibledesinstalarla.Probablementenoocurranadadurantelanuevainstalacinperosufuncionamientopuedeser
impredecible.
6. LainstalacindeApache2.2enWindowsdejalosarchivosdeconfiguracineneldirectorioC:\Archivosdeprograma\Apache
SoftwareFoundation\Apache2.2\
7. httpd.confeselarchivodeconfiguracinprincipaldeApacheparaWindows.

28 de 30
Curso Mentor Apache

Autoevaluacin Unidad 2
Autoevaluacin

El cuestionario de autoevaluacin de la Unidad 2 est disponible en la plataforma Mentor (https://centrovirtual.educacion.es/).

29 de 30
Curso Mentor Apache

Este artculo est licenciado bajo Creative Commons Attribution Non-commercial 3.0 License
Unidad 2

30 de 30
Curso Mentor Apache

Apache
Unidad 3: Configuracin de Apache

Enestecaptuloaprendersa:
diferentesdirectivasgeneralesparalaconfiguracindelservidorwebApache2.

seccionesbsicasconsusdirectivasasociadasparalaconfiguracindelservidorwebApache2ysuscaractersticas
masrelevantes.

elconceptodecodificacin.

autilizarlaredireccindedirectorios.

diferentesdirectivasrelativasalostiposMIMEparalainterpretacindelcontenidodelosarchivostransferidosentre
servidorycliente.

detectarposibleserroresdefuncionamientodelservidorweb.

interpretarloscdigosdeerrordelservidorweb.

Materialcomplementario:
1. Archivoconlasactividadesdelaunidad.ArchivoU3_Actividades.pdf
2. Mapaconceptualdelcaptulo.ArchivoU3_mapaconceptual.png
3. Glosariocompletodelcurso.Archivoglosario.pdf

1 de 40
Curso Mentor Apache

Introduccin
Objetivos

ConocerlasdirectivasdeconfiguracindeApache2masrelevantes.

Conocer el contenido de los diferentes directorios generados en la


instalacin de Apache2.

Identificar y crear redirecciones.

Establecer una configuracin bsica para el servidor web Apache2 en ambos sistemas operativos.

Saberdndeaccederanteposibleserroresdefuncionamientodelservidorweb.

Conocimientos previos

EnestaunidadabordamoslaconfiguracininicialdeApache2.ElnicorequerimientoeshaberrealizadolainstalacindeApache2
enambossistemasoperativosyhabercomprobadoqueelservicioestactivoyesperandopeticiones.

Contenidos

Unidad3:ConfiguracindeApache
A.Ubuntu

1. Directivasdeconfiguracin.Archivoapache2.conf
2. Directivasglobalesdelservidor
3. Configuracindelservidorprincipal
4. Directorioconf.d
5. Archivoports.conf
6. UTF-8ycodificacindedocumentos
7. Nombrededominio
8. Redireccindedirectorios
9. TiposMIME
10. Identificacinyresolucindeproblemas

B.Windows

1. ConfiguracindeApache2enWindows
2. CdigosderespuestadelservidorApache2

C.Findeunidad

1. Glosario
2. Fuentesdeinformacin
3. Resumenfinal
4. Autoevaluacin

2 de 40
Curso Mentor Apache

Nota

HayquetenerencuentaqueelcaptulocontieneunadescripcindelasdirectivasdeconfiguracindelservidorwebApache2mas
significativas. Por este mismo motivo muchas de ellas son objeto de un estudio prctico mas detallado en otros captulos que
estudianaspectosmasconcretosdelservidor.
Elalumno,portanto,nodebesentirsedesbordadoporlaexposicinmasivadeinformacin.Estasdirectivas,juntoconotrasquese
irnintroduciendodeformapaulatina,sernobjetodeestudioalolargodelasunidadesdeestecurso.

3 de 40
Curso Mentor Apache

Ubuntu
Configuracin: archivo apache2.conf

Elarchivo /etc/apache2/apache2.conf contienelaconfiguracindelservidorwebApache2.

Consideraciones:

Esunarchivomuyextensoyautoexplicativo.Todasycadaunadelasdirectivasdisponiblesestnampliamentecomentadas
incluyendoejemplosdeutilizacin.
LasintaxisdelarchivodeconfiguracindeApache2permiteindicarunadirectivaporlneaenlaquenosehacedistincin
entremaysculasyminsculas.
Laslneasquecomienzanconelcarcter'#'seconsiderancomentariosyseignoran.Nosepuedenincluircomentariosen
unalnea,despusdeunadirectivadeconfiguracin.
Sepuedechequearlasintaxisdelarchivodeconfiguracinsinreiniciarelservidorutilizandolaopcin'-t'enlneadeorden.
Desdeunaterminalejecuta:

# /usr/sbin/apache2 -t
Syntax OK

Enesteapartadosevanaestudiarlasdirectivasdeconfiguracinmssignificativas.
Existeunaguadereferenciarpidaconlarelacindetodaslasdirectivasdisponiblesenhttp://httpd.apache.org/docs/2.2
/en/mod/quickreference.html.
Cualquiermodificacinrealizadasobreestearchivoparaqueestactivarequierelarecarga(reload/restart/force-reload)del
demoniodeApache2olaparadayarranque(stop/start).
Antes de efectuar modificaciones sobre el archivo de configuracin original conviene hacer una copia de seguridad del
mismo.

RespectoalPATH:

siseespecificanlasrutascomenzandopor'/'Apache2entiendequesetratadeunpathabsoluto.
sinocomienzapor'/'esunpathrelativoyseleaadeelcontenidodeladirectivaServerRootaliniciodelpath.

Actividad 3.1

Consideraciones previas a tener en cuenta en la configuracin del servidor Apache2.


EladministradordeApache,antesderealizarlaconfiguracindelservidor,debeplantearseunaseriedecuestiones,comosonlas
relativasa:
1. Mdulos:comprobarculessonlosmdulosquenecesitacargarelservidorparaconseguirlafuncionalidaddeseada.
2. Propietarioygrupo:porseguridadserecomiendanoutilizarelusuariorootcomousuariopropietariodelprocesoapache2.
Hayquedisponerdeunusuarioygrupoparaello.EnUbuntusedisponedelusuarioygrupowww-data.
3. Directorios:hayquecrearlosdirectoriosenlosquesealojarnlaspginasweb,grficos,applets,etc,mscomunesy
establecerlospermisosadecuados.
4. Logs:decidirquinformacinsealmacenarenrelacinalosaccesosalservidor.
5. Polticas de acceso: decidir si se permite a los usuarios publicar pginas personales, si se habilita el uso de pginas
dinmicas(PHPoPERL),etc.
6. Aplicaciones:tenerencuentasisevanautilizarotrasaplicacionesparalagestindelservidor,comoeslaobtencinde
estadsticasdeusoyaccesos,copiasdeseguridad,etc.
7. Servidoresvirtuales:planificarlaconfiguracindesitiosvirtualesquepuedanserdeintersparaelservicio.

4 de 40
Curso Mentor Apache

Directivas de configuracin
Directivas de configuracin

Lasdirectivasdeconfiguracinestnagrupadasentressecciones:

1. Directivasglobalesquecontrolanlascaractersticasdelservidor.Seestudianenestaunidad.
2. Directivasquecontrolanelfuncionamientodelservidorprincipalyvalorespordefectoparalosservidoresvirtuales.Se
estudianenesteaunidadagrupadasporseccionesenlospuntosquevemosacontinuacin.
3. Directivas de configuracin para los servidores virtuales, que permiten que las peticiones web sean enviadas a
diferentesservidores,yaseamediantelaIPonombredelamquina,yseanmanejadasporelmismoprocesoapache.Se
estudianenlaUnidad5.

Ademsdeestosgruposdedirectivastenemoslos:

1. Archivos.htaccessquepermitenalosusuariosquenotienenpermisosmodificarlaconfiguracinypoderejercerasalgn
controlsobreelcomportamientodesupartedelservidorApache.EstosarchivosseestudiarnenlaUnidad4.

5 de 40
Curso Mentor Apache

Directivas globales del servidor


Parmetros generales

ServerRoot
LadirectivaServerRootindicaeldirectorioprincipaldondeseencuentrantodoslosarchivosdeconfiguracinydetrabajodel
servidor.
ServerRoot "/etc/apache2/"

PidFile
Indicaelarchivoenelqueelservidorgrabasuidentificadordeproceso(PID).
PidFile /var/run/apache2.pid

LockFile
Estableceelpathaunarchivoutilizadoamododesemforopararealizarbloqueos.Nosuelemodificarsesuvalorpordefecto.
ElPIDdelprocesoprincipaldelservidorseaadeautomticamentealnombredelarchivo.
LockFile /var/lock/apache2/accept.lock

Timeout
Determina,ensegundos,eltiempoqueelservidorwebesperarpararecibiryenviarpeticionesdurantelacomunicacin.Elobjetivo
esnomantenerlasconexionesdelclienteactivasindefinidamente.Pordefecto:
Timeout 30

6 de 40
Curso Mentor Apache

Actividad 3.2

Comprobacin de valores por defecto para las directivas


Los valores incluidos por defecto son los siguientes:
ServerRoot "/etc/apache2/"
PidFile /var/run/apache2.pid
LockFile /var/lock/apache2/accept.lock
Timeout 300

Sonvaloresparalosparmetrosgeneralesquenosuelenmodificarseeninstalacioneshabituales.
Indicanrespectivamente:
directoriodondeseencuentranlosarchivosdeconfiguracindelservidor
archivoenelqueelservidorgrabasuidentificadordeproceso(PID)
camino(path)alarchivoutilizadocomosemforopararealizarbloqueos
tiempoensegundosqueelservidorwebesperapararecibiryenviarpeticionesdurantelacomunicacin

Comprobacin de los valores para estas directivas en el archivo de configuracin de Apache2 para Ubuntu.
Ejecutar
#apache2 -v
Server version: Apache/2.2.16 (Ubuntu)
Server built: Nov 18 2010 21:17:29

Configuraciones de conexiones persistentes

KeepAlive
Activaodesactiva{On|Off}laopcindeservirmsdeunasolicitudenlamismaconexin.PordefectoestaOn.
KeepAlive On
EstadirectivaesinteresantemantenerlaenOnyaque,deesaforma,seevitatenerqueestablecerdiferentesconexionesTCPpara
diferentespeticionesprocedentesdeunmismoclienteweb.
Lasdirectivassiguientesconfiguranestaopcin.
MaxKeepAliveRequests
Estableceelnmeromximodepeticionespermitidasporcadaconexin.Engeneralserecomiendaunvaloralto.Elvalor0indica
unnmeroilimitado.
RequierequeesteaONladirectivaKeepAlive.
Hayquetenerencuentaelanchodebandadesalidadelservidor,yaquesiseestableceunvalorelevadoeltiempoderespuesta
aumentarparacadausuario.
Pordefecto:
MaxKeepAliveRequests 100
KeepAliveTimeout
Indica el nmero de segundos que el servidor esperar la siguiente peticin desde la misma conexin. Pasado este tiempo se
considerarquesehaterminadoycerrarlaconexin.

Si el valor es muy pequeo algunos usuarios no podrn visualizar la pgina ya que el nmero mximo de conexiones
persistentessehasuperado.
Siseestableceunvalormuygrandeseestarnutilizandomuchosrecursosdelamquina.

Pordefecto:
KeepAliveTimeout 15

7 de 40
Curso Mentor Apache

8 de 40
Curso Mentor Apache

Configuracin del servidor principal


Directivas

User / Group
Userestableceelidentificadordeusuario(userid)queutilizaelservidorparaejecutarseyresponderalaspeticiones.
ElvalordeUserdeterminaeltipodeaccesoquetendrelservidorwebalosarchivosydirectoriosenlosqueseencuentranlas
pginas.SiUsernopuedeaccederaunarchivotampocopodrhacerloelservidorweby,portanto,tambininaccesiblealcliente
web.Pordefecto:
User www-data
ElprocesoApache2padreseiniciacomorootyacontinuacinpasaalusuariowww-data.Elservidordebearrancarcomoroot.Una
vezqueelservidorsehaconectadoalpuerto,pasaelprocesoa Userporquenecesitaunpuertopordebajode1024(por
defecto80)ylospuertospordebajode1024estnreservadosparaelsistemayslopuedenserutilizadosporel User
antesdeaceptarpeticiones.
Groupestableceelidentificadordegrupoqueutilizaelservidorparaejecutarseyresponderalaspeticiones.Pordefecto:
Group www-data

ErrorLog
ErrorLogindicaelarchivo(rutacompletaopathabsoluto)dondeseguardanloserroresdelservidor.Enlseregistraloque
ocurreconApacheysuserrores.Pordefecto:
ErrorLog /var/log/apache2/error.log
Cuandoelservidorestgenerandoerroresynosabemosaquesdebidoconvieneconsultarestearchivo.
Unejemplodelneadeestearchivoeslasiguiente:
[Sun May 22 13:59:02 2011] [error] [client 58.218.199.227] File does not
exist:
/var/www/proxyheader.php

Include
Permitequeseincluyanotrosarchivosdeconfiguracinentiempodeejecucin.Lospathsorutasdadasdelosarchivospuedenser
absolutosorelativosrespectoalvalordeladirectivaServerRoot.
Ejemplo:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Indicaque,cuandoselanceelprocesoapache2yseleaelarchivodeconfiguracin/etc/apache2/apache2.conf,alllegaraestas
doslneasseincluirnenl,delosdirectoriosindicados,todoslosarchivoscuyosnombresterminencon.loady.conf como
partededichoarchivodeconfiguracin.
Enelejemplosehanindicadorutasabsolutas.
Alias
PermitecolocarcontenidowebenundirectoriofueradeldirectorioDocumentRoot.
Lasintaxises:
Alias <url-path> <recurso>
<url-path>indicalaURLdelcontenidoweb
<recurso>especificalaposicindelrecursoenelsistemadearchivos
Ejemplo:
Alias /icons/ "/usr/share/apache2/icons/"
Indicaque,siestadirectivaestincluidaenelarchivoapache2.conf,cuandoseescriba/icons/enelnavegador(http://localhost
/icons/)seaccedernalosrecursosdelsistemaubicadoseneldirectorio/usr/share/apache2/icons/.

Actividad 3.3

9 de 40
Curso Mentor Apache

CmocomprobarasculeselpuertoporelqueestescuchandoelservidorwebApache2?
Solucin:
Laordennetstatnosdiceenqupuertosestescuchandonuestramquinayaquserviciosestatendiendo.Laordennetstatcon
lassiguientesopcionesnosmostrarelpuertoparaApache2:
# netstat -atunp | grep apache2
tcp6 0 0 :::80 ESCUCHAR :::* 4239/apache2
Lasalidadelaordenmuestraqueenladireccinlocalestescuchandoenelpuerto80paracualquierdireccinexterna(*).

Secciones de configuracin

Existendostiposdeseccionesdeconfiguracin:

1. Lasqueseevalanparacadapeticinqueserecibeyseaplicanlasdirectivasqueseincluyenenlasdistintassecciones
sloalaspeticionesqueseadecanadeterminadascaractersticas.
Dentro de este grupo estn <Directory>, <Files>, <Location>, <VirtualHost> entre otras. La seccin
<VirtualHost> se ver condetalleenlaUnidad4.
2. Lasseccionesdetipo<IfDefine>e<IfModule>queseevalansloaliniciooreiniciodelservidor.Sialiniciarel
servidorlascondicionessonlasadecuadas,lasdirectivasqueincluyenestasseccionesseaplicarnatodaslaspeticiones
quesereciban.Escasocontrario,esasdirectivasincluidasseignoran.

Dentrodelprimergrupolassecciones:

<Directory> y <Files> estnrelacionadasconelsistemadearchivos.


<Location> estrelacionadaconelespacioweb.

Saber ms ... sobre algunos conceptos bsicos

Sabesculesladiferenciaentresistemadearchivosyespacioweb?

Seccin Directory

Laseccin<Directory /path/a/directorio> / </Directory>englobaunaomsdirectivasdeconfiguracinqueslo


seaplicanaldirectorioysubdirectoriosespecificados.
Elargumento/path/a/directoriopuedeser:

Unnombrededirectorio(rutaabsoluta)
Unaexpresinregular

Ejemplo:lneastomadasdelarchivo/etc/apache2/apache2.conf
<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all

10 de 40
Curso Mentor Apache

</Directory>

Para poder interpretar esta seccin explicamos las directivas que se pueden utilizar en la seccin <Directory> y son las
siguientes:
Options
Activa/Desactivalasopcionesdelservidorenundeterminadodirectorio.
Quposibilidadeshay?

DirectivaOptions Descripcin

None Nosepermiteningunaopcin.

All SepermitentodaslasopcionesmenosMultiViewsquedebeactivarseexplcitamente

ExecCGI SepermiteejecutarscriptsCGIusandomod_cgi

FollowSymlinks Permite al servidor seguir los enlaces simblicos entre este directorio y otro donde est el
enlacesimblico..

Indexes Permite al servidor generar un listado de los archivos disponibles de un directorio si no se


especifica el DirectoryIndex (por ejemplo, index.html). Es decir, ver el contenido del
directoriosinoexistepginadeinicio.

MultiViews Permite negociar los contenidos con el navegador para elegir la mejor representacin de
acuerdo con sus preferencias (idioma, conjunto de caracteres, codificacin, ...). Utiliza el
mdulomod_negotiation.

ReglasparaladirectivaOptions:
SiaundirectorioselepuedenaplicarvariasdirectivasOptionssloseusalamsespecfica,ignorndoseelresto.Lasopciones
nosemezclan.

1. SitodaslasopcionesdeladirectivaOptionsvanprecedidasporelsmbolo'+'o'-'semezclarn.
2. Cualquieropcinprecedidapor'+'seaadiralasopcionesenvigor.
3. Cualquieropcinprecedidapor'-'seeliminar.
Ejemplo

<Directory /var/www>
Options Indexes FollowSymLinks
</Directory>

<Directory /var/www/pruebas>
Options +Includes -Indexes
</Directory>

Indica que el subdirectorio /var/www/pruebas/ del directorio /var/www tiene activadas las opciones
FollowSymLinkseIncludes,peronoestaractivaIndexes.

AllowOverride
Permiteespecificarqupartesdelservidorpuedenserestablecidasenlosarchivos.htaccess.

AllowOverride Descripcin

None Losarchivos.htaccesssontotalmenteignorados.

All La configuracin del archivo .htaccess sobreescribe la configuracin dada en el sitio


correspondienteysloparaeldirectorioenelqueseespecifica.

AuthConfig Permite el uso de directivas relacionadas con la seguridad (AuthName, AuthType,


AuyhUserFile, Require, ...).Seestudiarnenotrasunidadesdelcurso.

FileInfo Activa directivas relacionadas con MIME (mod_mime), que establecen el tipo de

documento(AddType, ADDLenguage, DefaultType, ErrorDocument, ...).

11 de 40
Curso Mentor Apache

AllowOverride Descripcin

Indexes Activa directivas para la visualizacin de un directorio (DirectoryIndex,

IndexOptions, etc).

Limit Activadirectivasquecontrolanelaccesoalhost(Allow, Deny y Order).

Options Activa directivas que controlan opciones especficas del directorio (Options y

XbitHack).

Order
Especificaelordenenquevanaprocesarselasdirectivasdenyyallow.

Allow
Especificaquhostspuedenaccederaundirectoriodeterminado.Puedecontener'All'(permiteatodos),unnombrededominio,
unadireccinIP,unaredconsumscaradered,etc.

Deny
Especificaquhostsnopuedenaccederaundirectoriodeterminado.

Actividad 3.4

Crear un directorio llamado 'directorio' en /var/www/html/. En este directorio denegar la entrada a todo el
mundoypermitiratodalared192.168.1.0/24.
Solucin:
<Directory /var/www/html/directorio>
Order deny,allow
Deny from all
Allow from 192.168.1.0/24
</Directory>

Actividad 3.5

Impedirelaccesoimplcitoalsistemadearchivos

Solucin:
PordefectotodoarchivoaccesiblemedianteURLApache2permitequedichoarchivoestdisponibleparaelclienteweb.Esloque
seconocecomoaccesoimplcitoalsistemadearchivos.
Porejemplo,sicomorootseejecutalaorden:
#ln-s/public_html
cualquierclientewebpodraaccedera http://localhost/~root/ yrecorrertotalmenteelsistemadearchivos.

12 de 40
Curso Mentor Apache

Quhabraqueindicarenlaconfiguracindelservidorwebparaevitarestaposibilidad?
<Directory/>
.............
Orderdeny,allow
Denyfromall
</Directory>

Estasdosdirectivasimpidenelaccesoimplcitoalsistemadearchivos.
Acontinuacin,paradaraccesoalaszonasdelS.A.queinteresahabraqueincluirseccionesDirectoryespecficas.Porejemplo,
alapartepblicadeloshomedeusuariosloharamosenelarchivo /etc/apache2/mods-available/userdir.conf:
<Directory/var/www/*/public_html>
......................
Orderdeny,allow
Allowfromall
</Directory>

Seccin Files

Las directivas incluidas en una seccin <Files> se aplican al archivo especificado sin tener en cuenta en qu directorio se
encuentra. Es decir, la directiva <Files> limita el mbito de aplicacin de las directivas que incluye segn el nombre de los
archivos.
En el ejemplo siguiente las directivas de configuracin, cuando se colocan en la seccin principal del archivo de configuracin,
denieganelaccesoacualquierarchivollamadoprivado.htmlsintenerencuentadondeseencuentre.
<Files privado.html>
Order allow,deny
Deny from all
</Files>
Elargumentode<Files> puedeserunnombredearchivo,ounaexpresinregular.Porejemplo,paraindicarqueelargumentoes
cualquierarchivoconformatogif,jpg,jpegopngutilizaramoslasiguienteexpresinregular:
<Files ~ "\.(gif|jpe?g|png)$">
donde '?' sustituye 0 o una ocurrencia de la expresin regular anterior (1 carcter), '*' equivale a cualquier secuencia de
caracteres,'$'indicafinaldelneayla'\'seutilizaparaescaparelcarcter'.'.
Sepuedeutilizarlaseccin<FilesMatch>paratrabajarconexpresionesregulares.
Tambin se pueden utilizar de forma conjunta las secciones <Directory> y <Files> para referirse a archivos que se
encuentranenundeterminadolugardelsistemadearchivos.Porejemplo:
<Directory /var/www/dir1/>
<Files privado.html>
Order allow,deny
Deny from all
</Files>
</Directory>
quedenegarelaccesoa/var/www/dir1/privado.html ycualquierotraaparicindeprivado.htmlqueseencuentreen
/var/www/dir1/ocualquieradesussubdirectorios.

Seccin Location

La seccin <Location> est relacionada con el espacio web y cambia la configuracin para el contenido del espacio web. Por
ejemplo:
<Location /privado>
Order Allow,Deny
Deny from all

13 de 40
Curso Mentor Apache

</Location>
EstaconfiguracinevitaqueseaccedaacualquierURLqueempiecepor/privado,utilizndoselapalabraprivadocomoexpresin
regular.Porejemploseaplicaraapeticionesquecomiencenocontengan/privadoensuURL(http://localhost/privado123).

Saber mas ... sobre Location

Cundosetienenqueutilizarseccionesque seapliquensobreelsistemadearchivosycuandousarseccionesqueseapliquen
sobreelespacioweb?.

Seccin IfModule

LaseccinIfModuleenglobadirectivasqueseprocesarnsielmdulodadocomoargumentosecompilaconApache2.
UnadelasdirectivaspermitidasenIfModuleesUserDir.
<IfModule mod_userdir.c>
Userdir directorio
</IfModule>

UserDir
UserDir indica el nombre del subdirectorio, dentro del directorio home de cada usuario, donde estarn los archivos HTML que
podrnserservidosporApache.Pordefecto,elsubdirectorioespublic_html.
Porejemplo,elservidorpodrarecibirlasiguientepeticin:
http://localhost/usuario/prueba.html
Elservidorbuscaraelarchivo:/home/usuario/public_html/prueba.htmldonde/home/usuario/eseldirectoriodelusuario.
Hayqueasegurarsequelospermisosseanlosadecuados:

Enlosdirectoriosdeusuariodebenser755.
Eneldirectoriopublic_htmldebenestaractivadoslosbitsdelectura(r)yejecucin(x)(0755).
Lospermisosconqueseservirnlosarchivosdesdepublic_htmldebenser0644porlomenos.

Seccin IfDefine

IfDefineenglobadirectivasquesernprocesadasslosisecumpleunadeterminadacondicin(test)aliniciarelservidor.
<IfDefine [!]nombre_parametro>
</IfDefine>

IfDefineseusaparamarcardirectivasquesoncondicionales.
Lasdirectivasquehaydentrodeunaseccin<IfDefine>seprocesanslosieltestdevuelveunresultadopositivo.
Sieltestproduceunresultadonegativotodoloquehayaentrelosmarcadoresdecomienzoyfinalserignorado.
Eltestpuedeser:

nombre-parametro:lasdirectivasseprocesanslosielparmetrollamadonombre-parametroestdefinido.

14 de 40
Curso Mentor Apache

!nombre-parametro:hacelocontrario,yprocesalasdirectivasslosinombre-parametronoestdefinido.

Elargumentonombre-parametrosedefinecuandoseejecutaApache2porlalneaderdenesconlaopcin-Dparametro,aliniciar
elservidor.
Ejemplo:
#apache2 -DReverseProxy ...
# en el archivo apache2.conf
<IfDefine ReverseProxy>
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/libproxy.so
</IfDefine>

Indicaquesecarganlosmdulosmod_rewriteylibproxy,yaque,enelarchivode configuracinexistela directiva


IfDefinerelativaalparmetroReverseProxyconelquesehalanzadolaejecucindeApache(-D).

15 de 40
Curso Mentor Apache

Directorio conf.d
Ajustes de la configuracin

Eldirectorioconf.dcontieneajustesyconfiguracionesespecficasdeladministrador.
Sepuedehacerunajusteenlaconfiguracinsinmodificarelarchivoprincipaldeconfiguracinutilizandounarchivoconextensin
*.confdentrodeldirectorio/etc/apache2/conf.d/.
Por ejemplo, queremos aadir un Alias para un directorio (que suponemos que existe y tiene contenido) localizado en
/var/ftp/pub/yqueremosvisualizarlocomoeldirectorio/pub/enApache2.
NormalmenteseutilizanlosAliasparaasociardireccionesURLcondirectoriosquenopertenecenaldirectorioDocumentRoot.
Para ello creamos un archivo que llamaramos, por ejemplo, /etc/apache2/conf.d/aliases.conf con el siguiente
contenido:
Alias /pub /var/ftp/pub
Alaccederhaciaestenuevodirectoriovirtualconelnavegadorvemosquenoestpermitidoelacceso.Parapoderaccederdeber
haberundocumentondiceenelinterior(index.html,index.php,etc),obien,quedichodirectorioseaconfiguradoparamostrarel
contenidodelsiguientemodo:
<Directory "/var/ftp/pub">
Options Indexes Includes FollowSymLinks
AllowOverride all
</Directory>

Ladirectiva:

Indexesindicaquesedebermostrarelcontenidodeldirectorio.
FollowSymLinksposibilitalacolocacindeenlacessimblicosdentrodeldirectorio,loscualesseseguirn.
IncludesespecificaquesepermitelautilizacindelosSSI(ServerSideIncludes)queposibilitanutilizarfuncionescomo
autenticacin.
AllowOverrridepermiteutilizararchivos.htaccess.

ReiniciarorecargarApache2yaccederhaciahttp://localhost/pub/conelnavegador.Comprobarelresultado.

Busca el significado de los trminos...

SSL (Secure Sockets Layer)


SSI (Server Side Includes)

16 de 40
Curso Mentor Apache

Archivo ports.conf
Qu contiene?

Elarchivoports.confcontienelainformacinnecesariaparaqueApache2escucheendireccionesIPypuertosespecficos.
CuandoApache2seiniciacomienzaaesperarpeticionesentrantesendeterminadospuertosydireccionesdelamquinaenlaque
se est ejecutando. Sin embargo, si se quiere limitar la escucha a un determinado puerto (o varios), en unas determinadas
direcciones,oenunacombinacindeambos,hayqueespecificarlo.
Estosepuede,adems,combinarconlaposibilidaddeusarhostsvirtuales,funcionalidadconlaqueunservidorApachepuede
responderapeticionesendiferentesdireccionesIP,diferentesnombresdehostsydiferentespuertos.
Directivasasociadas:
Listen
LadirectivaListenindicaalservidorqueaceptepeticionesentrantessolamenteenlospuertosyenlascombinacionesdepuertos
ydireccionesIPqueseespecifiquen.
Si slo se especifica un nmero de puerto en la directiva Listen el servidor escuchar en ese puerto, a travs de todas las
interfacesdereddelamquina.
Si se especifica una direccin IP y un puerto, el servidor escuchar solamente en la interfaz de red a la que pertenezca esa
direccinIPysolamenteenelpuertoindicado.
SepuedenusarvariasdirectivasListenparaespecificarvariasdireccionesIPypuertosdeescucha.Elservidorresponderalas
peticionesdetodaslasdireccionesypuertosqueseincluyan.
Porejemplo,parahacerqueelservidoracepteconexionestantoenelpuerto80comoenelpuerto8000,sepuedeusar:
Listen 80
Listen 8000
Parahacerqueelservidoracepteconexionesendosinterfacesderedypuertosespecficos,usar
Listen 192.168.1.1:80
Listen 192.168.1.5:8000

17 de 40
Curso Mentor Apache

UTF-8 y codificacin de documentos


Tipos de codificacin

EnocasioneslosdocumentosHTMLnosemuestrancorrectamenteportenerproblemasrespectoaltipodecodificacinutilizada
(UTF-8,ISO-8859-1,etc.)y,porejemplo,loscaractereslatinosnoaparecencorrectamente.
UTF-8(8-bitUnicodeTransformationFormat)esunacodificacindecaracteresdelongitudvariableparaUnicodecreadoporRob
PikeyKenThompson.
UTF-8usagruposdebytespararepresentarelestndardeUnicodeparalosalfabetosdemuchosdeloslenguajesdelmundo.
UTF-8esespecialmentetilparalatransmisinsobresistemasdecorreode8bits.(es.wikipedia.org/wiki/UTF-8).

EnlaactualidadseestpasandoalsistemadecodificacinUTF-8,peroanhaymuchocontenidocodificadoenISO-8859-1.
Para mantener el antiguo sistema de codificacin se puede desactivar la funcin en Apache que establece UTF-8 como
codificacinpredefinida.
Paraelloeditarelarchivo/etc/apache2/apache2.confylocalizar:

AddDefaultCharset UTF-8

Ahoracambiarpor:

AddDefaultCharset Of

18 de 40
Curso Mentor Apache

Nombre de dominio
Utilizacin de un nombre de dominio

SienlugardetrabajarconApache2haciendosiemprereferenciaalocalhostelusuarioprefierefamiliarizarseconlautilizacindel
nombredelservidor,sepuedehacerdeformasencilla.
ParaellohayquehacerreferenciaaloshostsvirtualesqueseverncondetalleenelCaptulo-5-.Perodemomento,podemos
resolverlosinnecesidaddeentrarenexcesivos detalles.
Planteamos, entonces, la conveniencia de llamar a nuestro servidor web Apache2 (que estamos configurando) como
servidor.apache2.comdeformaque,alabrirelnavegadorpodamosindicarcomoURLlasiguiente:
http://servidor.apache2.com
Qudebemoshacer?
1. Editar el archivo /etc/hosts y en la lnea de localhost aadir este nombre, quedando de la forma siguiente:

127.0.0.1 localhost servidor.apache2.com servidor

Endefinitivaloquehemoshechoescrearunaliasalocalhost.
2.Editarelarchivo/etc/apache2/sites-available/defaulteincluirladirectivaServerNamedentrodelnicohostvirtual
existenteypordefectoconelvaloranterior:

ServerName servidor.apache2.com

SiahoraabrimoselnavegadoryvamosalaURLhttp://servidor.apache2.comcomprobamosquenosdirigealmismo
contenidoquelocalhost.

It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.

19 de 40
Curso Mentor Apache

Redireccin de directorios
Redireccionamiento

Sepuedeconfigurarundirectorioparaquelysucontenidoseanredirigidosdemodotransparentehaciacualquierotradireccin.
ParaelloseutilizaladirectivaRedirect:

Redirect 301 /webmail http://servidor.apache2.com/

Enelejemploseindicaque,siunusuariotratadeaccederalsubdirectorio/webmailenelservidor,Apache2ledeberredirigir
haciahttp://servidor.apache2.com/.
Elnmero301correspondealmensajedelprotocoloHTTPparaindicarquelaredireccinespermanente.
Si en /webmail hubiese un archivo, como por ejemplo /webmail/pruebas/pruebas.php, Apache2 hace el redireccionamiento
transparentehaciahttp://servidor.apache2.com/pruebas/pruebas.php.
HayquetenerencuentaqueelsegundoargumentoesunadireccinURLcompletaquepuedeestarenotroservidor.
Existenvariostiposderedireccionamientoqueseindicanatravsdeunaclave:

temp(302):elredireccionamientoestemporalcuandoelcontenidosolicitadonoestenellugardado,peroloestaren
elfuturo.Apache2recuerdalaURLdadaparafuturasbsquedasdeesecontenido.Sesueleutilizarenpginasqueestnen
construccin.

Redirect 302 /hola.html http://servidor.apache2.com/hola.html

permanent(301):elredireccionamientoespermanentecuandoelcontenidosolicitadoestenlanuevadireccindaday
queApache2recordar.

Redirect 301 /hola.html http://servidor.apache2.com/hola.html

gone(410):elcontenidosolicitadonoestdondeseesperaqueestyaquehasidoeliminadodefinitivamente.Esta
opcinsediferenciadelcdigoderespuesta404Notfoundqueidentificaunerror.Elcdigo410indicaquenoestall,pero
antesestabaelcontenido.

Redirect 410 /hola.html

seeother (303): este redireccionamiento indica al cliente web que el contenido original no est donde se supone que
debadeestaryquesehasustituidoporotroenotraubicacin.

Redirect 303 /hola.html http://servidor.apache2.com/adios.html

Indicaqueelarchivohola.htmlsehasustituidoporadios.html.

Saber mas ... sobre Redirect

Que diferencia hay entre la directiva Alias y la directiva Redirect?

Actividad 3.5

20 de 40
Curso Mentor Apache

Enunciado: Interpretar la siguiente lnea de redireccin:

Redirect/ejemploshttp://servidor2/nuevo_sitio
Solucin:
Si /ejemplos es un directorio ubicado, por ejemplo, en http://servidor1 la solicitud hecha sobre un archivo
hola.html del directorio ejemplos ser redireccionada a la direccin http://servidor2/nuevo_sitio/hola.html.
Si se aade el tipo de redireccin 301, sta ser permanente.

Redirect301/ejemploshttp://servidor2/nuevo_sitio

21 de 40
Curso Mentor Apache

Tipos MIME
Directivas relacionadas

AlgunasdirectivasrelacionadasconlostiposMIMEson:
TypesConfig
LadirectivaTypesConfigindicaelnombredelarchivoquecontienelalistadetiposMIMEqueconoceelservidor.Nopuedeestar
dentrodeningunaseccinyestasociadaalmdulomod_mime.
Para aadir algn tipo de extensin y tipo MIME, como por ejemplo Ogg (esun formato de audio de propsito general, con
compresin),sepuedegenerarunarchivoquepodemosllamar/etc/apache2/conf.d/extensiones.confconelcontenido:
AddType application/ogg .ogg
AddDescription "Ogg Vorbis Audio" .ogg
AddIcon /icons/sound2.png .ogg

DefaultType
LadirectivaDefaulTypeindicaeltipoMIMEqueseutilizarpordefecto,sinoseconocelaextensindelarchivoqueseest
sirviendo.Pordefectoesarchivoentextoplano(valortext/plain).
Ladirectivasepuedeencontrarfueradecualquierseccin,dentrodeunaseccinodentrodeunarchivo.htaccess.

22 de 40
Curso Mentor Apache

Resolucin de problemas
Identificacin y resolucin de problemas

Senosplantealacuestinyquhacercuandosepresentaunproblema?

Enprimerlugarsedebeconsultarelregistrodeerrores:esposiblequeelproblemapuedadeducirsedeunmensajedeerror.
Elarchivoderegistrodeerroresseencuentraen/var/log/apache2/error.log.
Serecomiendamostrarlosarchivosderegistroenunaconsolamientrasseaccedealservidorparavercmoreaccionaste
encadamomento.Conestefin,ejecuteenunaconsolaelsiguientecomandocomoroot.
Ejecutarlaorden:

# tail -f /var/log/apache2/*.log

Consultarlabasededatosdefallosenlapginawebhttp://httpd.apache.org/bug_report.html.

Consultarenlaslistasdecorreoylosforosdenoticias.

La lista de correo para los usuarios de Apache est disponible en http://httpd.apache.org/userslist.html.

Losforosdenoticias,serecomiendacomp.infosystems.www.servers.unix.

23 de 40
Curso Mentor Apache

Windows
A tener en cuenta ...

1. EsimportantetenerencuentaquemuchosdeloscontenidosexplicadosparaUbuntusontambindeaplicacinpara
Windows.Poresemotivo,siempreyencadaunidad,lapartedeUbuntuesmasextensa.
2. HayquetenerencuentaqueApache2paraWindowsnohasufridotantasmodificacionescomolaversinparaGNU/Linux.
EnconcretosigueexistiendoladirectivaServerRoot,losmdulossecargandesdehttpd.conf,etc.Esdecir,elestilode
laconfiguracinessimilaraldeApache1.

Configuracin de Apache2

El archivo de configuracin es httpd.conf y est localizado (segn el proceso de instalacin) en el directorio C:/Archivos de
programa\/pacheGroup/Apache2/conf/.
TambinestdisponibleatravsdelmendeiniciodeWindows:
Inicio > Todos los programas > Apache HTTP Server 2.2 > Configure Apache Server > Edit the Apache httpd.conf
ConfigurationFile
En el archivo httpd.conf de Windows se incluyen al final un grupo de sentencias Include de los archivos de configuracin
especficos que aaden nueva funcionalidad o modifican la configuracin por defecto del servidor web. Estos archivos de
configuracinestneneldirectorioconf/extra/.
Elfuncionamientodelasdirectivasqueseincluyenenelarchivohttpd.confeselmismoqueesasmismasdirectivasenelarchivo
apache2.confy,porlotanto,slosevaaincidirsobreaquellasquetenganunespecialintersporsusvaloresparticularesoporsu
especialsignificado.
Pero,sinembargo,enWindowsotrasdirectivasestndistribuidasenotrosarchivosdeconfiguracinincluidosenconf/default/y
lasrespectivasadaptacionesenconf/extra/.
Se recomienda repasar las directivas explicadas desde Ubuntu o visitar la web oficial de Apache2 (http://httpd.apache.org
/docs/2.2/).
Elarchivohttpd.confestdivididoencuatrosecciones:

1Directivasglobales
2DirectivasdeFuncionamiento
3Cargademdulos
4Includes

AlgunasdirectivassongeneralesoglobalesparalainstalacinyfuncionamientodeApache2.Otrasdirectivassepuedenconfigurar
deformaindependienteparadeterminadosdirectoriosy/oarchivos.Enestecasolasdirectivasestnincluidasenseccionesque
determinanelmbitodeaplicacindedichadirectiva.
Entre las secciones ms importantes tenemos las ya estudiadas desde Ubuntu GNU/Linux: <Directory>,
<DirectoryMatch>quefuncionacomo<Directory>peroadmitecomonombrededirectorioexpresionesregulares,<Files>y
<FilesMatch>(igualqueantesperoparaarchivos)y<Location>y<LocationMatch>.

24 de 40
Curso Mentor Apache

Directivas globales
Directivas globales bsicas incluidas en httpd.conf

ServerRoot
LadirectivaServerRootindicaeldirectorioprincipaldondeseencuentrantodoslosarchivosdeconfiguracinydetrabajodel
servidor.Pordefecto,lamismarutaqueladeinstalacin.
Pordefecto:
ServerRoot "C:/Archivos de programa/Apache Software Foundation/Apache2.2"
DocumentRoot
LadirectivaDocumentRootindicaeldirectorioprincipalquecontienelaestructuradedirectoriosvisibledesdelaweb.
Pordefecto:
DocumentRoot "C:/Archivos de programa/Apache Software Foundation/Apache2.2
/htdocs"
DirectoryIndex
LadirectivaDirectoryIndexindicalosarchivosqueadmiteelservidorwebcomoarchivosdeiniciodelsitioweb.
Pordefecto:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
Esto quiere decir que cuando se acceda a una URL, por ejemplo, http://www.educacion.gob.es/ se est accediendo a
http://www.educacion.gob.es/portada.htmlenestecasoDirectoryIndexserportada.html.
Se puede indicar mas de un archivo y la precedencia est asociada al orden de aparicin. Es decir, si aparecen index.html,
index.php,archivo.html,comoprimeraopcinsebuscarindex.htmlysemostrarsucontenidocomoiniciodelawebdada.Si
noseencontrarasebuscaraindex.php,etc.
Estadirectivapuedeencontrarsedentrodecualquierseccinodentrodeunarchivo.htaccess.
ErrorLog
LadirectivaErrorLogindicalalocalizacindelarchivologdeerrores.
Pordefecto:
ErrorLog "logs/error.log"
LogLevel
LadirectivaLogLevelindicalostiposdeerroresquesequierenalmacenarenelarchivoerror.log1 .Posiblesvaloresson:debug,
info,notice,warn,error,crit,alert,emerg.Estasociadaalmdulocore.
Pordefecto:
LogLevel warn
CustomLog
LadirectivaCustomLogadmitevariosparmetrosy,dependiendodeellos,tieneunafuncionalidad.

Parmetros Descripcin
common Indicaelcaminocompletodelarchivoenelquesealmacenalosaccesosalservidorweb,
llamadoaccess.log.

referer IndicaelcaminocompletodelarchivodondeseguardarlaURLquedaorigenalavisitaal
servidorweb,logs/referer.log.

agent Indica el camino completo del archivo donde se almacenan los diferentes tipos de
navegadoresconlosquesevisitaelservidorwebyelsistemaoperativo,logs/agent.log.

combined IndicaaApachequesequierenlostrestiposdelogs,common,refereryagent,enun
mismo archivo. Por defecto estcomentadoy, deesa forma, se almacenar en archivos
diferentes.

Pordefecto:

25 de 40
Curso Mentor Apache

CustomLog "logs/access.log" common


Listen
LadirectivaListenindicaalservidorqueaceptepeticionesentrantessolamenteenlospuertosyenlascombinacionesdepuertos
ydireccionesIPqueseespecifiquen.
Si slo se especifica un nmero de puerto en la directiva Listen el servidor escuchar en ese puerto, a travs de todas las
interfacesdereddelamquina.
Si se especifica una direccin IP y un puerto, el servidor escuchar solamente en la interfaz de red a la que pertenezca esa
direccinIPysolamenteenelpuertoindicado.
Pordefecto:
Listen 80

26 de 40
Curso Mentor Apache

Directivas de Funcionamiento
Directivas de funcionamiento incluidas en httpd.conf

SeccinDirectory
Laseccin<Directory/path/a/directorio>/</Directory>englobaunaomsdirectivasdeconfiguracinquesloseaplican
aldirectorioysubdirectoriosespecificados.Puedeser:

Unnombrededirectorio(rutaabsoluta)
Unaexpresinregular

Ejemplo:

<Directory "C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs">


Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

SeccinFiles
Lasdirectivasincluidasenunaseccin<Files>seaplicarnacualquierarchivoespecificado,sintenerencuentaen
qudirectorioseencuentra.Esdecir,ladirectiva<Files>limitaelmbitodeaplicacindelasdirectivasqueincluye
segnelnombredelosarchivos.
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>

Enocasionesestaseccinseincluyedentrodeunaseccin<Directory>pararemarcaruntratamientoespecialconunarchivo.

SeccinIfModule

LaseccinIfModuleenglobadirectivasqueseprocesarnsielmdulodadocomoargumentosecompilaconApache2.
Ejemplo:
<IfModule mod_mime_magic.c>
MIMEMagicFile share/magic
</IfModule>
Sielmdulomod_mime_magic.cestcompiladoenApache2,enestaseccinIfModuleladirectivaMIMEMagicFileledice
almdulomod_mime_magic.cdondeestelarchivodelostrucos:share/magicenestecaso.
Elmdulomod_mime_magicpuedecompararsealcomandoUNIX file,queexaminalosprimerosbytesdeunarchivo,yusa
"nmerosmgicos"yotrostrucosparadecidireltipoMIMEdelarchivo.
Elmdulomod_mime_magicnoestcompiladopordefecto.
Sidelantedelnombredelmduloapareceuna"!"(exclamacin)lasdirectivasincluidassonprocesadasslosielmduloindicadoen
laetiqueta<IfModule>noestcompilado.
Esimportantetenerencuentaque,cadavezqueselleveacabounamodificacinsobrealgunodelosvaloresactualesdelas
directivas, se comenten algunas de ellas o se activen, habr que reiniciar el servicio Apache para que dichos cambios estn
disponibles.ParaellohabrquepararelservicioutilizandolaopcinStopdelApacheServiceMonitor(botnderechosobreel
icono)yacontinuacinvolveralanzarelservicioseleccionandolaopcinRestart:

27 de 40
Curso Mentor Apache

Carga de mdulos
Carga de mdulos

LoadModule

LadirectivaLoadModulepermitequeApache2'sepa'queselehaincorporadodeformadinmicaelmdulocorrespondiente.
LoadModule alias_module modules/mod_alias.so

Silacargadelmdulollevaalgunaconfiguracinespecfica,stadebeirdentrodeunaseccin<IfModule>.

<IfModule alias_module>
ScriptAlias /cgi-bin/ "C:/Archivos de programa/Apache Software
Foundation/Apache2.2/cgi-bin/"
</IfModule>

28 de 40
Curso Mentor Apache

Includes
Includes

Include

La directiva Include situada en el archivo de configuracin general httpd.conf, aade o concatena el contenido del archivo
especificadoconelcontenidodelarchivohttpd.conf.

Include conf/extra/httpd-ssl.conf
Hay que ir con cuidado con los valores incluidos ya que, en funcin de ellos, el archivo puede crecer de forma
descontrolada.

29 de 40
Curso Mentor Apache

Apache2 + IIS
Apache 2 e Internet Information Services

EnWindowstieneespecialimportanciasabersisetieneotroservidorwebconfigurado,comoeselcasodelIIS.
Si es as la ejecucin de Apache puede dar problemas y mostrar un mensaje en el que se indica que no se pueden tener dos
servidoreswebescuchandoenelpuerto80.LomejorenestecasoespararelservidorIIS(sisetieneinstalado)y,paraello,hay
queira:
Paneldecontrol>Herramientasadministrativas>ServiciosdeInternet>InformationServer
Desdelaconsoladeadministracindelsistemaparar(STOP)elservicio.
EstecasoesimportantetenerloencuentaenWindows2003/2008ServerqueinstalapordefectoIIS.

30 de 40
Curso Mentor Apache

Actividades
Actividad 3.6

ConocerladirectivaAccessFileName

Solucin:
LadirectivaAccessFileNameindicaculeselnombredelarchivodeconfiguracinquesebuscarencadaunadelosdirectorios
del servidor para conocer la configuracin del mismo. Este archivo permite configurar el comportamiento de cada uno de los
directoriosindividualmente.
Paraqueestaconfiguracinfuncione,ladirectivaAllowOverridetienequetenerunvalorquelopermita.
EstadirectivaAccessFileNamenopuedeestardentrodeningunaseccinypordefectosuvaloreselarchivo .htaccess.
Comomedidadeseguridad,laconfiguracindeApacheestablecequenosemuestrelaexistenciadeestearchivoaningnusuario,
aunqueestactivalaopcindelistadodedirectorios.
EnlaseccinFilessiguienteseestablecequetodoslosarchivosquecomiencenpor.ht nosemuestren:
<Files~"^\.ht">
Orderallow,deny
Denyfromall
</Files

Actividad 3.7

Queremosconocerquieneselpropietariodelacarpetahtdocs.

Solucin:
Paraconocerquineselpropietariodelacarpeta htdocs enWindowshayqueabrirelExploradordearchivosyenEquipolocalizar
laUnidadC.
Al abrir C localizamos la carpeta de Apache Software Foundation y situndonos sobre la carpeta htdocs pulsamos el
botnderechoyseleccionamoslasPropiedades.

31 de 40
Curso Mentor Apache

AbrimoslasOpcionesavanzadas:

Comprobamosqueelpropietario delacarpeta htdocs eselgrupoAdministradores.

32 de 40
Curso Mentor Apache

33 de 40
Curso Mentor Apache

Cdigos de respuesta
Categoras de cdigos de respuesta

Los cdigos de respuesta del servidor Apache2 (tanto para Ubuntu como para Windows) estn formados por tres dgitos y se
dividenen5categoras,dependiendodeltipodemensaje.
Estascategorassediferencianentresporelprimerdgitodelcdigo:

1xx:mensajesinformativos
2xx:mensajesdeoperacionescorrectas
3xx:mensajesderedireccin
4xx:mensajesdeerrorenelcliente
5xx:mensajesdeerrorenelservidor

Latablasiguientedescribeloscdigosderespuestamasusuales:

Cdigoderespuesta Significado
200OK Lasolicitudseharealizadocorrectamente.

201Created SehaalmacenadocorrectamenteenelservidorunnuevoarchivoutilizandoelmtodoPOST.

202Accepted Lasolicitudseharecibidoyestsiendoprocesadaactualmente.

204NoContent La solicitud ha tenido xito pero no se registran cambios en la pgina actual que se muestr
cliente.

301MovedPermanently La pgina solicitada se ha eliminado de forma permanente y las futuras referencias a esa p
deberanusarlanuevaURLqueseindica.

302MovedTemporarily Lapginasolicitadahacambiadodeubicacintemporalmenteylasfuturasreferenciasaestap
deberanseguirusandolamismaURL,perolaconexinactualserredirigida.

304NotModified Laversindelapginaenlacachesigualalapginasolicitada.

400BadRequest Lasolicituddelclientecontieneunasintaxisincorrecta.

401Unauthorized Elclientehadadounacombinacindenombredeusuario/contraseaincorrecta.

402PaymentRequired Elclientedebeindicarunaformaderealizarunatransaccineconmica.

403Forbidden Controldeaccesodenegadoparalasolicituddelcliente.

404NotFound Lapginasolicitadanoexisteenelservidor.

500InternalServerError Estecdigodeerror,quenormalmenteaparecealejecutarunascriptCGI,indicaquedichosc
contienecdigoincorrectooselehaintroducidounaentradaquenopuedeprocesar.

501Notimplemented Lasolicitudsehahechoconunmtodo(GET,POST,PUT,DELETE,HEAD)noconocidopo
servidor.

502BadGateway Usando el servidor web como proxy se ha encontrado un error al cursar la solicitud a un h
externo.

503ServiceUnavailable Elservidorestprocesandoactualmentedemasiadassolicitudes.

505HTTPVersion Laversindelasolicitud(porejemploHTTP/Notsupported1.0HTTP/1.1)noesconocidapo
servidor.

34 de 40
Curso Mentor Apache

Glosario
Glosario Unidad 3

Concepto Definicin

ComandodeconfiguracinquecontrolaunoomsaspectosdelcomportamientodeApache.
Directiva

Formadedescribirunmodelodetexto.Porejemplo,"todaslaspalabrasqueempiezanconlaletra"A"o
Expresiones Regulares "todoslosnmerosdetelfonoquecontienen10dgitos".
(Regex) Las Expresiones Regulares son tiles en Apache porque permiten aplicar ciertos atributos a grupos de
archivosorecursosdeunaformaflexible.

PermiteservirdiferentessitioswebconunasolaentidaddeApache.
HostVirtual
El hosting virtual de IPs diferencia los sitios web basndose en sus direcciones IP, mientras que el
hostingvirtualbasadoennombresusasoloelnombredelhostydeestamanerapuedealojarmuchos
sitioswebconlamismadireccinIP.
VerUnidad5.

Hyper Text Markup Language. Lenguaje que permite definir el contenido y su presentacin para que el
HTML clientewebpermitavisualizarlainformacinquecontiene.Dicholenguajepermitelainclusindemedios
(grficos,sonidos,vdeos,etc.).

Unamaneradedescribireltipodedocumentoasertransmitido.Sunombrevienedelhechodequesu
MIME-type formatosetomadelasExtensionesdelMultipurposeInternetMail.
Consisteendoscomponentes,unoprincipalyotrosecundario,separadosporunabarra.Algunosejemplos
sontext/html,image/gif,yapplication/octet-stream.
EnHTTP,eltipoMIMEsetransmiteenlacabeceradelTipo Contenido.

Parteindependientedeunprograma.
Mdulo
LamayorpartedelafuncionalidaddeApacheestcontenidaenmdulosquepuedenincluirseoexcluirse.
LosmdulosquesecompilanconelbinariohttpddeApachesellamanmdulosestticos,mientrasque
losquesealmacenandeformaseparadaypuedensercargadosdeformaopcional,sellamanmdulos
dinmicos.

35 de 40
Curso Mentor Apache

Otros Glosarios

Otros glosarios relacionados con la informtica y el mundo web.


Se pueden visitar las webs siguientes:

ATI: dispone de un glosario completo de trminos informticos en http://www.ati.es/novatica/glosario/glosario_internet.html


Microsoft: http://msdn.microsoft.com/es-es/library/aa302380.aspx

36 de 40
Curso Mentor Apache

Fuentes de informacin
Documentos y enlaces de inters

1. Gua de Ubuntu: http://www.guia-ubuntu.org/index.php?title=Servidor_web


2. Configuracin global del servidor: http://httpd.apache.org/docs/2.0/es/server-wide.html
3. Introduccin a los servidores web: http://www.cibernetia.com/
4. Conceptos sobre servidores web: http://trevinca.ei.uvigo.es/

37 de 40
Curso Mentor Apache

Resumen final
Sntesis de la Unidad 3 'Configuracin'

Lospuntosadestacardeestaunidadsonlossiguientes:

1. Antes de comenzar a configurar hemos de conocer qu son las directivas de configuracin, cmo se agrupan y cul es el
significado de las ms relevantes.
2. Launidadpresentalasdiferentesdirectivasexplicandosusignificadoenbasealosvalorespordefectoquetienenasignadas.
3. SeexplicanlasseccionesmasimportantesdelosarchivosdeconfiguracintantodeUbuntucomodeWindows.
4. SeestablecenlasdiferenciasenelmododeconfiguracinentreUbuntuyWindows.
5. Sehaceespecialmencinaciertasseccionesque condicionan la presencia/ausencia de determinadas directivas.
6. Seexplicaelcontenidodelosdirectoriosquecontienenlaspersonalizacionesenlaconfiguracinquerealizanlos
administradores.
7. Seexplicalaredireccindedirectorios,cmoserealizayparaqusirve.
8. SeincluyenloscodigosderespuestadelservidorApacheascomoseexplicalaformadedetectarposiblesproblemasy
localizarlos.

38 de 40
Curso Mentor Apache

Autoevaluacin Unidad 3
Autoevaluacin

El cuestionario de autoevaluacin de la Unidad 3 est disponible en la plataforma Mentor (https://centrovirtual.educacion.es/).

39 de 40
Curso Mentor Apache

Este artculo est licenciado bajo Creative Commons Attribution Non-commercial 3.0 License
Unidad 3

40 de 40
Curso Mentor Apache

Apache
Unidad 4: Mdulos de Apache
Enestecaptuloaprenders:
elconceptodemduloparaunservidorwebylosdiferentestipos.
culessonlosmdulosbsicosdeApache2incluidospordefectoenelprocesodeinstalacin.
cmosemanejanlosmdulosdeApache2,suactivacinydesactivacin.
ladescripcinbsicadeotrosmdulosdeApache2queelusuariopuedeincluirenlaconfiguracindesuservidorweb.
lascaractersticasfundamentalesylasdirectivasasociadasalmdulouserdir.
elobjetivo,creacinyutilizacindelosarchivos.htaccess.

Materialcomplementario:

1. Archivo con las actividades de la Unidad 4. Archivo U4_Actividades.pdf


2. Mapaconceptualdelcaptulo.ArchivoU4_mapaconceptual.png
3. Glosariocompletodelcurso.Archivoglosario.pdf

1 de 24
Curso Mentor Apache

Introduccin
Objetivos

Conocerelconceptodemduloylasventajasdesuutilizacin.

Conocer los diferentes tipos de mdulos disponibles para Apache2.

Identificar los mdulos mas usuales en Apache y su funcionamiento.

Utilizar diferentes mecanismos y/o herramientas para la activacin/desactivacin de los mdulos.

Utilizarelmodulomod_userdiraplicandoloendiferentessupuestos.

Utilizarlosarchivos.htaccess.

Conocimientos previos

EnestaunidadabordamoslaconfiguracinyutilizacindemdulosdeApache2.
Es importante haber utilizado las principales directivas de configuracin y estar familiarizado con los archivos de configuracin de
Apache2.

Contenidos

Unidad4:MdulosdeApache2
A.Ubuntu

1. Definicindemduloyclasificacin
2. Descripcindelosmdulosbsicos.
3. Activacin/Instalacindemdulos.
4. Mdulomod_userdir
5. OtrosmdulosdeApache2
6. Archivos.htaccess

B.Windows

1. MdulosdeApache2enWindows
2. Archivos.htaccess

C.Findeunidad

1. Glosario
2. Fuentesdeinformacin
3. Resumenfinal
4. Autoevaluacin

2 de 24
Curso Mentor Apache

Nota

Hayquetenerencuentaqueelcaptulocontieneunadescripcindelasdirectivasdeconfiguracin delservidorwebApache2mas
significativas.Porestemismomotivomuchasdeellassonobjetodeunestudioprcticomasdetalladoenotroscaptulosqueestudian
aspectosmasconcretosdelservidor.
Elalumno,portanto,nodebesentirsedesbordadoporlaexposicinmasivadeinformacin.Estasdirectivas,juntoconotrasqueseirn
introduciendodeformapaulatina,sernobjetodeestudioalolargodeloscaptulosdeestecurso.

3 de 24
Curso Mentor Apache

Ubuntu
Nota

Como en las anteriores unidades, la primera parte es mas extensa porque incluye una serie de explicaciones acerca de la utilizacin de
los mdulos en Apache2 que son vlidas tanto para Ubuntu como para Windows.
La parte dedicada a Windows slo contiene la parte especfica y diferenciada para el tema tratado en esta unidad.

4 de 24
Curso Mentor Apache

Definicin y clasificacin
Definicin

UnmduloenApache2esunaformadeagruparciertasfuncionalidadesparaelservidorweb.
ExisteunagrancantidaddemdulosdisponiblesdesdeApache2.Lalistacompletaestenhttp://modules.apache.org.
UnodelosprincipalesmotivosporlosqueseutilizanlosmdulosenApache2esquenotodaslasinstalacionesdeservidoresweb
necesitanlasmismasfuncionalidades.
SilainstalacindeApache2arrastrasetodasuposiblefuncionalidadlanecesidaddememoriaRAMyespacioendiscoseraelevaday
elserviciosera'pesado'.Sinembargo,sisemodularizasloseincluyeloquesenecesitamediantelosmduloscorrespondientes.

Clasificacin de los mdulos

Existendostiposdemdulos:

1. Losquesecompilandeforma"esttica"cadavezquesecompilaApache2.
2. Losquesecargandinmicamente.EstopermitequeApache2cambiedinmicamentelosmduloscadavezqueseinicia,sin
necesidadderecompilartodoelprogramadenuevo.
EstaopcinsedenominaDSOoDynamicSharedObject(ObjetoCompartidoDinmico)ylosarchivoscorrespondientesaestos
mdulostienenextensin.so.

ParaqueApache2sepaqumdulosdebecargardisponeeneldirectorio /etc/apache2/ dedosdirectorios,enunoestlistadelos


mdulosdisponibles (mods-available)yenelotrolalistadelosmdulosactivados (mods-enabled).

Pordefecto,lapropiainstalacindelpaquete.debdeApache2yainstalaunaseriedemdulosbsicos,entreelloselquepermitela
cargadinmicademdulos.Paraconocerculessonejecutarlaorden:

#apache2-l
Compiledinmodules:
core.c
mod_log_config.c
mod_logio.c
worker.c
http_core.c
mod_so.c

5 de 24
Curso Mentor Apache

Mdulos bsicos
Descripcin de los mdulos bsicos

IncluimosunabrevedescripcindelosmdulosmasimportantesybsicosdeApache2.

core.c

ContieneutilidadesdeApache2queestnsiempredisponiblesysonrequeridasentodainstalacin.
Lasdirectivasdisponiblesapartirdeestemduloson:

AccessFileName: especificaelnombredelficherodeconfiguracinparticulardeundirectorio.Enestedirectoriosepueden
incluirlasdirectivasquequeremosqueseapliquenaesedirectorioconcreto.

AccessFileName.htaccess

AllowOverride: yaestudiadaenlaUnidad2.
AuthName: estableceelmbitoparaautenticacinHTTP.

AuthName"Midominio"

Otrasdirectivasson:AuthType, DefaultType, DocumentRoot, ErrorLog


Seccionesdisponibles,yyaestudiadas,apartirdeestemduloson:

Directory - DirectoryMatch
Files - FilesMatch
IfDefine IfModule

http_core.c

Contieneelsoportebsicohttp,necesarioencadainstalacindeApache2.2.

mod_access.c

Permiteelcontroldeaccesobasadoenelnombredehost,direccinIPuotrascaractersticasdelapeticindelcliente.Limitaelacceso
URL.
Directivasutilizables:

allow indicalapartepermitidadelaslistasdecontroldeaccesoydeterminaaquhostsselespermiteacceso.
deny indicalapartebloqueadadelaslistasdecontroldeaccesoydeterminaaquhostsnoselespermiteacceso.
orderespecificalasecuenciaenlaqueseprocesanlasreglasallowydeny.

mod_dir.c

EstablecelalistadenombresdearchivosquesepuedenutilizarsinoseindicaunnombredearchivoenunaURLquereferenciaun
directorio.
Elndicedeundirectoriopuedevenirdadodedosformas:

Unarchivoescritoporelusuario,generalmentellamado index.html. Ladirectiva DirectoryIndex estableceelnombrede


estearchivoyqueescontroladoporelmdulomod_dir.
Ounalistageneradaporelservidoryqueesproporcionadaporelmdulomod_autoindex.

Elvalorpordefectodeladirectiva DirectoryIndexeselsiguiente:

DirectoryIndexindex.htmlindex.cgiindex.plindex.phpindex.xhtml

Ejemplo:sisepasalaURLhttp://servidor/directorio/elnavegadorwebrecibeelcontenidodeunarchivoindex.htmlqueexistaenese
directorio.

6 de 24
Curso Mentor Apache

mod_alias.c

Engeneralpermitelaredireccinylaasignacindepartesdelsistemadearchivosfsicoaentidadeslgicasaccesiblespormediodel
servidorweb.
LasdirectivascontenidasenestemdulopermitenlamanipulacinycontroldepeticionesdeURLsquelleganalservidor.

AliaspermitemapearURLsypathsdelsistemadearchivoslocal.Deestaformacontenidosquenoestndirectamentepor
debajodelvalorde DocumentRoot seanservidoscomopartedelrbolwebdedocumentos.
ScriptAlias adems del efecto anterior determina o marca el directorio destino como contenedor slo de ejecutables,
generalmentescriptsCGI.
AliasMatchaadeexpresionesregulares.

Redirect se utiliza para indicar a los navegadores que el documento buscado ha cambiado de localizacin (en el mismo
servidoroenunaubicacinexterna).

RedirectMatch seutilizacuandolaredireccinesunaURLquecontieneexpresionesregulares.

mod_auth_basic.c

AutenticacindeusuariosatravsdelosmtodosestndardeApache2.
EstemdulopermitelautilizacindeautenticacinbsicaHTTPpararestringirelaccesodeusuariosatravsdearchivosdetextode
contraseasygrupos.
EstemduloseestudiacondetalleenlaUnidad6.

mod_auth_digest.c

AutenticacindeusuariosusandoautenticacinMD5.EstemdulopermitelautilizacindeautenticacindigestHTTP.
SeestudiacondetalleenelCaptulo6.
Otrosmdulosrelacionadosconlaautenticacinson:

Mdulo Descripcin

mod_authn_anon
Permiteausuariosannimosaccederareasquerequierenautenticacin.

mod_authn_dbm
AutenticacindeusuarioutilizandoarchivosDBM.

mod_authn_file
Autenticacindeusuarioutilizandoarchivosdetexto.

mod_authnz_ldap
PermitequesepuedausarunabasededatosLDAPparaalmacenarlascredencialesenla
autenticacinbsicaHTTP.

mod_authz_*
Permiten o deniegan el acceso (autorizacin) a los recursos basndose en el acceso de
usuariosautenticados.

mod_authz_host
AutorizacinbasadaenlaIPonombredelequipocliente.

mod_log_config.c

Registroflexibledelaspeticionesdelclientehechasalservidor.
Losregistrosseescribenenunformatopersonalizable,ysepuedenescribirdirectamenteaunarchivo,oaunprogramaexterno.
EstemduloseestudiaenlaUnidad8.

7 de 24
Curso Mentor Apache

worker.c

MdulodeMultiProcesamiento(MPM)queimplementaunservidorhbridomultiproceso-multihebra.
Usandohebrasparaatenderpeticioneselservidorpuedeservirunmayornmerodepeticionesconmenosrecursosdesistemaqueun
servidorbasadonicamenteenprocesos(http://httpd.apache.org/docs/2.2/mod/).

mod_mime.c

Determinaeltipodearchivoporsunombre.
Asociavariosbitsdemeta-informacinconarchivosatravsdesuextensindenombredearchivo.
La meta-informacin incluye su tipo MIME, idioma, juego de caracteres y codificacin. Esta informacin se enva al navegador, y
participaenlanegociacindelcontenido,ylaspreferenciasdelusuarioserespetanalelegirunodelosposiblesarchivosaservir.

mod_status.c

Muestrainformacininternaacercadelaactividadyfuncionamientodelservidor.
LaestadsticaactualdelservidorsepresentadeunaformafcilmentelegiblemedianteunapginaHTML.Silapginaesrequeridase
puedehacerunrefrescoautomtico.Otrapginaproporcionaunalistalegibleporlamquinasimpledelestadoactualdelservidor.

mod_autoindex.c

Permitevisualizarellistadodedirectoriosgeneradoporelservidor.
ActadeformasimilaralcomandolsdeGNU/Linux.EstageneracinautomticaseactivautilizandoladirectivaOptionsdelaforma:

Options+Indexes

mod_negotiation.c

ProporcionalavisualizacincondicionaldedocumentosbasndoseenloscamposContent-Encoding,Content-Language,Content-Length
yContent-TypedelascabecerasHTTP.

mod_so.c

CargayejecutamdulosDSO.
Contienelasdirectivasnecesariasparaponerenmarchaobjetosdinmicoscompartidos.

Nota:Lainformacindeestepuntohasidoparcialmenteextradadelapginaoficialhttp://httpd.apache.org/.

8 de 24
Curso Mentor Apache

Activacin / Instalacin
rdenes a2enmod / a2dismod

Para activar un mdulo de Apache2 disponible en el directorio /etc/apache2/mods-available/essuficienteejecutarcomoroot


(ounusuariosudo)laordena2enmodsobrel.

Porejemplo,sequiereactivarelmdulouserdir.Paraello:

1. Comprobamosqueestdisponibleen/etc/apache2/mods-available/:

#ls/etc/apache2/mods-available/

authz_dbm.load dav_lock.load imagemap.load proxy_http.load

authz_default.load dbd.load include.load proxy.load

authz_groupfile.load deflate.conf info.load rewrite.load

authz_host.load deflate.load ldap.load setenvif.load

authz_owner.load dir.conf log_forensic.load sick-hack-to-update-


modules

authz_user.load dir.load mem_cache.conf speling.load

autoindex.load disk_cache.conf mem_cache.load ssl.conf

cache.load disk_cache.load mime.load ssl.load

cern_meta.load dump_io.load mime_magic.conf status.load

cgid.conf env.load mime_magic.load suexec.load

cgid.load expires.load negotiation.load unique_id.load

cgi.load ext_filter.load proxy_ajp.load userdir.conf

charset_lite.load file_cache.load proxy_balancer.load userdir.load

dav_fs.conf filter.load proxy.conf usertrack.load

dav_fs.load headers.load proxy_connect.load version.load

dav.load ident.load proxy_ftp.load vhost_alias.load

2. Activamoselmduloyrelanzamoselservicioapache2:

#a2enmoduserdir
Enablingmoduleuserdir.
Run'/etc/init.d/apache2restart'toactivatenewconfiguration!
#/etc/init.d/apache2restart

3. Estaordencreadosenlacessimblicoseneldirectorio /etc/apache2/mods-enabled/ hacialosarchivoscorrespondientes


en/etc/apache2/mods-available/. Locomprobamos:

# ls -al /etc/apache2/mods-enabled
lrwxrwxrwx 1 root root 30 2011-05-26 19:09 userdir.conf -> ../mods-available
/userdir.conf
lrwxrwxrwx 1 root root 30 2011-05-26 19:09 userdir.load -> ../mods-available
/userdir.load

9 de 24
Curso Mentor Apache

userdir.confcontienelaconfiguracinpordefectodedichomdulo
userdir.load contienelalneacorrespondientealacarga (LoadModule) dedichomduloindicandoelpath (/usr/lib
/apache2/modules/mod_userdir.so) dondeseencuentranlosmduloscompiladosypreparadosparalacargadinmica
(.so).

Instalacin manual de mdulos

apxs2 (APache eXtenSion tool) es una herramienta muy importante para los desarrolladores de mdulos.
apxs2

Permitecompilareinstalarmedianteunslocomandolosmdulosdisponiblesapartirdelfuente(extensin.c).
Permitelainstalacindemdulosdisponiblesenformadearchivosdeobjetos(extensin.o)olibrerasestticas(extensin.a).

A partir de las fuentes, apxs2 crea un objeto dinmico compartido (DSO) que puede ser utilizado directamente como mdulo por
Apache2.
Lautilizacindelaordenapxs2requierelainstalacindelpaqueteDebianapache2-threaded-dev.

#apt-getinstallapache2-threaded-dev
Tambinrequierequeestdisponibleelmdulomod_so(sehacomprobadoquepordefectovieneincorporado).
Laordensiguientepermiteinstalarunmduloapartirdelcdigofuente:

#apxs2-cmod_foo.c
gcc-fpic-DSHARED_MODULE-I/path/to/apache/include-cmod_foo.c
ld-Bshareable-omod_foo.somod_foo.o
#apxs2-i-amod_foo.c
cpmod_foo.so/path/to/apache/modules/mod_foo.so
chmod755/path/to/apache/modules/mod_foo.so
[activatingmodule`foo'in/path/to/apache/etc/httpd.conf]
-cindicaquesecompilaelfuentemod_foo.c
-iindicaqueseinstalaunoomsobjetoscompartidos(DSO)
Laprimeraordencompilaylasegundainstala(i)yactiva(a)elmdulo.
Otrasopcionesdisponibles:
-opermiteindicarelnombrequeseleasignaalobjetoDSO(.so).Sinoseincluyesetomacomonombreelmismoqueelfuente.Enel
ejemplosera:mod_foo.so.
-aautomticamenteactivaelmduloyaadelalnea LoadModule correspondienteenelarchivodeconfiguracin apache2.conf

10 de 24
Curso Mentor Apache

Mdulo mod_userdir
Definicin

Unodelosmdulosmsconocidosyqueacabamosdeactivaresmod_userdir.
mod_userdirpermitequecualquierusuariodelservidorpuedacrearsuespaciowebenundirectorioocarpetadentrodesucuenta.
Esdecir,permiteasociarsitiosconlosusuariosdelsistema.

Directivas asociadas a mod_userdir

Lasdirectivasdisponiblesparaestemduloson:

UserDirindicaelnombredelsubdirectorio,dentrodeldirectoriohomedecadausuario,dondeestarnlosarchivosHTMLque
podrnserservidosporApache2.
Pordefecto,elsubdirectorioes public_html.

UserDirpublic_html

Tambinpermiteindicarusuariosquepuedendisponerdeesteespacioweb:

UserDirenableusuario1usuario2...usuarioN

Ladirectivaanteriorpermiteaestosusuariostenerdirectoriodeinicioaccesiblevaweb.

UserDirdisableusuario1usuario2...usuarioN

Ladirectivaanteriordeshabilitaaestosusuariosparatenerdirectoriodeinicioaccesiblevaweb.

usuario1,usuario2,...sonusuariosquetienenloginenelsistema.Siestnactivospodemosponerelcarcter'~'enloscaminosdelas
URLs.Porejemplo,siescribimos:

http://servidor.apache2.com/~usuario1
seaccedealhomedelusuarioynoaldirectorio /var/www/alqueaccederamossipusisemosslo servidor.apache2.com.

Sisequiereaccederalapginawebsinnecesidaddeutilizarelcarcter'~'habrquedefinirunaliasen /etc/apache2/conf.d
/alias.

alias/usuario1//home/usuario1/public_html/

Elarchivodeconfiguracinpordefectoparaestemdulo /etc/apache2/mods-available/userdir.conf,contiene:

<IfModulemod_userdir.c>
UserDirpublic_html
UserDirdisabledroot
<Directory/home/*/public_html>
AllowOverrideFileInfoAuthConfigLimit
OptionsMultiViewsIndexesSymLinksIfOwnerMatchIncludesNoExec
</Directory>
</IfModule>

Estaconfiguracinindicaqueeldirectoriodondeestarnlosarchivoshtmldelosusuarioses public_html (podemoscambiar


elnombre).
Elusuariorootestdesactivado(porseguridad).Sinoestuviesedesactivadoaccediendoa servidor.apache2.com/~root

11 de 24
Curso Mentor Apache

sepodrallegaraldirectorioroot.
La seccin <Directory> est indicando que loshome de todoslosusuariospodrn serlistadossuscontenidos
(Options Indexes). Esdecir,cualquierusuariocuyohomecontengaeldirectorio public_htmlpodrpublicarsu
contenidoenelservidorApache2correspondiente.

12 de 24
Curso Mentor Apache

Otros mdulos de Apache2


Descripcin

OtrosmdulosimportantesparaApache2(algunosdeellosnuevos)sonlossiguientesyqueseirnestudiandoamedidaquesevayan
necesitando:

mod_ssl

MdulonuevodesdeApache2.0.
EstemduloesunainterfazparalosprotocolosdeencriptadoSSL/TLSdeOpenSSL.
SevercondetalleenlaUnidad6.

mod_dav

MdulonuevodesdeApache2.0.
EstemduloimplementalaespecificacindelHTTP DistributedAuthoringandVersioning(DAV)paracolgarymantenercontenidos
web.
SevercondetalleenlaUnidad8.

mod_deflate

MdulonuevodesdeApache2.0.
Estemdulopermitesoportarnavegadoresquerequierenqueelcontenidoseacomprimido(algoritmodeflate)antesdeserservidoal
cliente,ahorrandoanchodebanda.

mod_headers

EstemdulopermitelapersonalizacindelaspeticionesHTTPylascabecerasdelasrespuestas.

mod_proxy

ImplementaunproxycachparaApache2.
ElmduloproxycumplelosrequerimientosdelaespecificacinHTTTP/1.1.
Adems, se han incorporado nuevas secciones de configuracin a la directiva <Proxy> que hacen mas fcil (e internamente ms
rpido)elcontroldelossitioswebqueusanproxys.Elmduloestahoradivididoenmdulosespecficosparacadaprotocolo,incluidos
proxy_connect,proxy_ftpyproxy_http.
SevercondetalleenlaUnidad9.

mod_include

Permiteinclusionesdelladodelservidor.
Aplica SSI (Server Side Includes) que, como ya se ha indicado, son documentos HTML que incluyen instrucciones condicionales
analizadasporelservidorantesdeserenviadosalcliente.

13 de 24
Curso Mentor Apache

Archivos .htaccess
Definicin

Los archivos .htaccess permiten a los usuarios que no tienen permisos modificar la configuracin y as poder ejercer
algncontrolsobreelcomportamientodesupartedelservidorApache2.
Lasdirectivasquemodificanelcomportamientosecolocanenunarchivo.htaccess situadoeneldirectorioalquetiene
queafectar,juntoatodossussubdirectorios.
Lasmodificacionesintroducidasnorequierenreiniciarelservidorweb.
Para que el servidor haga caso de los archivos .htaccess hay que incluir la directiva AllowOverride (permite
sobreescritura).
Sisequieredeshabilitarcompletamentelautilizacindeestosarchivoshayqueincluirladirectiva:

AllowOverrideNone

Directivas en .htaccess

Directivasrelacionadas:

AccessFileName

AccessFileName permitemodificarelnombredeestearchivocuyovalorpordefectoes .htaccess.

Enelarchivodeconfiguracin /etc/apache2/apache2.confencontramos:

AccessFileName.htaccess

AllowOverride

AllowOverride controlaelcomportamientodelarchivo .htaccess. Seutilizadentrodesecciones <Directory>.

AllowOverrideAll|None|Tipo_de_Directiva
donde:

None:losarchivos.htaccesssontotalmenteignorados
All:laconfiguracindelarchivo.htaccesssobreescribelaconfiguracindeapache2.conf paraesedirectorioconcreto.
Tipo_de_Directivapuedeser:
AuthConfigdirectivasdeautenticacin
FileInfocontroldeltipodedocumentos(mod_mime)
Indexescontrolalavisualizacindeundirectorio
Limitspermitedirectivasdecontroldeacceso
Optionscontrolalosserviciosdeundirectorio

Enconcreto,escribir:

AllowOverrideAuthConfigFileInfoIndexesLimitsOptions
AllowOverrideAll
estotalmenteequivalente.
Engeneral,sivamosalaweboficialhttp://httpd.apache.org/docs/2.2/en/mod/quickreference.htmlaquellasdirectivasquetenganuna'h'
enlapenltimacolumnaestndisponiblesparaelarchivo .htaccess.

14 de 24
Curso Mentor Apache

Utilizacin de archivos .htaccess

Losmotivosfundamentalesparanopermitir(onorecomendar)lautilizacindearchivos .htaccess sonlossiguientes:

1. Elprimeroesdefuncionamiento.
CuandoseactivaAllowOverride parapermitirelusodearchivos .htaccess, Apache2mirarencadadirectoriobuscando
estosarchivos.Deestaformaentranenfuncionamientotantosiseutilizancomosino.Ademselarchivo .htaccess secarga
cadavezquesesolicitaundocumento.
AdemsApache2buscararchivos.htaccess entodoslosdirectoriosdenivelessuperiores,paratenerelconjunto
completo de directivasque debe aplicar.As,siun archivo se solicita fuera de un directorio /var/www/ejemplo,
Apache2debebuscarlosarchivossiguientes:

/.htaccess
/var/.htaccess
/var/www/.htaccess
/var/www/ejemplo/.htaccess
Entonces, para cada acceso a un archivo fuera de ese directorio, hay 4 accesos adicionales al sistema de archivos, incluso
aunqueningunodeesosarchivosestuvierapresente.Estoocurrirasloenelcasodequelosarchivos.htaccessestuvieran
permitidosen/,quenodeberserelcaso.
2. Lasegundaconsideracinesdeseguridad.
Se est permitiendo que los usuarios modifiquen la configuracin del servidor y pueden ser cambios de los que no se tiene
control.Hayquedocumentarexactamentequsehaestablecidoen AllowOverride paraconocerexactamentequnivelde
privilegiossehadadoalosusuarios.

Es importante saber que es completamente equivalente poner un archivo .htaccess en el directorio /var/www/ejemplo/
conteniendounadirectiva,aponerlamismadirectivaenunaseccin<Directory> enlaconfiguracindelsitioprincipaldelservidor.
Archivo .htaccess en /var/www/ejemplo cuyo contenido es:

AddTypetext/ejemplo.eje

Tieneidnticoefectoqueen /etc/apache2/sites-available/defaultaadir:

<Directory/var/www/ejemplo>
AddTypetext/ejemplo.eje
</Directory>

ConladiferenciaqueestearchivosecargacuandoApache2arrancaysinembargoalarchivo.htaccessseaccedecadavezquese
solicitaunarchivo.

15 de 24
Curso Mentor Apache

Windows
A tener en cuenta ...

ElconceptoysentidodelosmdulosenWindowsesidnticoqueenUbuntu.
Existealgunadiferenciaencuantoaculesdeellosvienenincluidosdeserieenlosrespectivospaquetesinstalables.Porejemplo,en
generallasversionesdeApache2paraGNU/Linuxincluyenelmdulomod_sslquegarantizalascomunicacionesseguras,sinembargo
enWindowssehadedescargarelarchivo.msiespecialquellevasoporteSSL.

16 de 24
Curso Mentor Apache

Mdulos de Apache2
Mdulos en Apache2 con Windows

Los mdulos instalados por defecto estn disponibles en el directorio C:\Program Files\Apache Software Foundation\Apache2.2
\modules.
Lafilosofadeactivacin/desactivacindemdulosenWindowssemantieneconrespectoalaversindeApache1.3.Esdecir, para
activar un mdulo se aade (o descomenta) la lnea LoadModule correspondiente en el archivo httpd.conf.
Porejemplo:

LoadModule alias_module modules/mod_alias.so

queactivaelmdulomod_alias.
Noexiste,portanto,ningunaherramientaa2enmod/a2dismodparaactivar/desactivarlosmdulos,niexistentampocolosdirectorios
mods_availableymods_enabled.Laactivacinesentiempodeejecucin.
Por ejemplo, una seccin tpica de carga de mdulos del archivo C:\Archivos de programa\Apache Software
Foundation\Apache2.2\conf\httpd.conf,paraunainstalacinpordefectodeApache2,tendraelsiguienteaspecto:

LoadModule actions_module modules/mod_actions.so

LoadModule alias_module modules/mod_alias.so

LoadModule asis_module modules/mod_asis.so

LoadModule auth_basic_module modules/mod_auth_basic.so

.......................................................

EnelarchivoexistenotraslneasLoadModulecomentadas.Sisequiereactivarelmdulocorrespondientebastacondescomentar
dichalnea.

Loscomportamientosespecficosparacadamdulosepuedenincluirenlaseccin<IfModule>enelpropioarchivohttpd.confo
enarchivosdedicadosparacadamduloque,conunInclude,seaadenahttpd.conf.
Porejemplo,elmdulomod_dir.sotienesusdirectivasenunaseccin<IfModule>dentrodelpropiohttpd.conf:

<IfModule dir_module>
DirectoryIndex index.html
</IfModule

El modulo mod_userdir.so sin embargo, dispone de un archivo especfico en conf/extra llamado httpd-
userdir.conf queincluyetodalaconfiguracinespecficaparadichomdulo:

# Settings for user home directories

# Required module: mod_userdir

# UserDir: The name of the directory that is appended onto a user's home

......................................................................

UserDir "My Documents/My Website"

# Control access to UserDir directories. The following is an example

17 de 24
Curso Mentor Apache

# for a site where these directories are restricted to read-only.

<Directory "C:/Users/*/My Documents/My Website">

AllowOverride FileInfo AuthConfig Limit Indexes

Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

<Limit GET POST OPTIONS>

Order allow,deny

Allow from all

</Limit>

<LimitExcept GET POST OPTIONS>

Order deny,allow

Deny from all

</LimitExcept>

</Directory>

Podemoshacersobrellasmodificacionesnecesariasyutilizarun Include en httpd.conf paraincorporarlasalaconfiguracin


globaldeApache2.

Include conf/extra/httpd-userdir.conf

Ycomprobarqueestdescomentadalalnea:

LoadModule userdir_module modules/mod_userdir.so

18 de 24
Curso Mentor Apache

Archivos .htaccess
Utilizacin en Windows

Comoyadefinimos,.htaccessesunarchivoocultoenundirectoriodelservidorquepermiteincluirdirectivasdeconfiguracindel
servidorwebApache2.
NormalmenteesutilizadoporlosusuariosparapersonalizarelcomportamientodelservidorApache2cuandoaccedanasusespacios
web. As, cuando se realiza una peticin al servidor este busca el archivo en el directorio solicitado y si existe da prioridad a las
directivasincluidasenl.
Para crear un archivo .htaccess abrir el Bloc de notas, escribir las directivas y guardarlo con el nombre
.htaccess . Hay que incluir las comillas para que no se guarde con la extensin txt.
Como el archivo ha sido creado por un usuario para personalizar el acceso a su web, si este usuario:

existe en el sistema: lo copia en el directorio al que afecta.

no existe en el sistema: subir el archivo al servidor (va FTP)

Apartirdeahora,cadavezqueelnavegadoraccedaaldirectorioelservidorloleeryejecutar.
Paraqueelservidorhagacasodelosarchivos.htaccesshayqueincluirladirectivaAllowOverride(permitesobreescritura).

Sisequieredeshabilitarcompletamentelautilizacindeestosarchivoshayqueincluirladirectiva:

AllowOverrideNone

Pordefectovienelaopcindesactivada.
Enelcasodequesepermitasuutilizacin,lasdirectivasrelacionadasson:

AccessFileName que permite modificar el nombre del archivo por defecto. Se incluye en el archivo de
configuracin httpd.conf:

AccessFileName .htaccess

AllowOverride quecontrolaelcomportamientodelarchivo .htaccess. Seincluyeenlaseccin<Directory>.

AllowOverrideAll|None|Tipo_de_Directiva

19 de 24
Curso Mentor Apache

Glosario
Glosario Unidad 4

Concepto Definicin
Identificacinpositivadeunaentidadderedtalcomounservidor,uncliente,ounusuario.
Autenticacin

Definicinestndarparauninterfazentreunservidorwebyunprogramaexternoquepermitehacerpeticionesde
CGI
servicioalosprogramasexternos.

ProtocolocreadoporNetscapeCommunicationsCorporationparalaautenticacinencomunicacionesengeneral
EncriptadoSSL/TSL
y encriptado sobre redes TCP/IP. Su aplicacin ms popular es HTTPS, el Protocolo de Transferencia de
Hipertexto(HTTP)sobreSSL.TSLeslaevolucindeSSL.

Loshilosohebrassonsimilaresalosprocesosenqueambosrepresentanunasecuenciasimpledeinstrucciones
Hebras
ejecutadaenparaleloconotrassecuencias.Loshilossonunaformadedividirunprogramaendosomstareas
quecorrensimultneamente.

SetratadeservirdiferentessitioswebconunasolaentidaddeApache.ElhostingvirtualdeIPsdiferencialos
HostVirtual
sitios web basndose en sus direcciones IP, mientras que el hosting virtual basado en nombres usa solo el
nombredelhostydeestamanerapuedealojarmuchossitioswebconlamismadireccinIP.

LDAP (Lighweight Directory Access Protocol) es un servicio de directorio ordenado y distribuido para buscar
LDAP
diversainformacinenunentornodered.LDAPpuedeconsiderarseunabasededatos(aunquesusistemade
almacenamientopuedeserotrodiferente)alquepuedenrealizarseconsultas.

Parteindependientedeunprograma.LamayorpartedelafuncionalidaddeApacheestcontenidaenmdulos
Mdulo
quepuedenincluirseoexcluirse.LosmdulosquesecompilanconelbinariohttpddeApachesellamanmdulos
estticos,mientrasquelosquesealmacenandeformaseparadaypuedensercargadosdeformaopcional,se
llamanmdulosdinmicosoDSOs.Losmdulosqueestnincluidospordefectodellamanmdulosbase.Otros
mdulosdisponiblesparaApachenosedistribuyenpordefectoysonllamadosmdulosdeterceros.

Un recurso puede estar disponible en varias representaciones. Por ejemplo, puede ser que est disponible en
Negociacin de
variosidiomasovariostiposdemedios,ounacombinacin.Unaformadeseleccionarlaopcinmsapropiada
Contenido
es dar al usuario una pgina del ndice, dejarle seleccionar. Sin embargo es posible que el servidor elija
automticamente. Esto es posible porque los navegadores pueden enviar sus preferencias como parte de la
peticin.Porejemplo,unnavegadorpuedeindicarqueprefierelainformacinenfrancs.

SSI Server Side Includes: comentarios especiales incluidos en el html que al leerlos el servidor ejecuta
accionescomoincluirtrozosdehtml,ejecutarunprogramacgi,fecha,hora,...

Otros Glosarios

Otros glosarios relacionados con la informtica y el mundo web.


Se pueden visitar las webs siguientes:

ATI: dispone de un glosario completo de trminos informticos en http://www.ati.es/novatica/glosario/glosario_internet.html


Microsoft: http://msdn.microsoft.com/es-es/library/aa302380.aspx

20 de 24
Curso Mentor Apache

Fuentes de informacin
Documentos y enlaces de inters

1. Gua de Ubuntu: http://www.guia-ubuntu.org/index.php?title=Servidor_web


2. Introduccin a los servidores web: http://www.cibernetia.com/
3. Conceptos sobre servidores web: http://trevinca.ei.uvigo.es/
4. Mdulos de Apache en Ubuntu: http://www.socinfo.com/ubuntu/apache/modulos/activar-e-instalar
5. Mdulos de Apache en Windows: http://www.apachelounge.com/

21 de 24
Curso Mentor Apache

Resumen final
Sntesis de la Unidad 4 'Mdulos en Apache2'

Lospuntosadestacardeestaunidadsonlossiguientes:

1. UbuntuyWindowscompartenlautilizacindelosmdulosdeApache,peronolosmecanismosdeinstalaciny/oactivacin.
2. Ubuntuestructuralosmdulosendirectoriosdiferenciados:modulosdisponiblesymodulosactivados.
3. Disponederdenesespecficaspararealizarlaactivacin/desactivacindelosmdulos.
4. Losarchivos.htaccesspermitenalosusuariosquenotienenpermisosmodificarlaconfiguracinyaspoderejerceralgncontrol
sobreelcomportamientodesupartedelservidorApache2.
5. Esimportanteporseguridadmanteneruncontrolestrictosobrelautilizacindelosarchivos.htaccess.
6. DesdeWindowslaestructuradeApach2sigueladelaversin1.3.
7. Enelarchivohttpd.confestnlaslneasdecargadelosdiferentesmdulosyquehayquedescomentarparaqueseactiven.
8. Aquellosmdulosquerequieranunaconfiguracinespecficaopersonalizadasepuedengenerararchivosdeconfiguracinquese
aadiranahttpd.confmedianteIncludes.

22 de 24
Curso Mentor Apache

Autoevaluacin Unidad 4
Autoevaluacin

El cuestionario de autoevaluacin de la Unidad 4 est disponible en la plataforma Mentor (https://centrovirtual.educacion.es/).

23 de 24
Curso Mentor Apache

Este artculo est licenciado bajo Creative Commons Attribution Non-commercial 3.0 License
Unidad 4

24 de 24
Curso Mentor Apache

Apache
Unidad 5: Hosts virtuales


Enestecaptuloaprenders:
elconceptodehostvirtual.
lostiposdehostsvirtualesquepuedemanejarApache2ysufundamento.
Losdirectoriosyarchivosimplicadosensuconfiguracin.
Lasrdenesrelativasasumanipulacin.
cmosedefinenloshostsvirtualesdeApache2,suactivacinydesactivacin.
lautilizacinbsicadeloshostsvirtualesdeApache2.

Materialcomplementario:

1. Archivoconlasactividadesdelaunidad.ArchivoU5_Actividades.pdf
2. Mapaconceptualdelcaptulo.Archivo U5_mapaconceptual.png
3. Glosariocompletodelcurso.Archivo glosario.pdf

1 de 29
Curso Mentor Apache

Introduccin
Objetivos

ConocerelconceptoyfuncionalidaddeloshostsvirtualesenApache2.

Conocer los tipos de hosts virtuales.

Conocer y trabajar con las directivas de configuracin directamente


implicadas.

Realizar la configuracin y puesta a punto de hosts virtuales.

Conocimientos previos

En esta unidad abordamos la configuracin y utilizacin de los hosts virtuales e Apache2 . Es importante tener claros los
mecanismosdeconfiguracindeApacheenambossistemasoperativosUbuntuyWindowsylasdiferenciasentreambos.

Contenidos

Unidad5:Hostsvirtuales
A.Ubuntu

1. Definicin de host virtual y tipos


2. Directivas relacionadas
3. Host virtual basado en nombres
4. Host virtual basado en IP

B. Windows

1. Diferencias con Ubuntu


2. Host virtual basado en nombres
3. Host virtual basado en IP

C. Fin de unidad

1. Glosario
2. Fuentes de informacin
3. Resumen final
4. Autoevaluacin

2 de 29
Curso Mentor Apache

Ubuntu:

3 de 29
Curso Mentor Apache

Definicion de host virtual y tipos


Definicin de Host virtual

TrabajarconHostsVirtualesconsisteenejecutarmsdeunsitiowebenelmismoservidor.
MedianteloshostsvirtualesApache2nospermitelaposibilidaddealojarvariosdominiosenunasolamquina.
Deesaforma,cuandounapeticinentraenelservidorApache2desdeunnavegadorwebatravsdeunaIPdada,Apache2
compruebaelnombrededominioqueseestsolicitandoymuestraelcontenidoasociadoadichonombrededominio.
Lautilizacindehostsvirtualestiene:

1. Ventajas

Versatilidad:creadiferentessitioswebconfigurables
Precio:senecesitaslounamquinaparaalojarvariosservidoresweb
Configuracin:unaconfiguracindelsistemasirveparatodoslosservidoresweb
Actualizaciones:slounavez
Requerimientos:norequiereningnsoftwarenihardwareadicional.

2. Desventajas

Fragilidad:sicaeelsistematodoslossitioswebcaern
Configuracin:silaconfiguracinnoescorrectanofuncionarningunodeellos
Actualizaciones:sirequieredetenerelsistemapararantodoslosservidoresweb
Seguridad:cualquierproblemadeseguridadafectaratodos

Actividad 5.1

Enunciado:
Supongamos que queremos alojar dos sitios web servidor1.dominio.com y servidor2.dominio.com en la misma mquina,
respondiendoambosaunaslaIPyconunaslainstanciadeApache2configuradayquerespondelaspeticionesporelpuerto
80.
Solucin:
Usandohostsvirtualespodemosconseguirque,enelcasodequeseainvocadoservidor1.dominio.com,Apache2vayaaleerlos
archivoseneldirectorioquehayamosconfiguradocomoDocumentRoot,ylosmandealnavegadordequienlohayapedido,y
en el caso que sea convocado como servidor2.dominio.com, vaya a leer los archivos a otro directorio. Es decir, habr un
directorio(DocumentRoot)paracadaunodelosservidoresvirtualesquedefinamos.

Tipos de hosts virtuales

Apachesoportadostiposdehostsvirtuales:

1. Hosts virtuales basados en nombres: permiten alojar varios nombres de host (o dominios) en una misma

4 de 29
Curso Mentor Apache

mquina (IP). Todos los hosts virtuales que comparten la misma IP deben declararse mediante la directiva
NameVirtualHost.
Smil:supongamosunhogarfamiliarconuntelfonofijo(IP)quecompartentodossusmiembros.Alllamarpor
telfonosepreguntaporunapersona(nombre)uotraqueatenderlallamada.
2. HostsvirtualesbasadosenIP:unamquinarespondedediferentemaneraadiferentesdireccionesIP.Esdecir,
tenemosmltiplesIPsasignadasalsistemayqueremosquecadaunadeellassoporteunsitioweb.
Smil: una persona tiene dos telfonos, el del trabajo y el particular. En funcin a qu telfono se le llame la
respuestadelamismapersonapodrserdiferente.
TambinpodradarselasituacindedisponerdevariasIPsenelsistemayquererquecadaunadeellassoportevarios
sitiosweb.Setratadeunasituacinmixta:pornombreyporIP.
Engeneral,elcasomsusualeselprimero(queunasolamquinarespondaavariosnombres)yeselquevamosa
analizar.

5 de 29
Curso Mentor Apache

Directivas relacionadas
Consideraciones

1. Elhostvirtualheredarlosparmetrosdelhostprincipalquenosecambienparaldeformaexplcita.
2. Paraladefinicindehostsvirtualesseutilizalaseccin<VirtualHost>yenellaseincluyenlasdirectivasquese
aplicanaundeterminadohostvirtual.
3. ComomnimodebenincluirlasdirectivasDocumentRootyServerName.

Directivas

Directiva Descripcin

DocumentRoot DirectoriodondeApache2vaabuscarlosdocumentoselservidorvirtual.
NameVirtualHost DefineladireccinIP(yopcionalmente,elpuerto)dondevaaescucharelservidorvirtual.
ServerName DefineelnombredelservidorvirtualenformatoDNS.
ServerAlias Definemasnombresdeservidorvirtualesparaeseservidor.
VirtualHost Defineunaseccinparaunhostvirtualconlasdirectivasaplicablesal.

6 de 29
Curso Mentor Apache

Host virtual basado en nombre


Definicin

ParausarhostsvirtualesbasadosennombresedebeespecificarenelservidorqudireccinIPsevaausarparaatenderlas
peticionesdelosdiferenteshostsmedianteladirectivaNameVirtualHost.
NormalmentepuedeusarsecualquieraotodaslasdireccionesIPdelservidor.
ParaladirectivaNameVirtualHost utilizaremos:

NameVirtualHost*
dondeel'*'indicaquelosservidoresespecificadosaceptantodaslassolicitudesentrantes.
CmosabeApache2siunapeticinvadirigidaaunouotrohostvirtual?
LarespuestaestenlascabecerasdelHTTP/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_hostconlaqueApache2puedediferenciarlaspeticionesdelosdistintoshostsvirtuales.
ElproblemavienecuandoelnavegadoresmuyantiguoyutilizaelprotocoloHTTP/1.0.EnestecasoApache2servirsiemprela
pginadelhostpordefecto.
Elsiguientepasoescrearunbloque<VirtualHost>paracadahostdiferentequesequieraalojarenelservidor.El
argumentodeladirectiva<VirtualHost>debeserelmismoqueelargumentodeladirectivaNameVirtualHost.

<VirtualHost*>

Sisevaausarmsdeunpuerto(porejemplosivaausarSSL)sedebeaadirunpuertoacadaargumento,porejemplo:

<VirtualHost*:80>

Dentrodecadabloque<VirtualHost>,necesitarcomomnimounadirectivaServerNameparaindicarquhostsesirvey
unadirectivaDocumentRootparaindicardndeestnloscontenidosaservirdentrodelsistemadearchivos.
EnUbuntualinstalarApachesiempreexisteunhostvirtualdefinidocuyoarchivodeconfiguracinsellamadefaultyesten
eldirectorio/etc/apache2/sites-available/.

Importante

Sienelarchivo/etc/apache2/sites-available/defaultexistenvariasentradas<VirtualHost>pordefectolas
pginasquesemostrarnsonlasdelprimerhostvirtualdelalista.
Es necesario entonces que, si se dispone de un servidor 'oficial' con varios hosts virtuales, este servidor 'oficial' tambin
aparezcacomo<VirtualHost>yestenprimerlugar.

7 de 29
Curso Mentor Apache

Actividades
Actividad 5.2

Enunciado:
Aadir un host virtual a un servidor web ya existente como un sitio diferente a default.
Solucin:
Elservidorwebexistente(hostvirtualpordefecto)disponedesuconfiguracincomohostvirtualenelarchivo
Supongamos que ya se est sirviendo el dominio servidor.apache2.com y se quiere aadir el host virtual
virtual.apache2.com,queapuntaalamismadireccinIP.
Paraprepararelnuevositiovirtual,correspondientealdominiovirtual.apache2.com

Editar el archivo/etc/hosts yaadirlalnea:


192.168.0.1virtual.apache2.comvirtual
Creareldirectorio/var/www/virtual
Crearunarchivollamado index.html conelcontenido:Servidorvirtualvirtual.apache2.com"
Copiar el archivo /etc/apache2/sites-available/default con el nombre de virtual y comprobar los
cambiosenlaslneasqueseindican.Eliminarelrestoparasimplificar.
Estearchivoeselquecontienelaconfiguracinparaelnuevositiovirtual.

<VirtualHost*>
ServerNamevirtual.apache2.com
DocumentRoot/var/www/virtual
<Directory/var/www/virtual>
OptionsFollowSymLinks
AllowOverrideNone
</Directory>
</VirtualHost>

Activarelsitioejecutandolaorden:

#a2ensitevirtual

Reiniciarelservidorparaquelealoscambiosrealizadosenelarchivodeconfiguracin.

#/etc/init.d/apache2reload

IralnavegadoryprobarlaURLvirtual.apache2.com.Comprobarquesevisualizaelcontenidode index.html
paraesesitiovirtual.

PeroquocurresiahoravamosalaURLservidor.apache2.com?
Esposible(notieneporqueseras)quevisualizemoselmismoarchivo index.htmlqueeneldominiovirtual.
EstoquieredecirquehemosdemodificarlaconfiguracindelsitiopordefectodeApacheservidor.apache2.com.
Solucin:

1. Editarelarchivo /etc/hostsycomprobarquesetienelalnea:

192.168.0.1servidor.apache2.comservidor
2. Editar el archivo de configuracin del sitio /etc/apache2/sitesavailable/default y comprobar las lneas
indicadas,dejandoelrestocomoestn:

NameVirtualHost*
<VirtualHost*>

8 de 29
Curso Mentor Apache

ServerNameservidor.apache2.com
DocumentRoot/var/www/
<Directory />
OptionsFollowSymLinks
AllowOverrideNone
</Directory>
<Directory/var/www/>
OptionsIndexesFollowSymLinksMultiViews
AllowOverridenone
Orderallow,deny
Allowfromall
RedirectMatch^/$/apache2-default/
</Directory>
</VirtualHost>

3. Reiniciarelservidorparaquelealoscambiosrealizadosenelarchivodeconfiguracin.

#/etc/init.d/apache2reload

4. Ir al navegador y probar la URL http://servidor.apache2.com y comprobar que se visualiza de nuevo la


pginadeiniciodeApache2.
5. Ejecutarlasiguienteordenparacomprobarloshostsvirtualesconfigurados:

#apache2-S

Explicacindelaconfiguracindada:
ConladirectivaNameVirtualHost*seleestdiciendoaApache2queseactivanloshostsvirtualespornombreparalaIP
dadaenServerName(externo).
Lossiguientesgrupos<VirtualHost*>...</VirtualHost>definenloshostsvirtualesdenuestroservidor.Encadaunode
estosbloques,seleindicaaApache2elDocumentRootdelhostespecificadoenServerName.
Elprimerhostvirtualdelalistaeselqueseusapordefecto.
CuandounapeticinentraenelservidorApache2desdeunnavegadorwebatravsdeunaIP dada,Apache2compruebael
nombrededominioqueseestsolicitandoymuestraelcontenidoasociadoadichonombrededominio.

Actividad 5.3

Enunciado:
Quhayquehacerparapoderaccederaunodelossitioswebusandonombresdiferentes?
Solucin:
Paraelloseutilizaladirectiva ServerAlias (indicalalistadenombresquepuedenusarseparaaccederaunmismositioweb),
puestadentrodelaseccin <VirtualHost>.
Enelcasodeutilizarelsitiopordefectosepodraescribiren /etc/apache2/sitesavailable/default:

ServerAlias*.apache2.com

entonces las peticiones para todos los hosts en el dominio apache2.com sern servidas por el host virtual
servidor.apache2.com.
Loscaracterescomodines'*'y'?'permitenencontrarequivalenciasconlosnombres.Peronopodemosinventarnombresy

9 de 29
Curso Mentor Apache

ponerlos en la directiva ServerName o ServerAlias. Antes hay que establecer la relacin IP-Nombre bien mediante el
archivo/etc/hosts omedianteDNS.
Si se abre el navegador se comprobar que ahora se accede a la pgina inicial de Apache2 tanto desde
servidor.apache2.com como desde virtual.apache2.com.
Peroestonointeresa,asquesedejacomoestabayseeliminael ServerAlias.

Actividad 5.4

Enunciado:
Hostvirtualbasadoennombres(adecuarparaDNS).
Solucin:
SienauladisponedeservicioDNSsepuededejardeutilizarelarchivo/etc/hostsytrabajarconDNS.
1. El primer paso consiste en configurar los servicios DNS para que ambos dominios (servidor.apache2.com
virtual.apache2.com) apunten a la misma direccin IP 1 . Esto se hace mediante el tipo de registro CNAME (nombre
cannico).
Enelarchivo/etc/bind/db.apache2.com escribir:

$TTL10800
apache2.com.INSOAservidor.apache2.com.
(1;
10800;3horas
900;15minutos
604800;1semana
86400);1da
apache2.com.INA192.168.0.1
apache2.com.INNSservidor.apache2.com.
;SERVIDORES
servidorINA192.168.0.1
virtualINCNAMEservidor
;ESTACIONESDELAULA
pc02INA192.168.1.2

DeestaformaseleestdiciendoalservidordeDNSqueelnombrevirtual esunaliasdeservidor.Yaslosclientesya
podrnobtenerladireccinIP de virtual.apache2.com.
2. Editarelarchivo /etc/bind/named.conf.localydejarlaslneassiguientes:

zone"apache2.com"{typemaster;
allow-query{127.0.0.1;192.168.0.1/24;};
allow-transfer{127.0.0.1;192.168.0.1/24;};
file"/etc/bind/db.apache2.com";};
zone"1.168.192.in-addr.arpa"{typemaster;
allow-query{192.168.0.1/24;};
allow-transfer{192.168.0.1/24;};
file"/etc/bind/db.192.168.0";};

allow-query dejaactivasslolasconsultasinternasyalamquinalocal.

allow-transfer restringelastransferenciasdezona.

10 de 29
Curso Mentor Apache

3.Editarelarchivo/etc/bind/db.192.168.0 ydejarlaslneassiguientes:

$TTL10800
@INSOAapache2.com.(1;
10800;
900;
604800;
86400;)
@INNSservidor.apache.com.
1INPTRservidor.apache2.com.
1INPTRvirtual.apache2.com.
10INPTRpc02.apache2.com.

4.Configuracin:losarchivosdeconfiguracinnosevenafectadosenestecaso.Sloafectaalaresolucindenombres.
5.Paracomprobarlosdominiosvirtuales:

#apache2-S

6.Reiniciareldemonio named.

#/etc/init.d/bind9restart

11 de 29
Curso Mentor Apache

Host virtual basado en IP


Definicin

SisetieneunsistemaquedisponedevariasdireccionesIPysequierequecadaunadeellassoporteunsitiowebsedeber
crearunaseccinvirtualparacadadireccinIP.
AdaptarlasIPsalosvaloresrealesenelaula.

<VirtualHost192.168.0.1>
ServerNameservidorA.apache2.com
DocumentRoot/var/www/servidorA
</VirtualHost>
<VirtualHost192.168.0.2>
ServerNameservidorB.apache2.com
DocumentRoot/var/www/servidorB
</VirtualHost>

EnestecasolosservidoresvirtualesdefinidosrecibenlassolicitudesenfuncindelaIPrequerida,nodelnombredelservidor.
ComonosedisponedeequiposconvariasinterfacesderedsepuedeprobarconlasIPsqueasignaVMware(hayquetener
ejecutndoseVMware-Workstation)ocreandoaliasdelatarjetadisponible(noesmuyconvenientetrabajardeestaforma).
EsposibletambinasociarlaIPaunpuertoconcreto80,443,etc.

Parapoderprobarestaprcticahayqueeditarelarchivo /etc/network/interfaces yaadirlaporcindecdigosiguiente


adecuandolosdatosalaula:

autoeth0:0
ifaceeth0:0inetstatic
address192.168.0.2
netmask255.255.255.0
network192.168.0.0
gateway192.168.0.100

Seestcreandounaliasdelatarjetaetherneteth0yseleasignalaIP192.168.0.2.
Crearahoralosdirectoriosadecuadoseincluirenellosalgnarchivohtmlparahacerlaprueba.

12 de 29
Curso Mentor Apache

Actividades
Actividad 5.5

Enunciado:
Definir hosts virtuales basados en IP
Solucin:
ElejemplomuestracmosedebeconfigurarApache2paraque,ademsdeladireccinIPoriginal192.168.0.1,permitatrabajar
condosdominiosmasutilizandootrasdosdireccionesIP192.168.0.2y192.168.0.3.
Sesuponequelapuertadeenlacees192.168.0.100yeldominioinicialasociadoalaIP192.168.0.1esservidor.apache2.com.
Paralaimplementacinseutilizarnlosaliasdelastarjetasethernet.
Siguiendoelesquemadelpuntoanteriordefiniren /etc/network/interfaces dosaliasdelatarjetarealeth0,quesern
eth0:0yeth0:1conlosdatossiguientes:

autoeth0:0
ifaceeth0:0inetstatic
address192.168.0.2
netmask255.255.255.0
network192.168.0.0
broadcast192.168.0.255
gateway192.168.0.100

autoeth0:1
ifaceeth0:0inetstatic
address192.168.0.3
netmask255.255.255.0
network192.168.0.0
broadcast192.168.0.255
gateway192.168.0.100

Unavezestndefinidoslosaliashayquereiniciarlaredycomprobarqueyaestndisponibles:

#/etc/init.d/networkingrestart
#ifconfig

A partir de este momento el sistema ya dispone de 3 interfaces de red, una real y dos alias que permiten definir dos host
virtualesalojadosenelmismoservidorweb,ademsdeldominioinicialservidor.apache2.com.
Laconfiguracin paraloshostsvirtualesvirtualA.apache2.comyvirtualB.apache2.comeslasiguienteypodraser
incluidatantoenelarchivodefault comoenarchivosdiferenciadosdentrode sites-available:

<VirtualHost192.168.0.2>
ServerNamevirtualA.apache2.com
DocumentRoot/var/www/virtualA
ErrorLog/var/log/apache2/virtualA-error.log
CustomLog/var/log/apache2/virtualA-access.logcombined
</VirtualHost>
<VirtualHost192.168.0.3>
ServerNamevirtualB.apache2.com
DocumentRoot/var/www/virtualB
ErrorLog/var/log/apache2/virtualB-error.log
CustomLog/var/log/apache2/virtualB-access.logcombined

13 de 29
Curso Mentor Apache

</VirtualHost>

Actividad 5.6

Enunciado:
EjemplomixtodehostsvirtualesbasadosendireccionesIPyennombres.
Solucin:
MuestralaconfiguracindelaredprincipalconunservidorvirtualbasadoenIPyutilizandolainterfazconIP192.168.1.1,y
ademsdefine2servidoresvirtualessobrelaIP192.168.1.2diferencindolosporelnombredelhostvirtual.Esunejemplomixto.
Paraellohacemosunacopiadelhostvirtualpordefecto'default'queincluyeApache2alinstalarylellamamos 'default-
copia'.
Editamos /etc/apache2/sites-available/default-copiaydejamoslaslneassiguientes:

NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1>
ServerName principal.apache2.com
DocumentRoot /var/www/principal
ErrorLog /var/log/apache2/principal-error.log
CustomLog /var/log/apache2/principal-access.log combined
<Directory "/var/www/principal">
AllowOverride None Options None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
#Host virtual dominio-alfa
<VirtualHost 192.168.0.2>
ServerName dominio-alfa.apache2.com
DocumentRoot /var/www/dominio-alfa
ErrorLog /var/log/apache2/dominio-alfa-error.log
CustomLog /var/log/apache2/dominio-alfa-access.log combined
<Directory "/var/www/dominio-alfa">
AllowOverride None Options None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
#Host virtual dominio-beta
<VirtualHost 192.168.0.2>
ServerName dominio-beta.apache2.com
DocumentRoot /var/www/dominio-beta
ErrorLog /var/log/apache2/dominio-beta-error.log
CustomLog /var/log/apache2/dominio-beta-access.log combined
<Directory "/var/www/dominio-beta">
AllowOverride None Options None
Order allow,deny
Allow from all
</Directory>

14 de 29
Curso Mentor Apache

</VirtualHost>

Actividad 5.7

Enunciado:
Servidor virtual por defecto "_default_"
Solucin:
Existeunnombreoindicadordeservidorvirtualpordefecto_default_queatiendeaquellaspeticionesquenosonatendidaspor
ningnotroservidorvirtual.

<VirtualHost_default_>
DocumentRoot/www/defecto
</VirtualHost>

Sepuedeaadirdespusdelaetiqueta"_default_"unnmerodepuertoydeesaformasepodrantenerservidorespordefecto
diferentesparacadapuerto.

15 de 29
Curso Mentor Apache

Windows: Introduccin

16 de 29
Curso Mentor Apache

Diferencias con Ubuntu


Diferencias con Ubuntu

LautilizacindehostsvirtualesenWindowsfuncionaigualqueenEdubuntu.Lanicadiferenciaeselarchivoenelqueresideny
elmecanismodeactivacindelosmismos.
Paracadasitiowebquequeramosejecutarlocalmentehabrqueelegirunnombreparal(procurandoquenocoincidaconun
nombrenoutilizadoenInternet)yaadirlareferenciaenelarchivoderesolucindenombreslocal C:\WINDOWS\system32
\drivers\etc\hosts:

127.0.0.1localhost
192.168.0.1servidor
192.168.0.1servidor.apache2.com

LainstalacindeApache2enWindowscreaunarchivo httpd-vhosts.confeneldirectoriodeconfiguracin C:\Archivos


deprograma\ApacheSoftwareFoundation\Apache2.2\conf\extra\quehabrqueactivardescomentandola
lneaIncludedelarchivodeconfiguracingeneralhttpd.confymodificandolaruta:

#Includeconf/extra/httpd-vhosts.conf

Esimportantetenerencuentaque,aunquelarutadelarchivovieneseparadapor'\'enladirectivautilizamos'/'.

17 de 29
Curso Mentor Apache

Host virtual basado en nombre


Creacin de un host virtual

Elarchivodeconfiguracinparaloshostsvirtualesvieneconunosejemplosquehabrqueeliminaroactualizarcon
losdatoscorrectosdenuestroshostsvirtuales.
Paraprepararelnuevositiovirtual,correspondientealdominiovirtual.apache2.com:

1. Editarelarchivo C:\WINDOWS\system32\drivers\etc\hostsyaadirlalnea:

192.168.0.1virtual.apache2.comvirtual

2. Crear el directorio C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs


\virtual
3. Crear en este directorio un archivo llamado index.html con el contenido: Servidor virtual
virtual.apache2.com
4. Editar el archivo C:\Archivosdeprograma\ApacheSoftwareFoundation\Apache2.2\conf\extra
\httpd-vhosts.conf y dejarlaslneassiguientes:

NameVirtualHost*:80
<VirtualHost*:80>
ServerNamevirtual.apache2.com
DocumentRoot "C:/Archivos de programa/Apache Software Foundation /Apache2.2/htdocs
/virtual"
CustomLoglogs/virtual.access.logcombined
ErrorLoglogs/virtual.error.log
<Directory "C:/Archivos de programa/Apache Software Foundation /Apache2.2/htdocs
/virtual">
OptionsFollowSymLinks
AllowOverrideNone
</Directory>
</VirtualHost

Eldirectorioindicadoen DocumentRoot nodebeacabarcon'/'.

Creamosarchivosdiferenciadosparaalmacenarlosaccesosyerroresdelsitiovirtual.

5. Nuestroservidorservidor.apache2.comdebeaparecertambincomositiovirtual.Porlotanto,aadimosen
estearchivoelgrupodedirectivasqueconfiguraneste ServerName comohostvirtual.
Laconfiguracinfinaldelarchivo httpd-vhosts.confser:

NameVirtualHost*:80
<VirtualHost*:80>
ServerNameservidor.apache2.com
ServerAliasservidor
DocumentRoot"C:/Archivosdeprograma/ApacheSoftwareFoundation/Apache2.2/htdocs"
CustomLoglogs/access.logcombined
ErrorLoglogs/error.log
<Directory/>
OptionsFollowSymLinks
AllowOverrideNone
</Directory>
<Directory"C:/Archivosdeprograma/ApacheSoftwareFoundation/Apache2.2/htdocs>
OptionsIndexesFollowSymLinksMultiViews

18 de 29
Curso Mentor Apache

AllowOverridenone
Orderallow,deny
Allowfromall
</Directory>
</VirtualHost>
<VirtualHost*:80>
ServerNamevirtual.apache2.com
ServerAliasvirtual
DocumentRoot "C:/Archivos de programa/Apache Software Foundation /Apache2.2/htdocs
/virtual"
CustomLoglogs/virtual.access.logcombined
ErrorLoglogs/virtual.error.log
<Directory"C:/Archivosdeprograma/ApacheSoftwareFoundation/Apache2.2/htdocs
/virtual">
OptionsFollowSymLinks
AllowOverrideNone
</Directory>
</VirtualHost>

6. ActivarelsitiodescomentandolalneaInclude correspondienteen httpd.conf yajustandolaruta:

Includeconf/default/httpd-vhosts.conf

7. Reiniciar el servidor para que lea los cambios realizados en el archivo de configuracin. Para ello ir a la barra de
herramientasyhacerclicsobreyseleccionarApacheRestart.
8. Ir al navegador y probar la URL virtual.apache2.com. Comprobar que se visualiza el contenido de
index.htmlparaesesitiovirtual.
9. Ejecutarlasiguienteordenparacomprobarloshostsvirtualesconfigurados:OJO

apache2-S

Explicacindelaconfiguracindada:
ConladirectivaNameVirtualHost *:80seleestdiciendoaApache2queseactivanloshostsvirtualespornombreylos
siguientesgrupos<VirtualHost *>...</VirtualHost>definenloshostsvirtualesdenuestroservidor.Encadaunode
estosbloques,seleindicaaApache2elDocumentRootdelhostespecificadoenServerName.
CuandounapeticinentraenelservidorApache2desdeunnavegadorwebatravsdeunaIP dada,Apache2compruebael
nombrededominioqueseestsolicitandoymuestraelcontenidoasociadoadichonombrededominio.
Sienelarchivohttpd-vhosts.confexistenvariasentradas<VirtualHost>pordefectolaspginasquesemostrarn
sonlasdelprimerhostvirtualdelalista.Esimportanteentoncesque,sisedisponedeunservidor'oficial'convarioshosts
virtuales,esteservidor'oficial'tambinaparezcacomo<VirtualHost>yestenprimerlugar.
Esteprimerhostvirtualestaccesiblesiemprecomohttp://localhost.

Importante

Sialaccederaunhostvirtualelnavegadormuestraunmensajedeerror"403Forbidden"comprobarsiexisteelarchivo
index.htmlenelDocumentRootdelsitio,yaque,pordefectoelservidorApache2nopermitelistarelcontenidodel
directorio.

19 de 29
Curso Mentor Apache

SienDocumentRootnoexisteunfavicon.icosegeneraunlogdeerrorenelarchivocorrespondiente.Recordar
queelfavicon.icoeslapequeaimagenqueaparecejuntoaalURLyquepersonalizanuestrositioweb.
SepuedeutilizarunadireccinIPconcretaenlugarde*ydeesaformapodemosasignarvarioshostsvirtualespor
nombreaestaIPyotrogrupodehostsvirtualesaotraIP.Seraunacombinacindeambastcnicas.

20 de 29
Curso Mentor Apache

Actividades
Actividad 5.8

Enunciado:
Quhayquehacerparapoderaccederaunsitiowebusandonombresdiferentes?
Solucin:
ParaelloseutilizaladirectivaServerAlias (indicalalistadenombresquepuedenusarseparaaccederaunmismositio
web),puestadentrodelaseccin<VirtualHost>.
En el caso de utilizar el sitio por defecto se podra escribir en C:\Archivos de programa\Apache Software
Foundation\Apache2.2\conf\extra\httpd-vhosts

ServerAlias*.apache2.com

entonces las peticiones para todos los hosts en el dominio apache2.com sern servidas por el host virtual
servidor.apache2.com.
Loscaracterescomodines'*'y'?'permitenencontrarequivalenciasconlosnombres.Peronopodemosinventarnombresy
ponerlos en la directiva ServerName o ServerAlias. Antes hay que establecer la relacin IP-Nombre bien mediante el
archivohostsomedianteDNS.
Si se abre el navegador se comprobar que ahora se accede a la pgina inicial de Apache2 tanto desde
servidor.apache2.com como desde virtual.apache2.com.Peroestonointeresa,asquepodemosutilizarotro
ServerAlias que no sea tan genrico:

<VirtualHost*:80>
ServerNameservidor.apache2.com
ServerAliasservidor

Actividad 5.9

Enunciado:
Hostvirtualbasadoennombres(adecuarparaDNS).
Solucin:
Hastahacerelativamentepocotiempo,WindowsutilizabaelservicioWINSparalaresolucindenombres.ApartirdeWindows
2000utilizaelservicioDNSquemantienecompatibilidadconWINS.
WindowsporinstalacinllevaincluidoelserviciodeclienteDNS,peronoeldeservidor.
NormalmenteesteserviciovieneintegradoenActiveDirectoryenWindows2003/2008Serverquefuncionancomocontroladores
dedominio,peronoseaconsejasuutilizacindeActiveDirectorydesdeestacionesdetrabajo,queeselmododeutilizacinde
unWindowsdesktop.
Decualquierforma,squesepuedeinstalarActiveDirectoryenWindowsdesktop,peronoutilizandocdpromosinoutilizandoel
AdminPackde2003/2008serverypuedeserunpocoarriesgado.
YaquenuestroservidorwebApache2vaadarservicioanuestraredlocal,laaccinderesolucindenombresenWindowsla
vamosaseguirdejandoacargodelarchivohosts.

21 de 29
Curso Mentor Apache

Host virtual basado en IP


Host virtual por IP

Apache2 puede atender varios servidores virtuales, cada uno de ellos con una direccin IP diferente utilizando la seccin de
configuracinVirtualHost.
Estaseccin,delamismaformaqueparahostsvirtualespornombre,defineunaconfiguracinydireccinIPparacadaunode
lossitiosohostsvirtuales.
Porejemplo:

<VirtualHost192.168.0.1>
ServerNameservidorA.apache2.com
ServerAliasservidorA
DocumentRoot "C:/Archivos de programa/Apache Software Foundation /Apache2.2/htdocs
/servidorA"
</VirtualHost>
<VirtualHost192.168.0.2>
ServerNameservidorB.apache2.com
ServerAliasservidorB
DocumentRoot "C:/Archivos de programa/Apache Software Foundation /Apache2.2/htdocs
/servidorB"
</VirtualHost>

El ejemplo define dos servidores web, cada uno de ellos con una IP y un nombre diferentes. Ambos tienen su propio
DocumentRootydemsdirectivasbsicas.
LgicamenteparapoderdefinirservidoresvirtualesporIP lamquinaquealbergaelsistemaservidordebetenerconfiguradas
diferentesdireccionesIP,bienporquedisponedevariastarjetasdered,bienporquehacreadovariosalias.
SinuestramquinaservidordisponededosdireccionesIPyhemosasignadoalasdoselmismonombre,hemosdehacerun
usoespecialdelasdirectivasdeservidorespornombre.
Porejemplo,cuandosedisponeunaconexinderedparalaredlocalyotraconexindiferenteparaInternetperoconelmismo
nombre,laconfiguracinsera:

NameVirtualHost192.168.1.1
NameVirtualHost192.168.0.1
<VirtualHost192.168.1.1192.168.0.1>
ServerNameservidor.apache2.com
ServerAliasservidor
DocumentRoot "C:/Archivos de programa/Apache Software Foundation /Apache2.2/htdocs
/servidor"
</VirtualHost>

EstaconfiguracinsirvelamismawebhacialaredlocalyhaciaInternet.Enestecasoesconvenientedefinirunaliasparael
servidoryasnotenerqueusardominiosenlaredlocal.

22 de 29
Curso Mentor Apache

Actividades
Actividad 5.10

Enunciado:
CombinarhostsvirtualesbasadosennombreyenIP.
Solucin:
SupongamosquenuestrosistemadisponedevariasdireccionesIPyqueremosquecadaunadeellassoportevariossitiosweb.
HemosdeproporcionarunadirectivaNameVirtualHostparacadadireccinIPyrepetirtantassecciones<VirtualHost>
comositiosqueremosporIP.
AdaptarlasIPsalosvaloresrealesenelaula.

NameVirtualHost192.168.0.1
NameVirtualHost192.168.0.2
<VirtualHost192.168.0.1>
ServerNameservidorA1.apache2.com
DocumentRoot C:/Archivos de programa/Apache Software Foundation /Apache2.2/htdocs
/servidorA1
</VirtualHost>
<VirtualHost192.168.0.1>
ServerNameservidorA2.apache2.com
DocumentRoot C:/Archivos de programa/Apache Software Foundation /Apache2.2/htdocs
/servidorA2
</VirtualHost>
<VirtualHost192.168.0.2>
ServerNameservidorB1.apache2.com
DocumentRoot C:/Archivos de programa/Apache Software Foundation /Apache2.2/htdocs
/servidorB1
</VirtualHost>
<VirtualHost192.168.0.2>
ServerNameservidorB2.apache2.com
DocumentRoot C:/Archivos de programa/Apache Software Foundation /Apache2.2/htdocs
/servidorB2
</VirtualHost>

En este caso no incluimos el '*' para forzar a que cada servidor escuche por una IP concreta, pero incluimos la directiva
NameVirtualHostcuyoargumentodebecoincidirconeldelservidorwebconelqueestconectado.

Actividad 5.11

Enunciado:
Servidor virtual por defecto "_default_"
Solucin:
Existeunnombreoindicadordeservidorvirtualpordefecto_default_queatiendeaquellaspeticionesquenosonatendidaspor
ningnotroservidorvirtual.

<VirtualHost_default_>

23 de 29
Curso Mentor Apache

DocumentRoot C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs


/defecto
</VirtualHost>

Sepuedeaadirdespusdelaetiqueta"_default_"unnmerodepuertoydeesaformasepodrantenerservidorespordefecto
diferentesparacadapuerto.

24 de 29
Curso Mentor Apache

Glosario
Glosario Unidad 5

Concepto Definicin
Permiten la posibilidad de alojar varios dominios en una sola mquina. Es decir, se trata de servir
HostVirtual
diferentessitioswebconunasolaentidaddeApache.

ElhostvirtualbasadoenIPsdiferencialossitioswebbasndoseensusdireccionesIP.
HostVirtualIP

Elhostvirtualbasadoennombresusasloelnombredelhostydeestamanerapuedealojarmuchos
HostVirtualNombre
sitioswebconlamismadireccinIP.

Otros Glosarios

Otros glosarios relacionados con la informtica y el mundo web.


Se pueden visitar las webs siguientes:

ATI: dispone de un glosario completo de trminos informticos en http://www.ati.es/novatica/glosario


/glosario_internet.html
Microsoft: http://msdn.microsoft.com/es-es/library/aa302380.aspx

25 de 29
Curso Mentor Apache

Fuentes de informacin
Documentos y enlaces de inters

1. Gua de Ubuntu: http://www.guia-ubuntu.org/index.php?title=Servidor_web


2. Pgina oficial de apache: http://www.apache2.es/2.2.2/
3. Pgina de PHP: http://php.net/manual/es/install.windows.apache2.php

26 de 29
Curso Mentor Apache

Resumen final
Sntesis de la Unidad 5 'Hosts Virtuales'

Lospuntosadestacardeestaunidadsonlossiguientes:

1. LoshostsvirtualesApache2nospermitenlaposibilidaddealojarvariosdominiosenunasolamquina.
2. Elhostvirtualheredarlosparmetrosdelhostprincipalquenosecambienparaldeformaexplcita.
3. Paraladefinicindehostsvirtualesseutilizalaseccin<VirtualHost>yenellaseincluyenlasdirectivasquese
aplicanaundeterminadohostvirtual.
4. ComomnimodebenincluirlasdirectivasDocumentRootyServerName.
5. ParausarhostsvirtualesbasadosennombresedebeespecificarenelservidorqudireccinIPsevaausarpara
atenderlaspeticionesdelosdiferenteshostsmedianteladirectivaNameVirtualHost.
6. Dentrodecadabloque<VirtualHost>,necesitarcomomnimounadirectivaServerNameparaindicarquhostse
sirveyunadirectivaDocumentRootparaindicardndeestnloscontenidosaservirdentrodelsistemadearchivos.
7. LautilizacindehostsvirtualesenWindowsfuncionaigualqueenEdubuntu.Lanicadiferenciaeselarchivoenelque
residenyelmecanismodeactivacindelosmismos.

27 de 29
Curso Mentor Apache

Autoevaluacin Unidad 5
Autoevaluacin

El cuestionario de autoevaluacin de la Unidad 5 est disponible en la plataforma Mentor (https://centrovirtual.educacion.es/).

28 de 29
Curso Mentor Apache

Este artculo est licenciado bajo Creative Commons Attribution Non-commercial 3.0 License
Unidad 5

29 de 29
Curso Mentor Apache

Apache
Unidad 6: Autenticacin y control de acceso

Enestecaptuloaprendersa:
losconceptosdeautenticacinoidentificacin,autorizacinycontroldeacceso.
losmecanismosdeApache2paraimplementarestosconceptos.
losdiferentesmodelosdeseguridaddeApache2
losmtodosdeautenticacinHTTPbsicoydigest,caractersticasascomolosgruposdedirectivasaplicablesenellos.

Materialcomplementario:
1. Archivoconlasactividadesdelaunidad.ArchivoU6_Actividades.pdf
2. Mapaconceptualdelcaptulo.ArchivoU6_mapaconceptual.png
3. Glosariocompletodelcurso.Archivoglosario.pdf

1 de 27
Curso Mentor Apache

Introduccin
Objetivos

Conocerlosconceptosdeautenticacinycontroldeacceso.

Conocer los tipos de autenticacin disponibles desde Apache2.

Conocer la directivas de Apache utilizadas para el control de acceso.

Realizar la configuracin del servidor apache para asegurar la autenticacin.

Comprobarquelosmecanismosdeseguridadestablecidosfuncionancorrectamente.

Conocimientos previos

EnestaunidadestudiamosmecanismosdeseguridaddisponiblesenApache2.
ElrequerimientobsicoeshabersuperadolasanterioresunidadesydisponerdeunservidorApachebienconfiguradoenambossistemas
operativos.

Contenidos

Unidad6:Autenticacinycontroldeacceso

1. ConceptosGenerales
2. Autenticacin:modelobsicodeseguridaddeApache2
3. Directivasdeautenticacin

A.Ubuntu

1. AutenticacinyautorizacionHTTP
2. Controldeacceso:directivasAllowyDeny
3. AutenticacinHTTPbsica
4. AutenticacinHTTPdigest

B.Windows

1. AutenticacinenWindows
2. AutenticacinHTTPbsica
3. AutenticacinHTTPdigest

C.Findeunidad

1. Glosario
2. Fuentesdeinformacin
3. Resumenfinal
4. Autoevaluacin

2 de 27
Curso Mentor Apache

Conceptos Generales
Autenticacin, autorizacin y control de acceso

CuandoelservidorApacherecibelapeticindeunapginaweb,antesdeofrecerlallevaacabovariasaccionesparaverificarquedicha
peticinestaautorizada.
Estasaccionesson:

1. Autenticacin:procesoporelcualseverificalaidentidaddelusuario
2. Autorizacin: procesoporelcualseverificaqueunusuariodeidentidadconocidatieneaccesoalainformacinsolicitada.
3. ControldeAcceso:procesoporelcualseverificaquelamquinadesdelaquesehahecholasolicituddeinformacintiene
accesoalamisma.

1.I dentificacinoAutenticacin
LaprimeraoperacinsellamaIdentificacinoAutenticacinysuobjetivoescomprobarlaidentidaddelusuario,esdecir,esrealmente
quiendiceser?.Elusuarioproporcionainformacinacercadesuidentidadparaqueelservidorpuedaidentificarle.Normalmenteelusuario
dasunombredeusuario(login)ysucontrasea.Estosdosdatostambinsellamancredencialesysielservidorcompruebaqueestas
credencialescoincidenconlasalmacenadasensubasededatos,laprimeraoperacinestconcluida.
Estaoperacintambinpuedeserrealizadamediantelautilizacindecertificadosdigitales.
AunqueparalaAutenticacinsepuedeutilizarelpropioarchivodeusuariosdelsistema(/etc/passwd) noesconveniente.
Mediantelosdiferentesmdulosdeautenticacin (mod_auth_basic, mod_auth_digest,etc) seutilizanarchivos (htpasswd,
htdigest,...) quetienenunaestructurasimilara/etc/passwd y permitenautenticarusuariosnoregistradosenelsistema.
Silaautenticacindeusuariossehacemediantebasesdedatoselmduloutilizadoes mod_auth_dbm ysisehacecontraun
servidorLDAPelmduloesmod_authnz_ldap.
SisequiereconfigurartantolaAutenticacincomolaAutorizacinyelControldeaccesoutilizandoarchivos .htaccess, esnecesario
incluirladirectivaAllowOverrideasignndoleelvalorAuthConfigparapermitirelusodelasdistintasdirectivasdeautenticacin.
2.Autorizacin
LasegundaoperacineslaAutorizacin.Cuandoelusuariohaprobadoserquiendiceser,elservidordebecomprobarsidichousuario
tieneaccesoalainformacinquepretendevisitar.Paraelloelservidordisponedeunalistadelosusuariosquepuedenaccederalos
recursosqueofrece.
ParalaAutorizacinsesueleutilizarlistasdepermisosenlasqueseenumerancadaunadelasaccionesquepuederealizarunusuario,o
lasquenopuedehacer.Parafacilitarelcontroldeestaslistaslosusuariosseagrupanylospermisosseotorganalgrupo.DesdeApache2
la Autorizacin es gestionada mediante directivas <Directory> en el archivo de configuracin o mediante la utilizacin de archivos
.htaccess queconfiguraneldirectorio.
3.Controldeacceso
Elcontroldeaccesoseutilizaparaestablecerycontrolarlasmquinasquetienenaccesoaunrecursoindependientementedelusuarioque
accede,yaqueestecontrolsehaceantes,enelprocesodeAutenticacin.DesdeApache2elcontroldeaccesosegestionamediantelas
directivas <Directory>, <Files> y <Location>, o mediante el archivo de configuracin .htaccess para controlar un directorio
concreto.

3 de 27
Curso Mentor Apache

Autenticacin: modelo bsico de seguridad de


Apache2
Generalidades

ElmodelobsicodeseguridaddeApache2sebasaenlosconceptosde:

autenticacin'sencilla'>equivalentealaAutenticacinyAutorizacin(AutenticacinHTTP)
autenticacin'severa'>equivalentealControldeacceso(AutenticacinHost)

La autenticacin 'sencilla' depende de la informacin que proporciona el usuario, como son por ejemplo, el nombre de usuario y la
contrasea.
La autenticacin 'severa' utiliza credenciales que han sido obtenidas sin preguntar al usuario directamente, como es por ejemplo, la
direccinIPdelamquinadesdelaqueseconectaelusuario.
Segneltipodeautenticacin,Apache2respondeconuntipodeerrordiferente.
Paralaautenticacin'sencilla'silosdatosnosoncorrectosrespondeconunerror401ypermiteinfinitosreintentos.
Enelprocesodeautenticacin'severa'silascredencialessonerrneasApache2devuelveunerror403deprohibicinsindaropcina
volveraintentarlo.
SepuedencombinarambostiposdeautenticacinmediantelautilizacindeladirectivaSatisfy.Loscasosposiblesson:

Noserequiereautenticacin.Ninguna.
Sloserequiereautenticacinsevera(IP).
Sloserequiereautenticacinsencilla(nombredeusuarioycontrasea).
Seaceptanambostiposdeautenticacinysepermiteelaccesosiunadeellasescorrecta.
Serequierenambostiposdeautenticacin.

Satisfy:especificalapolticadeaccesoaseguircuandoseusantantoAllowcomoRequire.
Estadirectivasloestilsisevarestringirelaccesoaunreaconcretaconunnombredeusuario/contraseaydireccindelcliente.
PosiblesparmetrosdeSatisfy:

All: elclientedebepasarlarestriccinreferentealadireccin (autenticacin severa) e introduzcaunnombrede


usuarioycontraseavlidos(autenticacinsencilla).
Any:elclientedebepasarlarestriccinreferentealadireccinointroduzcaunnombredeusuarioycontraseasvlidos.De
estaformapodemosrestringirelaccesoaunazonautilizandocontraseaypermitirquenavegadoresquehaganpeticionesdesde
algunasdireccionesconcretasaccedansincontrasea.
Requireseleccionaquusuariosautenticadospuedenaccederaunrecurso

Posibles utilizaciones:
1. Slo los usuarios mencionados pueden acceder al recurso.

Requireuseruserid[userid]...

2.Slolosusuariospertenecientesalosgruposmencionadospuedenaccederalrecurso.
Requiregroupgroup-name[group-name]...

3.Todoslosusuariospuedenaccederalrecurso.
Requirevalid-user

Ejemplo:sequierepermitirquetodoelmundotengaaccesototalasuredlocaloaunapartedelsitioweb,perorequerirquelosvisitantes
defueradelaredlocalintroduzcanunacontrasea.Laconfiguracinserasimilaralasiguiente:
Requirevalid-user
Allowfrom192.168.0.
SatisfyAny

4 de 27
Curso Mentor Apache

Directivas de autenticacin
A tener en cuenta...

1.AntesdecomenzarahablaracercadelascomunicacionessegurasenApache2debemoscomprobarqueApache2estcompiladocon
losmdulosdeseguridadquevamosautilizar.
ParaverlosmdulosincluidosenApacheejecutar:
#apache2-l
Perosiqueremossaberculessonlosmdulosactivadoshemosdeaccedera/etc/apache2/mods-enabled/.
Paraactivarlaautenticacinnecesitamoslosmdulossiguientes:

mod_auth_basic: paraautenticacinbsica.
mod_auth_digest: paraautenticacinconelmtododigest(usuarioypasswordencriptados).

ParautilizarlosmecanismosproporcionadosporApacheparaelprocesodeautenticacindebenestaactivadoelmdulocorrespondienteal
mtodoquesevayaautilizar.Paraelloutilizamoslaorden a2enmod.
#a2enmodauth_basic
#/etc/init.d/apache2force-reload

2. Lasdirectivasutilizadasdebenestarincluidasenelarchivodeconfiguracindelservidor:

bienensecciones <Directory> o
bienenarchivos .htaccess deconfiguracinpordirectorios

Para utilizar archivos .htaccess se necesita la directiva AllowOverride con el valor AuthConfig que permite incluir
directivasrelativasalaautenticacinenestosarchivos.

AllowOverrideAuthConfig

Directivas de autenticacin

Lasdirectivasrelacionadasconlaautenticacinsonlassiguientes:

Directiva Descripcin

AuthType Indicaculeseltipodeautenticacinquevaautilizarse.

AuthName Indicaelnombredeldominiodeautenticacinenviadoalprogramacliente.

AuthUserFile Indica la ruta hacia el archivo de usuarios para la autenticacin bsica (mdulo
mod_auth).

AuthDigestFile Indica la ruta hacia el archivo de usuarios para la autenticacin MD5 (mdulo
mod_digest).Laordenhtdigestgestionaestearchivo.ElalgoritmodecodificacinMD5
esmasseguroqueelutilizadoporelmtodobsico.

AuthGroupFile Indicalarutahaciaelarchivodegrupos(mdulomod_auth).

La versin de Apache 2.2 incorpora un nuevo conjunto de mdulos que separan el control de la autenticacin (mod_authn_*) y la
autorizacindeacceso(mod_authz_*).

5 de 27
Curso Mentor Apache

Ubuntu

6 de 27
Curso Mentor Apache

Autenticacin y autorizacin HTTP


Autenticacin y autorizacin HTTP

EnelprimerpuntodelcaptulosehanexplicadolasdiferentesoperacionesquerequiereApacheparapermitirelaccesodelosusuariosa
losrecursosquelgestiona.RespectoalprocesodeAutenticacinexistendosmtodos:

BsicooSimple:elusuarioenelnavegadorwebintroducesuloginonombredeusuarioycontraseayseenvanalservidorsin
cifrar.
Digest:elusuarioenelnavegadorwebintroducesuloginycontraseayseenvanalservidorcifrados.

EnambosmtodosesApachequienseencargadecomprobar,desdesuarchivodetexto,basededatososervidorLDAP,quelosvalores
dadosporelusuariosoncorrectos.
Estosdosmtodossloautenticanalusuariocuandointentaaccederaunrecurso.Apachecompruebasiesunusuariovlido,ylepermite
onoaccederalrecurso.Peroenningunodelosdosmtodoslosdatosque,acontinuacin,seenvandelnavegadorwebalservidoro
viceversavancifrados.Sonmtodosquecontrolanelaccesoalosrecursos,peronoprotegenlainformacinintercambiadaenla
comunicacincliente-servidorunavezsehacomprobadoqueelaccesoesvlido.

7 de 27
Curso Mentor Apache

Control de acceso
Directivas Allow / Deny

Comoyaseexplicenelpuntoprimero,esposiblepermitirelaccesoalosusuariosenfuncindelamquinadesdelaquehacenlas
solicitudesdeinformacin.
EnestecasoseutilizanlasdirectivasAllowyDenyquepermitenyrechazan,respectivamente,elaccesoenfuncindelnombreola
direccindelamquinadesdelaquesehacelasolicituddeinformacin.
RelacionadaconellasestladirectivaOrderqueindicaaApache2enquordentienequeaplicarlasdirectivasAllowyDeny.
Lasintaxises:
Allowfromdireccin
direccin: direccin IP o nombre de dominio completamente cualificado (o un nombre de dominio parcial). Se pueden dar varias
direccionesonombresdedominio.
Ejemplosdeutilizacin:
1.DenegarelaccesoalamquinaconIP250.66.19.10
Denyfrom250.66.19.10
Losusuariosqueseconectenaestamquinanopodrnverningunainformacinqueestafectadaporestadirectiva.
2.Denegarelaccesodesdeunnombredemquina.
Sielnombredelamquinaesservidor.apache2.com
Denyfromservidor.apache2.com
Laspeticionesprocedentesdedichamquinaserndenegadas.
3.Denegarelaccesoaundominioentero:
Sisequierebloquearelaccesoaundominioenterosepuedeespecificarslopartedeunadireccinonombrededominio:
Denyfrom250.66.19
Denyfromdominio1.comdominio2.com

ComoyasabemosladirectivaOrderindicaenquordenseaplicanAllowyDeny.EnelejemplosiguienteprimeroseevalaDeny(from
all) y no se permite el acceso a ningn usuario. A continuacin se evala Allow que permite el acceso slo a usuarios de
host.dominio1.com:
Orderdeny,allow
Denyfromall
Allowfromhost.dominio1.com
SiseusasloladirectivaAllow(sincombinarconDeny)sepermitiraelaccesoausuariosdeesamquinayacualquierotrousuario.Y
loquesequiereesdejarentrarsloalosdehost.dominio1.com.

8 de 27
Curso Mentor Apache

Autenticacin HTTP bsica


Introduccin

El mdulo que controla este mtodo de autenticacin es mod_auth_basic y tiene la ventaja de que est soportado por todos los
navegadoresweb.Porelcontrario,tieneelinconvenientedequeelloginylacontraseanovancifradasdelnavegadorwebalservidor.
LaautenticacinBsicautilizaelmtododecodificacinBase64(noencriptacin)quepuede,desdePerlyhaciendousodelafuncin
decode_base64,obtenerlacontraseadecualquierusuario.
Enelarchivo /etc/apache2/sites-available/default,oenelarchivorelativoalhostvirtualcorrespondiente,habrqueaadir
unbloque<Directory>...</Directory> porcadadirectorioquesequieraproteger:
<Directory"/var/www/privado">
AuthTypeBasic
AuthName"Directorioprivado"
AuthUserFile/etc/apache2/passwd/.htpasswd
Requirevalid-user
</Directory>
Donde:
Directory:indicaquelasdirectivassiguientesactansobreeldirectorio /var/www/privadoysussubdirectorios.Por
lotanto,sevaaprotegerestedirectorioysusposiblessubdirectorios.
AuthName:nombre deldominiode autenticacin.Define elconjunto de recursosque estarn sujetosa losmismos
requisitosdeautenticacin.Tambineseltextoqueaparecerenlaventanaquepideelusuarioylaclaveeindicael
nombredeldominiodeautenticacin(realm).Elnavegadorwebloutilizaparadeterminarqucontraseaenviarpara
undominiodeautenticacindado.
Enelejemploanterior,unavezqueelusuariosehaautenticadoeneldominio"Directorio privado",seintentar
utilizar la misma contrasea en cualquier 'rea' del mismo servidor que tenga el mismo valor para AuthName
"Directorio privado".Deesaformanoselepidealusuariodenuevolacontrasea.
AuthType: tipodeautenticacin.
Basic:lacontraseasenegociasinencriptar
Digest:lacontraseasenegociaencriptada
AuthUserFile:ubicacindelarchivodetextoquecontendrlosnombresdeusuarioycontraseasusadasenlaautenticacin
HTTPbsica.Sesuelellamar .htpasswd.Previamentehayquecreareldirectorio /etc/apache2/passwd.
AuthGroupFile:ubicacindelarchivodetextoquecontendrlosnombresdelosgruposylosusuariosasociadosaellosusados
enlaautenticacinHTTPbsica.Sesuelellamar .htgroup.
AuthAuthoritative: toma los valores On (por defecto) y Off. Permite que, si usamos en un directorio varios mtodos de
autenticacindiferentesyfallaelprimero,sepasealsegundo.
Require:usuariosquetienenaccesoalosrecursosespecificados.Opcionesdisponibles:

valid-user:cualquierusuarioincluidoenelarchivodecontraseas .htpasswd.
user<listadeusuarios>:listadeusuariosde .htpasswd, separadosporespacios,quepuedenacceder.Siseincluye
estaopcinhayqueincluirtambinladirectivaAuthUserFileparaindicardondeseencuentraelarchivoconladefinicin
delosusuariosusadosenlaautenticacinHTTPbsica.
group<listadegrupos>:listadegrupos,separadosporespacios,quepuedenacceder.Siseincluyeestaopcinhayque
incluir tambin la directiva AuthGroupFile para indicar donde se encuentra el archivo con la definicin de los grupos
usadosenlaautenticacinHTTPbsica.

Satisfy:alutilizarestadirectivadeterminasisedebencumplirtodoslosrequisitos(All)ocualquiera(Any).

9 de 27
Curso Mentor Apache

Configuracin
Creacin de un usuario

ParacrearusuariosparaelmtododeautenticacinBsicoseutilizalaordenhtpasswd.
#htpasswd-c/etc/apache2/passwd/.htpasswdnombre_usuario
La opcin -c permite crearelarchivo .htpasswd con elprimerusuario dado de alta,que ademsnotiene porque serun
usuarioexistenteenelsistema.
Lospermisosdelarchivo.htpasswd debenser644,esdecirlecturayescrituraparaeldueo,queesrootylecturaparael
grupoylosotros.
Nota-1.Para seguirdando de alta usuariosno hayque ponerelargumento -cde lo contrario crear siempre de nuevo el
archivoconsloelltimousuarioincorporado.
Nota-2.LosusuarioscreadosparaApache2notienenporqueestardadosdealtaenelsistema,ysiexistennotienenporque
tenerlamismacontrasea.
Nota-3.Estemtodoestilcuandosetrabajaconpocosusuarios,entendiendoporpocoshastaunos100usuarios.Apartir
deestacantidadconvieneutilizarsistemasdeautenticacinquevalidenalusuariocontraunabasededatos.

Creacin de un grupo

Para generar los grupos hay que crear el archivo de texto /etc/apache2/passwd/.htgroupcon el formato para cada
lnea:
nombreGrupo:user1user2user3...

LadirectivaAuthGroupFileindicalarutacompletadondeseencuentraelarchivoquehemoscreadoconladefinicindelos
grupos.
...............................
AuthGroupFile/etc/apache2/passwd/.htgroup
...............................

Cadausuariodelgrupoloaadiremosalarchivodecontraseassegnelapartadoanterior.
Sisequiereindicarqueelgruponoimportaseescribe:
AuthGroupFile/dev/null

Tambinsepuedeindicarcualquierusuario,siemprequeestenelarchivodecontraseas,utilizandoladirectivaRequire:
Requirevalid-use

Actividad 6.1

Enunciado:
Ejemplodecreacindeunusuario'usuario1'conaccesorestringidoalsitio'privado'.
Solucin:

1. Creamoseldirectorio'privado'conaccesorestringidoalusuariousuario1.
#mkdir/var/www/privado

Copiaraestedirectoriounapginawebsencillaqueidentifiquemosfcilmentedenombreindex.html.
2. Creamoseldirectoriodondealmacenarlascontraseas(sinoexiste),porejemplo:

#mkdir/etc/apache2/passwd
Nota:esimportantequeelarchivo.htpasswdnoestaccesibledesdelaweb(fueradeDocumentRoot).

10 de 27
Curso Mentor Apache

3. Damosdealtaalusuariousuario1enelarchivodecontraseas:
#htpasswd-c/etc/apache2/passwd/.htpasswdusuario1
Newpassword:XXXXXX
Re-typenewpassword:XXXXXX
Addingpasswordforuserusuario1

4. Comprobamosquesehadadodealtaelusuariousuario1en .htpasswd:
#more/etc/apache2/passwd/.htpasswd
usuario1:Uc2mbt97WwWCE

Autenticacin HTTP bsica

Ahorayatenemostodopreparadoparaconfigurarlasdosformasdiferentesdeautenticacinbsica.
1. Globalmente :utilizandoelarchivodeconfiguracin /etc/apache2/sites-available/default en el que habra que aadir
un bloque <Directory>...</Directory> para el directorio que queremos proteger:
Alias/privado/var/www/privado
<Directory"/var/www/privado">
AuthTypeBasic
AuthName"Directorioprivado"
AuthUserFile/etc/apache2/passwd/.htpasswd
Requireuserusuario1
</Directory>
RecordarquehayqueforzaraApache2aqueleasusarchivosdeconfiguracinconforce-reload.
Probamoslaconfiguracindesdeelnavegador:iralaURLhttp://servidor.apache2.com/privado/yaparecelaventana:

yvisualizamoselcontenidodelarchivoindex.htmlcreadoendichodirectorio.

2. Utilizandoarchivos.htaccess :lasdirectivasincluidasenelarchivo.htaccessseaplicarnsloaldirectorioquelocontiene,
ascomoatodossussubdirectorios.

Losarchivos.htaccessseleencadavezquehayunapeticindepginasynohayquereiniciarelservidorwebparaquese
activenloscambiosrealizados.
Creamosen /var/www/privado/elarchivo.htaccessconelcontenidosiguiente:
#vi/var/www/privado/.htaccess
AuthTypeBasic
AuthName"Directorioprivado"

11 de 27
Curso Mentor Apache

AuthUserFile/etc/apache2/passwd/.htpasswd
Requireuserusuario1
Ahora habra que comentar en /etc/apache2/sites-available/default el grupo de directivas incluidas para la
autenticacin global e incluir un grupo <Directory></Directory> con la directiva AllowOverride que habilite la utilizacin de
archivos .htaccess conautenticacin:

Alias/privado/var/www/privado
<Directory"/var/www/privado">
AllowOverrideAuthConfig
</Directory>
Probamoslaconfiguracindesdeelnavegadormediante .htaccess.
Ir a la URL http://servidor.apache2.com/privado/ y aparece la misma ventana anterior pidiendo la identificacin del usuario.
Visualizamoselcontenidodelarchivoindex.htmlcreadoendichodirectorio.

Actividad 6.2

Enunciado:
Cmopodemoseliminarunusuariodelarchivodecontraseas?
Solucin:
Utilizandolaopcin-Ddelaordenhtpasswd.
Porejemplo,eliminamoselusuariojuan:
#htpasswd-D/etc/apache2/passwd/.htpasswdjuan

12 de 27
Curso Mentor Apache

Autenticacin HTTP digest


Introduccin

Elmduloquecontrolaestemtododeautenticacinesmod_auth_digest. Tienelaventajadequeelloginylacontrasea
vancifradasdelnavegadorwebalservidor.Porelcontrario,tieneelinconvenientedequenoestsoportadoportodoslos
navegadoresweb.
Loprimeroquehayquehaceresactivardichomdulo.Paraello:
#a2enmodauth_digest
#/etc/init.d/apache2force-reload

UtilizaMD5(MessageDigestAuthentication)paragenerarunhashqueeselquesetransmiteoenvaalservidor.
En elarchivo /etc/apache2/sites-available/defaulthabra que aadirun bloque <Directory>...</Directory>
porcadadirectorioquequeramosproteger:
<Directory"/var/www/privado">
AuthName"Directorioprivado"
AuthTypeDigest
AuthDigestDomainhttp://servidor.apache2.com/privado/
AuthUserFile/etc/apache2/passwd/.htdigest
Requirevalid-user
</Directory>
Donde:
AuthName:indicaelnombredeldominiodeautenticacin(realm).
AuthType:indicaqueelmtodoausares'Digest'.
AuthDigestProvider:indicaelsoporteutilizadoparalaautenticacin.Pordefectoesfile(archivo).
AuthDigestDomain:dominioprotegidoconautenticacindigest.
AuthUserFile:indicadondeseencuentraelarchivodecontraseasqueahorallamamos.htdigest.
Tambinsepuedenutilizararchivos .htaccess creadosenlosdirectoriosaprotegerconestetipodeautenticacin.

13 de 27
Curso Mentor Apache

Configuracin
Creacin de un usuario

LacreacindeusuariosenelmtododeautenticacinDigestrequierelaordenhtdigest.
#htdigest/etc/apache2/passwd/.htdigestzona_privadanom_usuario
El parmetro 'zona_privada' debe coincidir exactamente con el nombre del dominio de autenticacin dado en la directiva
AuthNameyaque,cuandosecreaunusuario,sehaceincluyndoloaundominiodeautenticacinconcreto.
SiladirectivaRequireindica'valid-user',seconsideranusuariosvlidosslolosquepertenecenaldominiodeautenticacin
dadoenAuthNameylascontraseasslopuedenutilizarseenestedominio.
Ennuestrocaso'zona_privada'sersustituidoporDirectorioprivado.
Enelejemploaadimoselusuariousuario1alarchivodecontraseas/etc/apache2/passwd/.htdigest. Elprogramanos
pedirlaclaveyluegonoslavuelveapreguntarparaconfirmarla.
Siseutilizaelarchivo.htdigestporprimeravezynoexiste,hayqueincluirlaopcin-c:
#htdigest-c/etc/apache2/passwd/.htdigestDirectorioprivadousuario1
Addingpasswordforusuario1inrealmDirectorioprivado.
Newpassword:XXXXXX
Re-typenewpassword:XXXXXX
Elcontenidoalmacenadoendichoarchivoeselsiguiente:
#more/etc/apache2/passwd/.htdigest
usuario1:Directorioprivado:2a1bc3d31d53d6abf5c8143c2b3ab052

En este tipo de autenticacin HTTP la pertenencia de un usuario a un grupo queda determinada por su inclusin en un
archivodegruposysureferenciamedianteladirectivaAuthDigestGroupFiletantoensecciones<Directory>comoen
archivos.htaccess.

Actividad 6.3

Enunciado:
Creacin de un sitio 'privado' llamado "Directorio privado DIGEST" restringido al usuario1 mediante autenticacin digest.
Solucin:
1.Utilizamoselmismodirectorioprivadoconaccesorestringidoalusuariousuario1queconautenticacinbsica.Enldisponemosdeun
archivoindex.html.
2.Utilizamoselmismodirectoriodondealmacenarlascontraseas/etc/apache2/passwdy damos de alta al usuario usuario1 en el
archivo de contraseas digest:

#htdigest-c/etc/apache2/passwd/.htdigestDirectorioprivadoDIGESTusuario1

Autenticacin HTTP digest

Podemosahoraestablecerdosformasdiferentesdeautenticacin:
1. Globalmente: utilizando el archivo de configuracin /etc/apache2/sites-available/default en el que habra que
aadirunbloque<Directory>...</Directory>paraeldirectorioquequeremosproteger:

Alias/privado/var/www/privado
<Directory"/var/www/privado">
AuthTypedigest
AuthName"DirectorioprivadoDIGEST"
AuthUserFile/etc/apache2/passwd/.htdigest

14 de 27
Curso Mentor Apache

Requireuserusuario1
</Directory>
RecordarquehayqueforzaraApache2aqueleasusarchivosdeconfiguracinconforce-reloadyprobamoslaconfiguracin
desdeelnavegador:

IralaURLhttp://servidor.apache2.com/privado/yaparecelaventanasiguiente:

Alintroducirlascredencialesdeusuario1muestra:

2.Utilizandoarchivos .htaccess: lasdirectivasincluidasenelarchivo .htaccess seaplicarnsloaldirectorioquelocontiene,as


comoatodossussubdirectorios.
Losarchivos.htaccess seleencadavezquehayunapeticindepginasynohayquereiniciarelservidorwebparaqueseactivenlos
cambiosrealizados.
Utilizamosen/var/www/privado/ elarchivo.htaccess yacreado,conelcontenidosiguiente:

#vi /var/www/privado/.htaccess
AuthType digest
AuthName "Directorio privado DIGEST"
AuthUserFile /etc/apache2/passwd/.htdigest
Require user usuario1

Ahorahabraquecomentaren/etc/apache2/sites-available/default elgrupodedirectivasincluidasparalaautenticacin
globaleincluirungrupo<Directory></Directory>conladirectivaAllowOverridequehabilitelautilizacindearchivos.htaccesscon
autenticacin:

Alias/privado/var/www/privado
<Directory"/var/www/privado">
AllowOverrideAuthConfig
</Directory>

yvisualizamoselcontenidodelarchivo index.html creadoendichodirectorio.


La ventana de identificacin es igual a la anterior con la salvedad de que los datos enviados a travs de ella estn
encriptados.
Probamoslaconfiguracindesdeelnavegadormediante.htaccess
Ir a la URL http://servidor.apache2.com/privado/ y aparece la misma ventana anterior pidiendo la identificacin del usuario.
Visualizamoselcontenidodelarchivoindex.htmlcreadoendichodirectorio.

Importante: desconexin

Importante:desconexin
Unavezsehaautenticadoelusuarioelnavegadorcachealacredencial(nombredeusuarioycontrasea)deformaque,sielnavegador
intenta acceder a otro recurso de la zona protegida, el servidor devuelve el error 401 (Authorization Required) y el navegador

15 de 27
Curso Mentor Apache

automticamentevolveramandarlascredencialescacheadasalservidor.
Esdecir,conlaautenticacinHTTPnosepuedeconseguirunadesconexinautomticapasadoundeterminadoperiododetiempo.

16 de 27
Curso Mentor Apache

Windows
A tener en cuenta ...

LosconceptosdeAutenticacin,AutorizacinyControldeaccesodadosenelpuntodeConceptosGeneralessonigualmentevlidospara
Windows. En consecuencia ,en este punto veremos configuraciones adaptadas a Windows en sus archivos correspondientes de los
ejemplosdados.
La estudiada directiva AuthType determina el tipo de autenticacin de usuario: basic o digest. La diferencia entre ellas ha sido ya
explicada.

17 de 27
Curso Mentor Apache

Autenticacin HTTP bsica


Autenticacin HTTP bsica

DelamismaformaqueenUbuntu,elfuncionamientodelaautenticacinHTTPbsicaeselsiguiente.Elnavegadorsolicitael
accesoaundocumentoprotegidoyelservidorApache2envaunacabeceraconelestado401yotraparalarespuestade
autenticacin.Lacabeceracontieneeltipodeautenticacin,enestecasobsica,yelnombredeldominio.
El navegador muestra un ventana en la que solicita el nombre de usuario y la contrasea. La informacin es enviada al
servidorApache2quecompruebasuvalidez.Sinoesvlidavuelveasolicitarlainformacinvolviendoaenviarlascabeceras
401yladeautenticacin.
Apartirdeahoraelservidornopedirautenticacinporcadapginadeldirectorioqueseconsulte.Elnavegadorenvala
informacin'usuario/contrasea'quetieneencach.
El mdulo que controla este mtodo de autenticacin es mod_auth_basic cuya lnea LoadModule debe ser activada el
archivohttpd.conf:
LoadModuleauth_basic_modulemodules/mod_auth_basic.so

Adems, en el archivo C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf habr que


aadirunbloque<Directory> ...</Directory> porcadadirectorioquesequieraproteger.
Enelejemplosiguientehacemosusodeloshostsvirtualesyplanteamoselaccesoporautenticacinbsicaaldirectorioprivado(habr
quecrear)ysloestpermitidoalosusuariosincluidosenhtpasswdquesevalidencorrectamente.
Elsiguientecdigohabraqueincluirloenelarchivo
C:\ProgramFiles\ApacheSoftwareFoundation\Apache2.2\conf\extra\httpd-vhosts.conf

Alias /privado/ "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs

/privado"

<VirtualHost *:80>

DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"

ServerName servidor.apache2.com

ServerAlias servidor

ErrorLog "logs/error.log"

CustomLog "logs/access.log" common

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs

/privado">

AllowOverride FileInfo AuthConfig Limit

Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

<limit GET POST OPTIONS PROPFIND>

Order allow,deny

18 de 27
Curso Mentor Apache

Allow from all

</limit>

<limitexcept GET POST OPTIONS PROPFIND> httpd-vhosts.conf


Order deny,allow

Deny from all

</limitexcept>

AuthType Basic

AuthName "Directorio privado"

AuthUserFile "C:/Program Files/Apache Software Foundation/Apache2.2

/bin/passwd"

Require valid-user

</Directory>

</VirtualHost>

ElsignificadodelasdirectivasdeconfiguracinincluidasesidnticoqueenUbuntu.Lonicoquecambiaeslarutaynombre
delosarchivosydirectoriosimplicados.
El archivoC:/Program Files/Apache Software Foundation/Apache2.2/bin/passwd que almacena los usuarios de
Apache2consuscontraseas,secreautilizandolaordenhtpasswd.exe, queseencuentraeneldirectorio/bin/deApache2.
C:\Archiv...\Apache2.2\bin>htpasswd-nbnombre_usuariocontrasea>passwd

Podemosutilizarlaopcin-ccreaunnuevoarchivo.Slohabraqueutilizarlolaprimeravezyaque,siexiste,reescribeysepierderanlos
demsusuarios.

Laopcin-b(modobatch)permiteintroducirlacontraseadesdelalneaderdenes.Laventajadeusar-besquepermiteintroducirlos
datosseguidos,perotieneelinconvenientedequelacontraseaesvisiblemientrasseteclea.

Paraaadirusuarios,unavezcreadoelarchivo(-c)hayqueejecutardelamismaformasinlaopcin-c.Sinosequierequeseveala
contraseanoincluirlaopcion-b.
EsimportantequeelarchivoindicadoenAuthUserFileestubicadofueradeldirectoriohtdocsdondesealojanlaspginasyevitarsu
accesoalosusuarios,esdecir,fueradeDocumentRoot.LaestructuradedichoarchivoesidnticaqueenUbuntu.
Siaccedemosahttp://servidor.apache2.com/privadoaparecelaventanasiguiente:

19 de 27
Curso Mentor Apache

Alintroducirelnombredeusuarioycontraseasecomparanconelcontenidodelarchivopasswdparavalidarymuestra(por
ejemplo):

Sisequiereutilizarelarchivo.htaccesseneldirectorioaproteger,laseccinDirectoryincluidaenhttpd-vhosts.conf
seeliminaylasdirectivasincluidasseaadena.htaccess.Ademsdeberemosincluirladirectivasiguiente:
AllowOverrideAuthConfig

Tambinsepuedecontrolarelaccesoanivelgrupo.Paraellosedefinengruposdeusuariosyenvezdepermitirelacceso
unoauno,seautorizaalgrupo.
Supongamosquelosusuariosusuario1yusuario2formanpartedeungrupodeusuariosquellamaremosusers.
Creamos un archivo .htgroup en la carpeta C:\Archivos de programa\Apache Software
Foundation\Apache2.2\bin\ conelBlocdenotas,queincluyaunalneacomoesta:
users: usuario1 usuario2

ElgrupodedirectivasquedeberemosahoraincluirenlaseccinDirectorydehttpd-vhosts.confeselsiguiente:
AuthTypeBasic
AuthName"Directorioprivado"
AuthUserFile C:\Archivos de programa\Apache Software Foundation\Apache2.2
\bin\passwd
AuthGroupFile C:\Archivos de programa\Apache Software Foundation\Apache2.2
\bin\.htgroup
Requiregroupusers

20 de 27
Curso Mentor Apache

Autenticacin HTTP digest


Autenticacin HTTP digest

Comprobar que la lnea LoadModule en httpd.conf correspondiente al mdulo auth_digest est descomentada:

LoadModuleauth_digest_modulemodules/mod_auth_digest.so

En elarchivo C:\Archivosdeprograma\ApacheSoftwareFoundation\Apache2.2\conf\httpd.conf habra que


aadirunbloque<Directory>...</Directory>porcadadirectorioquequeramosproteger:

<Directory "C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs


\privado">
AuthName"DirectorioprivadoDIGEST"
AuthTypeDigest
AuthDigestDomainhttp://servidor.apache2.com/privado/
AuthUserFile C:\Archivos de programa\Apache Software Foundation\Apache2.2
\bin\.htdigest
Requirevalid-user
</Directory

Creacin de un usuario

El archivo C:\Archivosdeprograma\ApacheSoftwareFoundation\Apache2.2\bin\.htdigest que almacena los


usuarios de Apache2 con sus contraseas, se crea utilizando la orden htdigest.exe, que se encuentra en el directorio /bin/ de
Apache2.

C:\Archiv...\Apache2.2\bin>htdigest.exe-c.htdigestzona_privadanombre_usuario

El parmetro 'zona_privada' debe coincidir exactamente con el nombre del dominio de autenticacin dado en la directiva
AuthNameyaque,cuandosecreaunusuario,sehaceincluyndoloaundominiodeautenticacinconcreto.
SiladirectivaRequireindica'valid-user',seconsideranusuariosvlidosslolosquepertenecenaldominiodeautenticacin
dadoenAuthNameylascontraseasslopuedenutilizarseenestedominio.
Ennuestrocaso'zona_privada'sersustituidoporDirectorioprivado.
Enelejemploaadimoselusuariousuario1alarchivodecontraseas.htdigest. Elprogramanospedirlaclaveyluego
noslavuelveapreguntarparaconfirmarla.
Siseutilizaelarchivo.htdigest porprimeravezynoexiste,hayqueincluirlaopcin-c.
Siahoravamosahttp://servidor.apache2.com/privadonospidelaautenticacin.Siescribimoselusuarioelviraveremosquenonosda
paso,sinembargo,siindicamoselusuario1ysucontraseaveremoselcontenidodelacarpetaprivado.

Utilizar archivos .htaccess

Lasdirectivasincluidasenelarchivo .htaccess seaplicarnsloaldirectorioquelocontiene,ascomoatodossussubdirectorios.


Losarchivos.htaccess seleencadavezquehayunapeticindepginasynohayquereiniciarelservidorwebparaqueseactivenlos
cambiosrealizados.
Utilizamos en C:\Archivos de programa\Apache Software Foundation\Apache2.2 \htdocs\privado el archivo
.htaccess yacreado,conelcontenidosiguiente:
AuthName"Directorioprivado"
AuthTypeDigest
AuthDigestDomainhttp://servidor.apache2.com/privado/

21 de 27
Curso Mentor Apache

AuthUserFile C:\Archivos de programa\Apache Software Foundation\ Apache2.2\bin


\.htdigest
Requirevalid-user

Ahora habra que comentar en httpd.conf el grupo de directivas incluidas para la autenticacin global e incluir un grupo <Directory>
</Directory>conladirectivaAllowOverridequehabilitelautilizacindearchivos .htaccess conautenticacin:
<Directory "C:\Archivos de programa\Apache Software Foundation\Apache2.2 \htdocs
\privado">
AllowOverrideAuthConfig
</Directory>
Probamoslaconfiguracindesdeelnavegadormediante.htaccess.
Ir a la URL http://servidor.apache2.com/privado/ y aparece la misma ventana anterior pidiendo la identificacin del usuario.
Visualizamoselcontenidodelarchivoindex.htmlcreadoendichodirectorio.

22 de 27
Curso Mentor Apache

Glosario
Glosario Unidad 6

Concepto Definicin

Autenticacin Procesoporelcualseverificalaidentidaddelusuario.

Autenticacin bsica Elusuarioenelnavegadorwebintroducesuloginonombredeusuarioycontraseayseenvanal


servidorsincifrar.

Autenticacin digest Elusuarioenelnavegadorwebintroducesuloginycontraseayseenvanalservidorcifrados.

Autenticacin Host Conocidacomoautenticacin'severa'yequivalentealControldeacceso

Autenticacin HTTP Conocidacomoautenticacin'sencilla'yequivalentealaAutenticacinyAutorizacin.

Autorizacin Procesoporelcualseverificaqueunusuariodeidentidadconocidatieneaccesoalainformacin
solicitada.

Codificacin MD5 MessageDigestAuthentication5.E sunalgoritmodereduccincriptogrficode128bits paragenerarun


hashqueeselquesetransmiteoenvaalservidor. ElcdigoMD5fuediseadoporRonaldRivesten
1991.

Codificacin Base64 Es un sistema de codificacin que permite representar datos binarios usando nicamente los caracteres
imprimiblesASCII.

Control de acceso Procesoporelcualseverificaquelamquinadesdelaquesehahecholasolicituddeinformacintieneacceso


alamisma.

Dominio de Defineelconjuntoderecursosqueestarnsujetosalosmismosrequisitosdeautenticacin.
autenticacin

Hash Unhashofuncinresumenhacereferenciaaunafuncinomtodoparagenerarclavesquerepresentende
maneraunvocaaundocumento,registro,archivo,etc.

Otros Glosarios

Otros glosarios relacionados con la informtica y el mundo web.


Se pueden visitar las webs siguientes:

ATI: dispone de un glosario completo de trminos informticos en http://www.ati.es/novatica/glosario/glosario_internet.html


Microsoft: http://msdn.microsoft.com/es-es/library/aa302380.aspx

23 de 27
Curso Mentor Apache

Fuentes de informacin
Documentos y enlaces de inters

1. Gua de Ubuntu: http://www.guia-ubuntu.org/index.php?title=Servidor_web


2. Configuracin global del servidor: http://httpd.apache.org/docs/2.0/es/server-wide.html
3. Introduccin a los servidores web: http://www.cibernetia.com/
4. Conceptos sobre servidores web: http://trevinca.ei.uvigo.es/

24 de 27
Curso Mentor Apache

Resumen final
Sntesis de la Unidad 6 'Autenticacin, autorizacin y control de
acceso'
Lospuntosadestacardeestaunidadsonlossiguientes:

1. LaIdentificacinoAutenticacintinencomoobjetivocomprobarlaidentidaddelusuario
2. LaAutorizacinpermitealservidorcomprobarsielusuariotieneaccesoalainformacinquepretendevisitar
3. ElControldeaccesoseutilizaparaestablecerycontrolarlasmquinasquetienenaccesoaunrecursoindependientementedel
usuarioqueaccede
4. Paraactivarlaautenticacinsenecesitanlosmdulos mod_auth_basic paraautenticacinbsica (usuarioypasswordsin
encriptar)ymod_auth_digest paraautenticacinconelmtododigest(usuarioypasswordencriptados).
5. LadirectivaAuthNameindicaelnombredeldominiodeautenticacinenviadoalprogramacliente.
6. LosusuarioscreadosparaApache2notienenporqueestardadosdealtaenelsistema,ysiexistennotienenporquetenerlamisma
contrasea.
7. Sepuedenutilizararchivos .htaccess creadosenlosdirectoriosaprotegerconambostiposdeautenticacinbsicaydigest.

25 de 27
Curso Mentor Apache

Autoevaluacin Unidad 6
Autoevaluacin

El cuestionario de autoevaluacin de la Unidad 6 est disponible en la plataforma Mentor (https://centrovirtual.educacion.es/).

26 de 27
Curso Mentor Apache

Este artculo est licenciado bajo Creative Commons Attribution Non-commercial 3.0 License
Unidad 6

27 de 27
Curso Mentor Apache

Apache
Unidad 7: Seguridad en Apache con SSL


Enestecaptuloaprendersa:
elconceptodeservidorseguro
lastcnicasdecriptografasimtricayasimtrica
lainstalacin,activacinyfuncionamientodelmdulossl
laconfiguracindeunsitioseguroutilizandoSSL
lacreacindeunaAutoridaddeCertificacin
cmoobteneruncertificadodigitalparaelservidorseguro
cmoobteneruncertificadodigitalparaelclienteyserfirmadoporunaCA
cmoseinstalauncertificadopersonalenelnavegadorweb
algunasindicacionesbsicassobrecmosalvaguardarlaseguridaddelservidorweb

Materialcomplementario:

1. Archivoconlasactividadesreferidasalolargodelcaptulo.ArchivoU7_Actividades.pdf

2. Mapaconceptualdelcaptulo.ArchivoU7_mapaconceptual.png

3. Glosariocompletodelcurso.Archivoglosario.pdf

1 de 39
Curso Mentor Apache

Introduccin
Objetivos

Conocer los conceptos bsicos sobre seguridad en Apache2 y de la


criptografaengeneral.

Conocertrminoscomofirmadigital,autoridaddecertificacin,...

RealizarlainstalacinyconfiguracindeOpenSSL.

Realizarlacreacindeunaautoridaddecertificacin.

Utilizarloscertificadosdigitales.

Utilizarunanalizadordevulnerabilidades.

Conocimientos previos

EnestaunidadexplicamoslosconceptossobreseguridadenApache2ylaconfiguracinquedebemoshacersobreelservidorpara
disponer de un servidor web seguro. El requerimiento es haber comprendido y realizado las actividades de la unidad 6 y haber
entendido los conceptos explicados en esta unidad.

Contenidos

Unidad7:SeguridadenApacheconSSL
A.General

1. Servidores seguros
2. Proceso de firma digital
3. SSL (Secure Sockets Layer)
4. Conceptos importantes

B.Ubuntu

1. SSL y Apache2
2. Autenticacin del cliente mediante certificados.

C. Windows

1. Configuracin del servidor SSL


2. Mecanismos de seguridad generales de Apache2

D. Fin de unidad

1. Glosario
2. Fuentes de informacin
3. Resumen final
4. Autoevaluacin

2 de 39
Curso Mentor Apache

Servidores seguros
SSL

SSL(SecureSocketLayer)esunprotocoloquepermiteestablecerunacomunicacinseguraycodificadaentreelservidoryel
navegador.
SSLsedesarrollparatrabajarconelprotocoloHTTP,creandounprotocolodetransmisindehipertextoseguro(HTTPS).
HTTPssebasaendostiposdecriptografa:

Criptografasimtricaodeclavecompartida
Criptografaasimtricaodeclavepblica/privada

Seutilizanambostiposporqueseaprovechanlasventajasdecadaunayseevitansusinconvenientes.
Lacriptografaasimtricafuncionabienparalaautenticacin,yaquecadausuarioprotegesuclavesecreta,peroeslentaparael
cifrado.
Lacriptografasimtricaesrpidaenelcifradoymalaparalagestindeclaves.
Acontinuacinseincluyeunabreveexplicacindecadaunadeellas.

Encriptacin simtrica o de clave compartida

Encriptacinsimtrica:tcnicabasadaenlautilizacindeunaclaveconocidatantoporelemisorcomoporelreceptoro
destinatario.Lamismaclavequecifraenelorigendescifraeneldestino.

ElusuarioAyelusuarioBconocenlaclaveK.
El'Mensaje'original,utilizandounalgoritmodeencriptacinsimtricoylaclaveK,generael'MensajeK'queestransmitidoal
usuarioB.Este,aplicandolamismaclaveyelalgoritmoinverso,obtieneel'Mensaje'original.
Ventaja: es muy eficiente para el cifrado de grandes volmenes de informacin ya que los algoritmos utilizados son muy
rpidos.Pero,paraqueseainalterablefrenteaataquesporcriptoanlisis,laclavedebesermayorde40bits.Cuantomayor
seaeltamaodelaclavemasrobustoserelalgoritmodecifrado.
Inconveniente:ambaspartesdebenconocerlaclave.Sehadetransmitirlaclaveconelriesgoqueestosupone.
Losalgoritmosdecifradosimtricomsutilizados:
1. DES(DataEncryptionStandard,1976):estcayendoendesusoyhasidoreventadoennumerosaspruebasde
criptoanlisis.

3 de 39
Curso Mentor Apache

2. IDEA(InternationalDataEncryptionAlgorithm,1992):trabajaconclavesde128bitsynuncaseharoto,demomento.

Encriptacin asimtrica o de clave pblica/privada

Encriptacinasimtrica:tcnicabasadaenlautilizacindedosclaves:pblicayprivada.

Laclavepblicacifra
Laclaveprivadadescifra

Segnestatcnicacadausuariotienedosclaves:

Laclavepblicaesconocidaporotrosusuariosenotrasmquinas.Sepublica.
Laclaveprivadasololaconoceeldueodelaclave.Nosepublica.

Estasclavessegeneranalmismotiempodandolugaraparesrelacionadosmatemticamente,deformaquelacombinacinpblica-
privadaesnica.
Elalgoritmoutilizadotienehasta1024bits,ytieneuncostedecomputacinelevado.
Lainformacinquerecibeunusuarioserseguramientraslcontrolesusclavesprivadas.Elusuariopuedecambiarsuclaveprivada
encualquiermomentoypuedepublicarsuclavepblicaasociadaparasustituirlaclavepblicaobsoleta.
Segnestatcnica:

1. elusuarioAtienedosclaves,unapblicayotraprivada(quesloconocel).
2. sesuponequeelusuarioAquieretransmitirunmensajesloalusuarioB.
3. elusuarioAconocelaclavepblicadeBymedianteunalgoritmodeencriptacinsimtricocifraelmensajequetransmite.
4. elusuarioB,utilizandosuclaveprivadayelalgoritmoinverso,reproduceelmensajeoriginal.

Lautilizacindeestatcnicatienecomo:
Ventaja:

laclaveprivadanosetransmite.

Inconvenientes:

Estatcnicanoutilizaalgoritmoseficientesyaquenosonrpidoscifrandoydescifrando.
Lagarantadelaautenticidaddelasclavespblicas,esdecirquingarantizaquelaclavepblicadeunusuario
esrealmentedel?Aquesdondeentranenescenaloscertificadosdigitalesdelasclavespblicas.

Estatcnicagarantizala:
1.Confidencialidad

ElalgoritmogarantizaquenadiequenoconozcalaclaveprivadadelusuarioB puedeobtenerelmensajeoriginal.Sloel
destinatariolegtimo(usuarioB)podrleerelmensaje.

2.Autenticidad

Conestetipodecriptografa,yhaciendounusodiferentedelasclavespblicasyprivadasdelosusuariosimplicados,se
puedegarantizarlaautenticidaddelorigen,esdecir,asegurarquiengenerelmensaje.

En la figura siguiente el usuario A cifra el mensaje con su clave privada y es transmitido al usuario B. El usuario B
usando la clave pblica delusuario A obtiene elmensaje original.Dado que esa clave espblica,cualquiera puede
obtenerelmensaje,peroestogarantizaalusuarioBquelanicapersonaquepudohaberlogeneradoeselusuarioA
(yaquesolamentelconocelaclaveprivadaconquefuecifrado).Segarantizalaautenticidad.

4 de 39
Curso Mentor Apache

Los algoritmos de clave pblica ms conocidos son:

1. RSA (Rivest-Shamir-Adelman, 1977) que es el ms utilizado pero menos seguro.

2. DSA (Digital Signature Algorithm) que ofrece un mayor grado de seguridad.

5 de 39
Curso Mentor Apache

Proceso de firma digital


Proceso de firma digital

Enqueconsisteelprocesodefirmadigital?

Lafigurasiguientemuestralatcnicadefirmadigitalsobreunmensaje.

1. Elusuarioremitenteaplicaunalgoritmohashsobrelosdatosygeneraunhash.
2. Elusuarioremitenteconsuclaveprivadatransformaelhashenunafirmadigital.
3. Elusuarioremitenteenvaalusuariodestinatariolosdatos,lafirmayelcertificadodigitaldelremitente.
4. Elusuariodestinatarioaplicaelalgoritmohashalosdatosrecibidosygeneraunvalorhash.
5. Elusuariodestinatarioutilizalaclavepblicadelusuarioremitenteyelvalorhasobtenidoparacomprobarlafirma.

Sicoincidesepuedenasegurardoscosas:

elmensajenohasidomodificado:integridaddelmensaje
lanicapersonaquelohapodidofirmarhasidoelremitente:identidaddelfirmante

yaqueeselnicoqueposeelaclaveprivadaquesecorrespondeconlaclavepblicaconquesehadescifrado.Todoelprocesoes
transparentealusuario.
Laasociacinentrelafirmadigitalylapersonaquelautilizaeselobjetivodeloscertificadosdigitales.

Saber ms ... sobre la firma digital y firma electrnica

La firma electrnica es un concepto directamente relacionado con la firma digital, sin embargo no son lo mismo, a pesar del
extendido uso indistinto y de una utilizacin lxica y prctica muy similar de estos dos conceptos.

6 de 39
Curso Mentor Apache

7 de 39
Curso Mentor Apache

SSL (Secure Sockets Layer)


Servicios en Ubuntu

8 de 39
Curso Mentor Apache

SSLpermiteestablecer,deformasencilla,conexionessegurasatravsdeInternetyaquetodoslosdatosquesetransfierenentreel
navegadorweb(cliente)yelservidorvancifrados.
TSL (Transport Layer Security) es la evolucin de SSL y lo sustituir con el tiempo. De hecho la versin 1 de TLS coincide
prcticamenteconlaversin3delprotocoloSSL.
En la Unidad 6 se vieron los mecanismos que proporciona Apache2 para la transmisin de las credenciales de usuario desde el
navegadorhaciaelservidor.Secomprobquelaautenticacindigestasegurabaestatransmisinenviandolaidentificacindeusuario
encriptada.Peroenningncasoseasegurabalatransmisincompletaencriptada.
LautilizacindeSSLgarantizaquetodoelintercambiodeinformacinrealizadoduranteunasesindeconexinsellevaacabode
formaseguramedianteencriptacin.
SSLenunaconexinTCP/IPproporciona:

1. Confidencialidad:medianteelcifradodelainformacintransferida.
2. Integridad del mensaje: mediante el control sobre cualquier modificacin intencionada o accidental en la informacin
mientrasviajaporInternet.
3. Autenticacindelservidor:elusuariopuedeasegurarsedelaidentidaddelservidoralqueseconectayalqueposiblemente
enveinformacinpersonalconfidencial.Proporcionadoporelcertificadodeservidor.
4. Autenticacindecliente:elservidorconocelaidentidaddelusuarioylepermiteonosuaccesoareasprotegidas.Para
elloelclientedebetenerinstaladouncertificadodeclienteensuordenadorqueidentificaelservidoralcliente.Seevitanas
ataques comunes de captacin de contraseas mediante el uso de analizadores de protocolos (sniffers) o la ejecucin de
reventadores de contraseas. Detodas formas, sonmuypocoslos servidoresweb que autentican a los usuarios de esta
manera.

SSLpuedeutilizarunaclavedesesinde40o128bits.Estaclavesegeneraencadatransaccin.Enlamedidaquelalongitudde
laclaveseamayorseharmsdifcilromperlaencriptacin.Lamayoradelosnavegadoressoportanclavesdesesinde128bits.
SSLcreaunacapa(layer)entreelprotocolodeHTTPyelprotocolodetransporteTCPcomomuestralafigurasiguiente:

Lacomunicacinserealizaendosfases:

1. Fasedesaludo(handshaking,estrecharlasmanos):elclienteyelservidorseidentificanmedianteelintercambiodeclaves
pblicas(encriptacinasimtrica)yllevanacabolaautenticacinutilizandocertificadosdigitales.
2. Fasedecomunicacin:serealizaelintercambiodedatosutilizando(generalmente)unaclavedetiposimtrico.

Los navegadores llevan ya incorporados un mdulo SSL que se activa de forma automtica cuando es necesario. Normalmente
cuandoenlaURLseescribehttps://.

9 de 39
Curso Mentor Apache

Conceptos importantes
Certificado digital y Autoridad de certificacin

10 de 39
Curso Mentor Apache

A.Certificadodigital(CSR):conjuntodecaracteresaadidosaldocumento(oarchivo)queacredita

alautor(Autenticacin)
y nohaexistidoningunamanipulacindelosdatos(Integridad).

Contiene la clave pblica y datos identificativos (nombre, apellidos, DNI,...) firmados digitalmente por una Autoridad Certificadora
(CA)enlaquetodosconfan.
LaCAeslatercerapartedeconfianzaquepermiteque,personasquenoseconocenentres,puedanconfiarenloscertificadosque
sepresentanelunoalotro.SonCA,porejemplo,laFbricaNacionaldeMonedayTimbreoVerisign.
Elobjetivodelcertificadodigitalesasociarunaclavepblicaaunusuariodeterminado.
El Certificado digital es utilizado por el usuario para firmar sus mensajes utilizando su clave privada (criptografa
asimtrica),quesloelconoceyqueimpidequepuedadespusnegarqueeselautor.
Lavalidezdelafirmapuedesercomprobadaporcualquierotrousuarioquetengalaclavepblicadelautor.
Funcionamiento:

Afirmarelusuariounmensajeseaplicaunalgoritmohash(MD5SHA-1)sobreeltextoyseobtieneunextractooresumen
delongitudfija,queesespecficoparaesemensaje.Cualquiercambioenelmensaje,porpequeoquefuera,generaraun
resumendiferente,ynosecorresponderaconelqueinicialmentefirmelusuario.Elresumenobtenido(segnelalgoritmo
utilizado)tendrunalongitudentre128y160bits.Acontinuacinseciframediantelaclaveprivadadelusuario.Elalgoritmo
deencriptacinasimtricamsutilizadoenestepasoeselRSA.Asseobtieneunresumenfinalcifradoconlaclaveprivada
delusuario,queseaadealfinaldelmensajeparaquesepuedaverificarlaautoraeintegridaddelmensajeporusuarios
interesadosquetenganlaclavepblicadelusuarioautordelmensaje.

Comprobacin:

La validez del mensaje, documento o archivo se comprueba mediante la clave pblica del autor. El usuario que recibe el
mensajedisponedelaclavepblicaderemitentequehaobtenidoatravsdeunaCAyconelladescifraelresumencifrado
delusuarioautoryluegocalculaelresumenhashquelecorresponderaaltextodelmensajerecibido.Siambosresultados
coincideneldocumentonohasufridoningunamodificacinyesvlido.Sinocoincidennoesvlido

Legalmentelafirmaelectrnicabasadaenuncertificadodigitaltienelamismavalidezjurdicaquelafirmamanuscrita.Eselsistema
utilizadoenlae-administracin.
LaidentificacinpersonalbasadaenuncertificadodigitaltienelamismavalidezquelapresentacindelDNI.

B.AutoridaddeCertificacin(CA):entidadenlaqueconfantantoelemisordelmensajecomoelreceptor.Portanto,confan
tambinenloscertificadosdigitalesqueemitedichaentidad.

Suobjetivoesacreditarlacorrespondenciaentreunaclaveysupropietarioreal.
Actacomounnotario'electrnico'queextiendeuncertificadodeclavesqueestfirmadoconsupropiaclaveprivada.
TodoslosusuariosqueposeenlaclavepblicadelaCApuedencomprobarlavalidezdelcertificadoysistehasido
modificado.

LaleydefirmaelectrnicadefinelasCAcomo"prestadorasdeserviciosdecertificacin"y,segnlalegislacindecadapas,"son
aquellas personas fsicas o jurdicas que expiden certificados, pudiendo prestar, adems otros servicios en relacin con la firma
electrnica".
MuchosnavegadoresquesoportanSSLtienenunalistadeCAcuyoscertificadossonautomticamenteaceptados.Sinoestenla
listaelnavegadorpreguntaalusuariosiaceptaonolaconexin.

Certificado(CRT):unCSRfirmadoporlaCAesunCRT.
ElarchivoCRTcontienelaclavepblicadelusuario,sunombre,elnombredelaCA,yestfirmadodigitalmenteporlaCA.Deesta
formaotrasentidadespuedenverificarestafirmaparacomprobarlaveracidaddelcertificado.

11 de 39
Curso Mentor Apache

Ubuntu: SSL y Apache2


Mdulo se seguridad

Elmdulodeseguridadmod_sslproporcionaencriptacinparaelservidorwebApache2atravsdelosprotocolosSSL(Secure
Socket Layer) y TLS (Transport Layer Security). Este mdulo utiliza las libreras y herramientas OpenSSL que proporcionan
comunicacionesencriptadas.
Elmdulomod_sslestdisponibleenelpaqueteapache2-common.
ParacompilarApacheconsoporteSSLesnecesariotenerinstaladolosfuentesdeopenssl,yaquealcompilarsenecesitanlos
ficherosdecabecera(.h).Tambinnecesitamostenerinstaladoopensslparapodertrabajarconloscertificados.
Parainstalarambospaquetesejecutar:

#apt-getinstallopenssllibssl-dev

ElpaqueteOpenSSLproporciona:

Lalibreracryptoqueimplementagrancantidaddealgoritmoscriptogrficosmuyutilizados.
LalibrerasslqueimplementalosprotocolosSSLyTSL.
Laaplicacinopenssl(funcionaenlneadecomandos)quepermitelautilizacindelalibreracrypto.Puedehacer,entre
otrastareas,losiguiente:
creacindeclavesRSA,DSA
creacindecertificadosX.509,CSRyCRL
calcularelMD5
encriptarydesencriptar
ParacrearnuestrapropiaCA

Elmdulo mod_ssl tienelassiguientes directivasdeconfiguracin,muchasdelascualesseutilizandesdeelpropioarchivode


configuracinespecficodelmdulo,/etc/apache2/mods-available/ssl.conf.

Ladirectivadecargadelmodulo mod_ssl seencuentraenelarchivo /etc/apache2/mods-available/ssl.load.

Directivas relacionadas con SSL

Directiva Descripcin
SSLEngine ActivaelmotorSSL

SSLCACertificateFile IndicaelarchivoconelcertificadodelaAutoridaddeCertificacin

SLCARevocationFile Archivoconlalistadecertificadosrevocados(CRL)porlaAutoridaddeCertificacin.

SLCertificateFile Archivodelcertificadodelservidorquepuedeincluirsuclaveprivada.

SLCertificateKeyFile Archivoconlaclaveprivadaycodificadadelcertificado.Debeestarprotegido.

SSLOptions OpcionesSSLparadirectorios.

SSLProtocol Protocolosusados(SSLv2,SSLv3,TLS).

12 de 39
Curso Mentor Apache

Directiva Descripcin
SLRequire Definicinderequisitosdeacceso.

SLRequireSSL IndicalaobligacindeusarHTTPS.

SSLUserName Variablequealmacenaelnombredeusuario.

SSLVerifyClient Niveldeverificacindeclientes.

13 de 39
Curso Mentor Apache

Autoridad de certificacin
Creacin de nuestra propia CA

CertificadodelservidorSSL
ParapoderestablecerunaconexinSSLlamquinadestinorequiereuncertificadodeservidor.
ElcertificadodeservidorcontienelafirmadelaAutoridadCertificadora(CA),laclavepblicadeldestinatario,lafechadecaducidad,
etc.
PodemossolicitaruncertificadodigitalaunaAutoridadCertificadora(CA)perocobrarporello.Sinembargopodemos,mediante
openssl,crearnuestrapropiaAutoridadCertificadoratransformandonuestroservidorenunservidorSSLytransmitirlainformacin
cifradasinningngasto.
Lgicamente los certificados emitidos por nuestra CA no tienen ninguna validez en entornos de produccin. Los certificados
auto-firmadosnosonaceptadosautomticamenteenningnnavegador.
UnservidorwebessegurocuandoutilizaunacombinacindelprotocoloSSL(HTTPs)parapoderenviarlainformacincifraday
uncertificadodigitalproporcionadoporunaCA.

SereconoceelusodecomunicacionesmedianteSSLporqueenlaURLapareceelprefijohttps://.
Elcertificadodigital,unavezautogeneradouobtenido,sedebedeinstalarenelservidorseguroSSL.
ParainstalarelcertificadoenelservidorseguroSSL:
1.ComprobarsisetieneinstaladoelpaqueteopenSSLyactivadoelmdulomod_ssl:

#ls/etc/apache2/mods-enabled

2.ComprobarqueestactivadoelmduloSSL.Sinoapareceutilizarlaorden:

#a2enmodssl

3.Instalarocomprobarsiestinstaladoelpaqueteopenssl:

#dpkg-sopenss

Laconfiguracinlavamosahacersobreelservidorwebdeejemplo servidor.apache2.com.

4.Ira/etc/apache2ycreareldirectorio/sslenelseguardarelcertificadoquevamosagenerar.

5. Necesitamos descargar el paquete tar apache2-ssl.tar.gz disponible en http://librarian/7477840/apache2-ssl.tar.gz y


descomprimirlo.

#wgethttp://librarian.launchpad.net/7477840/apache2-ssl.tar.gz
#gunzipapache2-ssl.tar.gz
#tarxvfapache2-ssl.tar
#sudocpapache2-ssl-certificate/usr/sbin/
#sudocpssleay.cnf/usr/share/apache2/

Estepaquetetarcontienedosarchivos:

ssleay.cnfquehemoscopiadoen /usr/share/apache2
apache2-ssl-certificate quehemoscopiadoen /usr/sbin

6.Generarlasclavesasimtricasyelcertificado(autofirmado)delaCA,yqueennuestrocasotambinvanaserdelservidorSSL.

# apache2-ssl-certificate
creating selfsigned certificate
replace it with one signed by a certification authority (CA)

enter your ServerName at the Common Name prompt

14 de 39
Curso Mentor Apache

If you want your certificate to expire after x days call this programm
with -days x
Generating a 1024 bit RSA private key
......................++++++
.....++++++
writing new private key to '/etc/apache2/ssl/apache.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:ES
State or Province Name (full name) [Some-State]:Espaa
Locality Name (eg, city) []:Valencia
Organization Name (eg, company; recommended) []:ITE
Organizational Unit Name (eg, section) []:CURSO MENTOR
server name (eg. ssl.domain.tld; required!!!) []:servidor.apache2.com
Email Address []:webmaster@apache2.com

Conellohemoscreadoelarchivo/etc/apache2/ssl/apache.pem quecontienelasclaves(RSAPRIVATEKEY)yel
certificado(CERTIFICATE)pertenecientesalservidorservidor.apache2.com,firmadopornosotrosmismos.
#more/etc/apache2/ssl/apache.pem
-----BEGINRSAPRIVATEKEY-----
MIICXQIBAAKBgQDdrNsQAj+2kG1qWe8JEGpn+GYYDmaxK1mArZx/5H6/AGGagB09
aoUkEKXDUNkQBIBUcJIa3idmU/ZYZays4oaoyOq48buyOQB4gSZWBQ+oJDKjGexV
..............................................
-----ENDRSAPRIVATEKEY-----
-----BEGINCERTIFICATE-----
MIICtzCCAiACCQDQKZM/WWiK2jANBgkqhkiG9w0BAQQFADCBnzELMAkGA1UEBhMC
RVMxEDAOBgNVBAgUB0VzcGHDsWExETAPBgNVBAcTCFZhbGVuY2lhMRQwEgYDV
..............................................
-----ENDCERTIFICATE-----

Instalar el certificado

Paraello:
1.Creamoslosdirectoriosyarchivosnecesarios:

#cd/etc/apache2/ssl
#mkdirmiCA
#mkdirmiCA/private
#mkdirmiCA/newcerts
#touchmiCA/index.txt

Importante:todaslasrdenesseejecutandesde /etc/apache2/ssl.

2.CopiamoslasclavesdelaCAaldirectoriocorrespondienteconelnombrecakey.pem:

#cpapache.pemmiCA/private/cakey.pem

3.CopiarelcertificadodelaCAallugarnecesario

15 de 39
Curso Mentor Apache

#cpapache.pemmiCA/cacert.pem

4. Crear/Editar el fichero miCA/serial y guardarlo en modo texto. Su contenido debe ser una lnea con el valor 01, como se
muestraacontinuacin.

#moremiCA/serial
01

Ahora lo nico que queda pendiente es incluir en el sitio las directivas que indican que el acceso al mismo se hace mediante el
protocoloHTTPs.

16 de 39
Curso Mentor Apache

Configuracin del servidor SSL


Opciones de configuracin

ExistenvariasposibilidadesparaconfigurarSSL.

CualquierclientewebpuedeconectarseaunaURLdeterminada,usandohttps.Enestecasoelservidorenviarsucertificado
alclienteparaqueestepuedadescifrarlainformacinquelellegadelservidorycifrarlaqueenvahaciaelservidor.
SlolosclienteswebquetenganundeterminadocertificadopuedenconectarseaunadeterminadaURL.
Combinar el primer ejemplo con las tcnicas de autenticacin que hemos visto antes. De forma que cuando intentemos
accederaunadeterminadaURLusandohttpstendremosqueautenticarnosprimero.

Configurar TODO el sitio web como servidor seguro

1. Tomamoscomoreferenciaelarchivo /etc/apache2/sites-available/default-sslgenerado.

2. Tomamos como comienzo del sitio web (DocumentRoot) el directorio /var/www/htmls. Creamos el directorio
/ var/www/htmls, dondevamosasituarlaspginasdelservidorseguro.
3. Creamosunarchivoindex.htmlconuntextoindicativoparapoderprobar.

4. Eliminarelenlacesimblicodelarchivo /etc/apache2/sites-available/default en sites-enabled. Deesta


formasloestardisponibleelsitioseguro default-ssl.

#a2dissitedefault

Elcontenidodelarchivo default-ssl deber ser similar a:


NameVirtualHost*:443
<VirtualHost*:443>
ServerAdminwebmaster@apache2.com
ServerNameservidor.apache2.com
DocumentRoot/var/www/htmls
SSLEngineOn
SSLCertificateFile/etc/apache2/ssl/miCA/cacert.pem
SSLCertificateKeyFile/etc/apache2/ssl/miCA/private/cakey.pem
<Directory/>
OptionsFollowSymLinks
AllowOverrideNone
</Directory>
<Directory/var/www/htmls>
OptionsIndexesFollowSymLinksMultiViews
AllowOverrideNone
Orderallow,deny
Allowfromall
</Directory>

17 de 39
Curso Mentor Apache

ScriptAlias/cgi-bin//usr/lib/cgi-bin/
<Directory"/usr/lib/cgi-bin">
AllowOverrideNone
OptionsExecCGI-MultiViews+SymLinksIfOwnerMatch
Orderallow,deny
Allowfromall
</Directory>
ErrorLog/var/log/apache2/error.log
LogLevelwarn
CustomLog/var/log/apache2/access.logcombined
ServerSignatureOn
Alias/doc/"/usr/share/doc/"
<Directory"/usr/share/doc/">
OptionsIndexesMultiViewsFollowSymLinks
AllowOverrideNone
Orderdeny,allow
Denyfromall
Allowfrom127.0.0.0/255.0.0.0::1/128
</Directory>
</VirtualHost>

Elpuerto443eselestndarparaservidoreswebseguros.Loaadimosalarchivo /etc/apache2/ports.conf. Hay


quetenercuidadosiexisteestamismalneaenotroarchivodeconfiguracinyaquedaraunmensajedeerror.

Listen443

Aadimosnuestrositioseguroalossitiosdisponiblescon:

#a2ensitedefault-ssl
Sitedefault-sslinstalled;run/etc/init.d/apache2reloadtoenable.

ReiniciamosApache2paraquelealanuevaconfiguracin.

#/etc/init.d/apache2reload

AbrimoselnavegadorydamoslaURLhttps://servidor.apache2.comyaparecelasiguienteventanaindicandoqueelcertificadode
quedisponeestesitiohasidoemitidoporunaentidaddesconocida:

18 de 39
Curso Mentor Apache

PulsamosenEntiendolosriesgosyacontinuacinenAadirExcepcin.LuegopulsarsobreConfirmarexcepcindeseguridad.
Nosmuestranuestrotextodebienvenidaalservidorseguro:

Sielcertificadoobtenidoqueremostengaunmayorplazodevalidez(pordefectotieneunmes)habraqueejecutarlaordenconlos
argumentossiguientes:

#apache2-ssl-certificate--force-days365

PreviamentetendramosqueeliminarelcertificadoanterioryrecargarApache2.

Actividad 7.1

19 de 39
Curso Mentor Apache

Enunciado:
Cmocomprobaramosquetenemosdosservidoreswebescuchando?
Solucin:
Siejecutamoslaorden:

#netstat-atup|grep/apache2
tcp600*:www*:*LISTEN12424/apache2
tcp600*:https*:*LISTEN12424/apache2

Otraformaserautilizandolaordennmap(comprobarqueelpaquetenmapestinstalado):

#nmaplocalhost
80/tcpopenhttp
443/tcpopenhttps

Configurar parte del servidor web como sitio seguro

EnestecasosequierequeslounapartedelsitioestdisponiblecomositioseguromedianteSSL.Porejemplotodoloquehaya
detrsde /var/www/htmls/

1. Volveracrearelenlacede /etc/apache2/sites-available/default en sites-enabled mediante la orden


a2ensite.
2. Aadir en /etc/apache2/sites-available/default las lneas que indican que el directorio /var/www
/htmlsrequiereSSL.

<Directory/var/www/htmls>
SSLRequireSSL
</Directory>

El archivo /etc/apache2/sites-available/default-SSL se puede simplificar y dejar slo lo justo para poder


visualizarpginashtmldeformaseguraalaccedera /var/www/htmls.
NameVirtualHost*:443
<VirtualHost_default_:443>
ServerNameservidor.apache2.com
DocumentRoot/var/www/htmls
SSLEngineOn
SSLCertificateFile/etc/apache2/ssl/miCA/cacert.pem
SSLCertificateKeyFile/etc/apache2/ssl/miCA/cakey.pem
<Directory/var/www/htmls>
OptionsIndexesFollowSymLinksMultiViews
AllowOverrideNone
Orderallow,deny
Allowfromall
</Directory>
ErrorLog${APACHE_LOG_DIR}/error.log
LogLevelwarn
CustomLog${APACHE_LOG_DIR}/ssl_access.logcombined
ServerSignatureOn
</VirtualHosst>

LapartedelservidorwebaccesiblesinvalidacinSSL (/var/www) quedaraas:

20 de 39
Curso Mentor Apache

NameVirtualHost*:80
<VirtualHost*:80>
ServerAdminwebmaster@apache2.com
ServerNameservidor.apache2.com
DocumentRoot/var/www/
<Directory/>
OptionsFollowSymLinks
AllowOverrideNone

</Directorry>
<Directory/var/www/>
OptionsIndexesFollowSymLinksMultiViews
AllowOverrideNone
Orderallow,deny
Allowfromall
</Directory>
<Directory/var/www/htmls>
SSLRequireSSL
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin


<Directory"/usr/lib/cgi-bin">

AllowOverride None
OptionsExecCGI-MultiViews+SymLinksIfOwnerMatch
Orderallow,deny
Allowfromall
</Directory>
ErrorLog${APACHE_LOG_DIR}/error.log

LogLevel warn
CustomLog${APACHE_LOG_DIR}/access.logcombined
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
combined
LogFormat"%v%h%l%u%t\"%r\"%>s%b"common
ServerSignatureOn
Alias/doc/"/usr/share/doc/"
<Directory"/usr/share/doc/">
OptionsIndexesMultiViewsFollowSymLinks
AllowOverrideNone

Order deny,allow
Denyfromall
Allowfrom127.0.0.0/255.0.0.0::1/128

</Directory>

</VirtualHost>

Si vamos ahora al navegador y escribimos en la URL: http://servidor.apache2.com se nos abre la pgina de


Apache2 para la parte no segura (/var/www/) y si escribimos https://servidor.apache2.com se nos abre el
directorioquehemosdeclaradocomoseguro (/var/www/htmls).

21 de 39
Curso Mentor Apache

Si aparece el mensaje de error tipo 'sockets 443...' es porque existe un archivo en /var/run/apache2.pid que hay que
eliminar. Parece que intenta escuchar en el puerto 443 pero no puede.

22 de 39
Curso Mentor Apache

Autenticacin del cliente mediante certificados


Proceso

Conloquehemosexplicadohastaahoraconseguimosquelascomunicacionesentreelservidorwebylosnavegadores
(clientesweb)sehagacifrada.
Elservidorsehaidentificadomedianteuncertificado,peropodemoshacerqueelclientetambinlohaga.
Loquetenemosquehaceresgenerarcertificadosparalosclientesyponerladirectiva SSLVerifyClient conelvalor
require(enlugardenonequeeselvalorpordefecto)incluidaenlaseccinDirectorycorrespondientealazonasegura.
Paraellohayquerealizarlasaccionessiguientes:

1. Creacindeunaclaveprivada(KEY)
2. Generacindeunasolicituddecertificado(CSR),queennuestrocasoesautogenerado
3. Instalacindelcertificado(CRT)

1.Generarclaveprivada
GeneramosunCertificadoparausopersonal.Comousuarioydesdesuhome.
Generamoslaclaveprivadatriple-DES mediantealgoritmoRSA,tamaodelaclave1024yarchivodesalidaprivada.keyenel
directoriohomedelusuario:

$opensslgenrsa-des3-outprivada.key1024
GeneratingRSAprivatekey,1024bitlongmodulus
..............++++++
eis65537(0x10001)
Enterpassphraseforprivada.key:soyelvira
Verifying-Enterpassphraseforprivada.key:soyelvira

2.Peticindecertificado
HayquerealizarlapeticindecertificadoenelformatoestndarPKCS#12paraquelafirmelaAutoridadCertificadora.Laextensin
sueleser.csr(CertificateSigningRequest,PeticindeFirmadeCertificado)ycontienelaclavepblicaylosdatosidentificativos
paraquelosfirmelaCA.
Engeneral,elarchivo.csreselqueseenvaalaentidadescertificadorascuandosesolicitaelCSR.Perotambinnuestrosistema
puedegenerarunCertificadoAutoGeneradoquepermitirtrabajardeformasegura,peroadvirtiendosiemprealosclientesqueel
certificadonopuedeservalidadoenunaentidadcertificadora.
Enelcasodeunapersona,loscamposidentificativossernelCommonName(CN)conelnombreyDNIdelapersona(estoesuna
convencinutilizada,porejemplo,porlaFbricaNacionaldeMonedayTimbre)yladireccindecorreoelectrnico,queservirpara
enviarcorreoscifradosyfirmados.
ElvalordelcampoOrganizationName(NombredelaOrganizacin),debecoincidirconeldelaAutoridadCertificadora.
Comousuarioydesdesuhome,ejecutar:

#opensslreq-configopenssl.cnf-new-keyusuario.key-outusuario.csr
CountryName(2lettercode)[AU]:ES
StateorProvinceName(fullname)[Some-State]:Espaa
LocalityName(eg,city)[]:Madrid
OrganizationName(eg,company)[InternetWidgitsPtyLtd]:ITE
OrganizationalUnitName(eg,section)[]:CURSOMENTOR
CommonName(eg,YOURname)[]:Usuario
EmailAddress[]:
Pleaseenterthefollowing'extra'attributes

23 de 39
Curso Mentor Apache

tobesentwithyourcertificaterequest
Achallengepassword[]:
Anoptionalcompanyname[]:

3.Firmadelcertificado
LaAutoridadCertificadora(nuestroservidorSSL)firmaelcertificado.
Esposiblequedevuelvaalgnerrordearchivonoencontrado.Enesecasohayquerevisaren /usr/lib/ssl/openssl.cnflos
caminoshastalosarchivoscakey.pem, index.txt,serial,etcsoncorrectos.

#vi/usr/lib/ssl/openssl.cnf
dir=./miCA

Modificarpermisosde cakey.pem aadiendolecturaparatodos:

#chmoda+r/etc/apache2/ssl/private/cakey.pem

Comprobamosqueelcertificadoexpedidotienevalidezde365das.
OJOconlasmaysculasyminsculas!!!!!!!!!!!!!!
Hayqueejecutarcomoroot(osudo)desdeeldirectorio /etc/apache2/ssl/

#openssl ca -in peticion.csr -out certificado.crt


Using configuration from /usr/lib/ssl/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 1 (0x1)
Validity
Not Before: Aug 23 12:22:56 2010 GMT
Not After : Aug 22 12:22:56 2011 GMT
Subject:
countryName = ES
stateOrProvinceName = Espaa
organizationName = ITE
organizationalUnitName = CURSO MENTOR
commonName = Usuario
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
D4:89:85:41:64:26:A5:62:19:D2:EC:68:E6:3E:55:F5:EA:C2:A2:B3
X509v3 Authority Key Identifier:
DirName:/C=ES/ST=Espaa/L=Madrid/O=ITE/OU=CURSO MENTOR/CN=servidor.apache2.com
/emailAddress=webmaster@apache2.com
serial:EE:39:51:A1:79:B5:9A:64
Certificate is to be certified until Aug 22 12:22:56 2011 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Eneldirectorio/etc/apache2/ssl/tenemosdisponibleelcertificadocertificado.crt.

4.Exportamoselcertificado
Exportamos el certificado y las claves a formato PKCS#12. El archivo PKCS#12 contiene las claves asimtricas (privada y
pblica)yelcertificado(conlaclavepblicaylosdatosdelusuario,yafirmadosporlaautoridadcertificadora).
Ejecutardesde/etc/apache2/sslcomousuariousuario:

24 de 39
Curso Mentor Apache

$openssl pkcs12 -export -in certificado.crt -inkey /home/usuario/privada.key -out


/home/usuario/usuario.p12
Enter pass phrase for privada.key:soyusuario
Enter Export Password:soyusuario
Verifying - Enter Export Password:soyusuario

Elarchivogeneradousuario.p12(PKCS#12)irprotegidoporunacontrasea.Podemosgrabarloenunsoporteeimportarlodesde
unnavegador,clientedecorreo,etc,paraserutilizado.Debemosguardarlobien,porquecontienenuestraclaveprivada.Unavez
importadoenelnavegador,nosconectamosanuestroservidorquenosrequeriridentificarnosconuncertificadodeclientevlido.Y
sino,nonospermitirentrar.

25 de 39
Curso Mentor Apache

Windows: Servidor SSL


Configuracin del servidor SSL

1.PartimosdeunservidorApache2.2instaladoyconhostsvirtualesconfigurados.ParaactivarelsoporteSSLdeApache2en
WindowsXPhayquehacerlosiguiente:
2.Comprobarqueelejecutableopenssl.exeestdisponibleeneldirectorio/bindeApache2.2.Recordarqueinstalamoselbinario
consoporteSSL.
3.Comprobarqueelarchivomod_ssl.soesteneldirectorio /modulesdeApache2.2
4.Descomentarenelarchivodeconfiguracinhttpd.conflaslneas:
LoadModulessl_modulemodules/mod_ssl.so
Includeconf/extra/httpd-ssl.conf

5.AadirladirectivaespecficadeSSLenhttpd.conf

<Directory/>
SSLRequireSSL
</Directory>

6. Si queremos que todos los mdulos de Apache estn enterados de la opcin SSL hay que cambiar en el registro de
WindowsXPlaentradasiguiente(abrirunaconsolayejecutarlaordenregedit):

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Apache2\ImagePath

aparece:
C:\ProgramFiles\ApacheGroup\Apache2\bin\Apache.exe"-krunservice

cambiar por:
C:\ProgramFiles\ApacheGroup\Apache2\bin\Apache.exe"-DSSL-krunservice

7. CreacindenuestraAutoridadCertificadora,paraluegoexpedircertificadosalosclientesquequieranconectarsealservidor.

Opensslnecesitaunelarchivodeconfiguracin openssl.cnf eneldirectoriobin/. Lainstalacindejadisponibleunoperoenla


carpetaSoftwaredelcursohaydisponibleelopenssl.cnfconelquesehanhecholaspruebas.Hayquetenerencuentaque
Windowstratalosarchivo*.cnfdeunaformaespecial,perosonarchivosdetexto.

Iraldirectorio C:/ProgramFiles/ApacheSoftwareFoundation/Apache2.2,ejecutar:

C:\Program Files\Apache Software Foundation\Apache2.2\bin>openssl req -config openssl.cnf -x509


-newkey rsa:2048 -keyout cakey.pem -days 3650 -out cacert.pem

8.CreacindelaclaveprivadadenuestrofuturocertificadodelservidorSSL.
Desde una consola ira C:/ProgramFiles/ApacheSoftwareFoundation/Apache2.2/bin yejecutarla orden
siguientequegeneralaclaveprivada:
openssl genrsa -out serv-privkey.pem 2048

9. Ahora vamos a crear un certificado digital con nuestra CA. Pero, antes de hacer el certificado , hay que hacer
una peticin y en ella se establece el propietario del certificado. Desde \bin ejecutar:

openssl req -config openssl.cnf -new -key serv-privkey.pem-outpeticion-certificado-servidor.pem

26 de 39
Curso Mentor Apache

Utilizamos el archivo de configuracin generado para crear el certificado. Para ello ejecutar desde \bin:

opensslx509-CAcacert.pem-CAkeycakey.pem-req-inpeticion-certificado-servidor.pem-days
3600-CAcreateserial-outservidor-cert.pem

dondeindicamosqueelcertificadoesparaunservidorutilizandolaopcin-extfileyelarchivoconfig.txt.
Estocreauncertificadoqueexpiraren3600das

Generamoselcertificadoparaelservidor:

bin\opensslx509-inserver.crt-outserver.der.crt-outformDER

Crear la carpeta C:\Archivos de programa\Apache Group\Apache2\conf\ssl y mover a ella los archivos


generados:cakey.pem, cacert.pem, peticion-certificado-servidor.pem, servidor-cert.pem,
serv-privkey.pem,cacert.srl.
Editar el archivo httpd-ssl.conf y dejar las siguientes lneas:

Listen443
AddTypeapplication/x-x509-ca-cert.crt
AddTypeapplication/x-pkcs7-crl.crl
SSLPassPhraseDialogbuiltin
SSLSessionCachenone
SSLMutexdefault
<VirtualHost_default_:443>
DocumentRoot"C:/Archivosdeprograma/ApacheSoftwareFoundation/Apache2.2/htdocs"
ServerNameservidor.apache2.com:443
ServerAdminwebmaster@apache2.com
ErrorLogC:/Archivosdeprograma/ApacheSoftwareFoundation/Apache2.2/logs/error.log
TransferLogC:/Archivosdeprograma/ApacheSoftwareFoundation/Apache2.2/logs/access.log
SSLEngineon
SSLCipherSuiteALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile C:/Archivos de programa/Apache Software Foundation /Apache2.2/conf/ssl
/servidor-cert.pem
SSLCertificateKeyFileC:/Archivosdeprograma/ApacheSoftwareFoundation/Apache2.2/conf/ssl
/serv-privkey.pem
#SSLVerifyClientrequire
#SSLVerifyDepth10
</VirtualHost>

El archivo httpd-ssl.conf contiene algn fallo en nombres de archivos. Por ejemplo el archivo de error se llama
error.log y el de acceso access.log y no como aparecen por defecto.
Tambinhayquetenerencuentaqueelpathalarchivosicontieneespaciosdebeirentre
AlreiniciarelservidorApache2eirahttps://servidor.apache2.comypulsarAceptaryveremoselmensajecontenidoenelarchivo
index.htmldelapginaprincipal.
Y sinosfijamosenlaesquinainferiorderechaveremosquenuestrapginatieneelcandadocerradoindicandoqueesunapgina
segura.
OJOconlascomillasdobles.Haydedostipos:ALT-34ylascomillastipogrficasutilizadasporWORD.Estasltimaspuedendar
problemas.

27 de 39
Curso Mentor Apache

Generacin de certificados clientes

Enelapartadoanteriorgeneramoslossiguientesarchivos:

denuestraCA:cacert-pem,cacert.srl,cakey.pem
denuestrocertificadodeservidor:servidor-cert.pemyserv-privkey.pem(certificadoyclaveprivadarespectivamente)

AhoraloquetenemosquehaceresgenerarcertificadosparalosclientesyponerladirectivaSSLVerifyClientconelvalorrequire
(enlugardenonequeeselvalorpordefecto)incluidaenlaseccinDirectorycorrespondientealazonasegura.
Paraellohayquerealizarlasaccionessiguientes:

1. Creacindeunaclaveprivada(PEM)
2. Generacindeunasolicituddecertificado(CSR),queennuestrocasoesautogenerado
3. Instalacindelcertificado(CRT)
4. Exportarelcertificado

1.Generarclaveprivadadelcliente
GeneramosunCertificadoparausopersonal.Comousuarioydesdesuhome(C:\DocumentsandSettings\usuario).
Generamoslaclaveprivadatriple-DESmediantealgoritmoRSA,tamaodelaclave2048yarchivodesalidacliente-privada.pem
eneldirectoriohomedelusuario:

opensslgenrsa-outcliente-privada.pem2048
GeneratingRSAprivatekey,2048bitlongmodulus
..............++++++
eis65537(0x10001)

2.Peticindecertificado
HayquerealizarlapeticindecertificadoenelformatoestndarPKCS#12paraquelafirmelaAutoridadCertificadora.Laextensin
sueleser.csr(CertificateSigningRequest,PeticindeFirmadeCertificado)ycontienelaclavepblicaylosdatosidentificativos
paraquelosfirmelaCA.
Enelcasodeunapersona,loscamposidentificativossernelCommonName(CN)conelnombreyDNIdelapersona(estoesuna
convencinutilizada,porejemplo,porlaFbricaNacionaldeMonedayTimbre)yladireccindecorreoelectrnico,queservirpara
enviarcorreoscifradosyfirmados.
ElvalordelcampoOrganizationName(NombredelaOrganizacin),debecoincidirconeldelaAutoridadCertificadora.
Loejecutaelusuario:

openssl req -config bin\openssl.cnf -new -key cliente-privada.pem -out peticion-


certificado-cliente.csr

3.Firmadelcertificado
LaAutoridadCertificadora(nuestroservidorSSL)firmaelcertificadoclientequehabrquedistribuirparaquepuedanvisitarelsitio
https://servidor.apache2.com.

opensslx509-CAcacert.pem-CAkeycakey.pem-req-inpeticion-certificado-cliente.csr
-set_serial3-days30-outcliente-certificado.pem

HayqueejecutarcomoAdministrador
Es un certificado deltipo x509cuyaCA estdefinidaenelarchivocacert.pem , utilizacomoclave privada(-CAkey)elarchivo
cakey.pemyelcertificadoquesevaagenerartienelasespecificacionesdefinidaspeticion-certificado-cliente.csr.

28 de 39
Curso Mentor Apache

Elcertificadotieneunavalidezde30diasysincifrado(cifradoSHA1noestsoportadoporWin32).
Tambin le decimos que el certificado tiene el nmero 3. Este nmero debe cambiar para cada certificado cliente, ya que la
revocacinopenssllahaceporelnmerodecertificado.
4.Exportamoselcertificado
Exportamos el certificado y las claves a formato PKCS#12. El archivo PKCS#12 contiene las claves asimtricas (privada y
pblica)yelcertificado(conlaclavepblicaylosdatosdelusuario,yafirmadosporlaautoridadcertificadora)queelnavegador
entiende.

Ejecutardesde/etc/apache2/sslcomousuariousuario:

$openssl pkcs12 -export -in cliente-certificado.pem -inkey C:\Documents and


Settings\usuario1\cliente-privada.pem -certfile cacert.pem -out C:\Documents and
Settings\usuario1\usuario1.p12

Elarchivogeneradousuario.p12(PKCS#12)tienecontrasea.Podemosgrabarloenunsoporteeimportarlodesdeunnavegador,
clientedecorreo,etc,parautilizarlo.Contienenuestraclaveprivada.
Una vez importado en el navegador cuando el usuario1 se conecte al servidor servidor.apache2.com va https, le pedir que se
identifiqueconuncertificadodeclientevlido,delocontrarionolepermitiracceder.

Preparacin del servidor Apache2

La configuracin de Apache2 requiere activar la directiva que solicita certificado para clientes y la localizacin del archivo de
certificadodenuestraCA.

1. Solicitarcertificado.Enhttpd-ssl.confdescomentarlalnea
SSLVerifyClientrequire
SSLCertificateFile "C:/Archivos de programa/Apache Software Foundation/Apache2.2
/conf/ssl/servidor-cert.pem"

2. ReiniciarelservidorApache2yestepedircertificadoacadausuarioqueintenteentrar.

SSLCertificateFile:dondeestelcertificadodenuestroservidor
SSLVerifyClientrequire:indicaqueelservidordebesolicitaruncertificadoalclientecuandoaccedaanuestrositiowebseguro.

29 de 39
Curso Mentor Apache

Mecanismos de seguridad
Es Apache2 un servidor web seguro?

RealmenteelhistorialdeagujerosdeseguridaddeApacheesmuyamplio.Perotambinhayquedecirqueelhistorialdecreacinde
parchesparataparesosagujerosestambinmuyamplioy,sobretodo,esosparchessehangeneradodeunaformamuyrpida.
LgicamentelaseguridaddeApachedependerengranpartedelaconfiguracinqueselede.Prcticamentetodoesconfigurableen
Apacheasquehabrqueirconcuidado.
Un principio bsico de la seguridad en general dice que slo se deben tener activos en el servidor aquellos servicios realmente
necesariosysinosenecesitanynoestninstaladosmejoran.
Sielservicioesnecesarioelsegundoprincipioesactivardedichoserviciosloaquellasfuncionalidadesquesenecesiten.

Qufuncionalidadesperamosdeunservidorweb?

Enbaseaestapreguntasloseincluirnaquellosmdulosqueseannecesariosentiempodecompilacin.
Porejemplo:

SevanaservirslopginaswebHTMLestticas?
SidecimosquesisabemosquenosevaapermitirlaejecucindescriptsCGI.

ElaccesoaalgunaspginaswebserrestringidoadireccionesIPseleccionadasousuarios(autenticacinbsica)?
SisloactivamoslaautenticacinbsicanotendremosdisponibleelprotocoloSSL.

Debefuncionarnuestroservidorwebcomoproxy-cache?

Elservidordeberregistrartodaslaspeticionesweb(incluyendoinformacinsobrenavegadoresweb).

Sugerencias de seguridad

Proponemosalgunasmedidasdeseguridadgeneralesparaprotegernuestroservidorweb:
1.ElservidorApache2

Determinarculessonlosmdulosquenecesitateneractivadosydesactivarelresto.

Elservidordeberevelarlamenorcantidadposibledeinformacinsobresmismo.
El administrador debe ser el propietario de los directorios de configuracin, de los archivos ejecutables, histricos y de
contenidosdeApache.
Losarchivosydirectoriosconinformacinglobaldelservidordebenseraccesiblessloparalecturaporelusuariopropietario
delosprocesosdelservidor(directivaUser).
ElservidorwebdebeejecutarsebajoUID/GIDdedicado,nounoyautilizadoporcualquierotroprocesodelsistema.Adems
dichousuario,ennuestrocasowww-data,nodebededisponerdelogin:

www-data:x:33:33:www-data:/var/www:/sbin/nologin

Controlar los datos que estn disponibles. Cualquier tipo de dato que requiera un acceso restringido deben configurarse
utilizandodirectivasdeApachequerestringenelaccesoadeterminadasdireccionesIPoadeterminadosusuarios.
Los archivos y directorios que contienen informacin general del servidor incluidos en el directorio dado en la directiva
DocumentRootdeberntenerpermisodelecturaparaelgrupoqueejecutalosprocesos.
SidentrodeundirectoriodelDocumentRootdeApachehayunenlacesimblicoa/etc,cualquierusuariodeInternetpuede
teneraccesoalarchivo/etc/password.NoesrecomendableelusodelaopcindeApacheFollowSymLinks.

30 de 39
Curso Mentor Apache

Silosusuariosdelordenadortambinpuedenpublicardocumentosenelservidor,deberntenerensusdirectorioshomeun
directorioquecoincidaconelindicadoenladirectivaUserDiryunarchivodentrodeestedirectorioconelnombreindicadoen
ladirectivaDirectoryIndex.Todoslosficherosydirectoriospublicadosdebentenerpermisodelecturaparaelgrupoindicado
enladirectivaGroup.Sisequiererestringirmaselaccesoalainformacinpublicadautilizarpermisos711paraeldirectorio
delaspginasdelusuario.

Unusuarionodebertenerpermisoparamodificarlosdocumentosdeotrousuarioolainformacinprincipaldelservidor.
La autenticacin de usuarios y grupos se realiza a travs de una serie de archivos que deben estar fuera del rbol de
directoriosdedocumentosysloconpermisosdelecturaparaelusuarioqueejecutaapache2enelservidor.

Permitir el ndice de los directorios tampoco es una buena idea, ya que el intruso tiene informacin de la estructura de
directoriosdelservidorweb.Cabelaposibilidaddequeencuentrecualquierarchivoquehayamosdejadosindarnoscuentay
quetengainformacincomprometida.PodemoscontrolarestecomportamientoconOptionIndexes.

MantenerseinformadodelasposiblesvulnerabilidadesdetectadasenApache2.Sitenemosunaversinconunavulnerabilidad
quesesolucionaenunaversinposterior,actualizarlaversinloantesposible.
Seguridadporoscuridad:elservidorwebdeberproporcionarlamenorcantidadposibledeinformacinsobresmismo.

2.DirectivaServerSignature
Eliminamosinformacin almacenada en elarchivo error.logyen laspginasquegenera elservidor.Esta informacin
normalmentecontieneladireccindecorreointroducidaenServerAdmin.

ServerSignatureOff

3.DirectivaServerTokens
Eliminamosinformacininnecesariaenelbanner(mdulos,versin,etc)quenormalmentesemuestraenlascabeceras
HTTPdelasrespuestasdelservidor.
Sitenemoselvalor:

ServerTokensFull

vemoslarespuestadeApache2siguiente:

Apache/2.2.3(Ubuntu)mod_ssl/2.2.3OpenSSL/0.9.8cServeratprofesores.apache2.comPort
80

Sitenemoselvalor:

ServerTokensProd

vemoslarespuestadeApache2siguiente:

ApacheServeratprofesores.apache2.comPort80

4.Permisosejecutableapache2
Elarchivoejecutableapache2debepasarsuspermisosde755(lecturayejecucinalgrupoyatodos)a700(sloel
rootpuedeejecutarlo).

#chmod700/usr/sbin/apache2

5.DirectivaIndexes
Muestraellistadodearchivosydirectorioscuandoseaccedeaundirectorioquenocontieneningnarchivoindex.htmo
index.html. Est activada por defecto pero es recomendable desactivarla, ya que los usuarios podran descargar
documentosquenolesinteresanparanada.

31 de 39
Curso Mentor Apache

<Directory"/var/www">
OptionsIndexes
</Directory>

6.DirectivaTimeOut
UnaformadeataqueanuestroservidorwebatravsdeInternetestratardeconsumirtodoslosrecursosdelservidorde
formaquesesobrecargue.Normalmentellamadoataquededenegacindeservicio(DoS).
LadirectivaTimeOutindica:
a)EltiempodeesperadesdequeseseestablecelaconexinhastarecibirlasealGET,HEAD,oPOST.
b)EltiempoentrepaquetesTCPrecibidosparaunatrasmisinlargadedatos,comoelenvodeunarchivomedianteun
POSToPUT.
c)EltiempodeesperaparaelacusederecibooACKdelosdatosenviados.
Pordefectoelvalordeestadirectivaesde300(5').Espreferiblemantenerunvalorbastantemasbajo:

Timeout50

7.DirectivaKeepAlive
KeepAliveindicasisonsoportadasonolasconexionespersistentes.Lamayoradenavegadoresutilizanelprotocolo
HTTP/1.1quepermite,porejemplo,atravsdeunamismaconexindescargarsimultneamentetodaslasimgenesde
unapginawebevitandoaslanecesidaddeestablecernuevamentelaconexin.

KeepAliveOn

8.Verificacindelservidor
Niktoesunaherramientaopen-sourcequefacilitalatareadeverificacindelservidorweb.Estaherramientarealizaun
scannersobrelosservidoreswebhaciendounas3300pruebasparacomprobarlaseguridaddelservidor.
Podemosdescargarlaltimaversindelaweboficialhttp://www.cirt.net/code/nikto.shtml
Paraejecutarlaspruebas:

$./nikto-1.36/nikto.pl-h192.168.1.1

9.Entornoderedyserviciosdelsistema

Elservidorwebdeberprotegersemedianteuncortafuegos.LasreglasdebernaceptarpeticionesentrantesalpuertoTCP80
ypermitirrespuestassalientes.SloseadmitirnademspaquetesICMPdeltipoorigenapagado,tiempoexcedidoodestino
inalcanzable,todoslosdemspaquetesdeberndenegarse.

Comprobarlosserviciosactivosenelsistemaydesactivarlosquerealmentenohaganfalta.Paracomprobarlos
serviciosejecutarlaorden:

#lsof-i

Paradesactivarserviciosutilizarlaherramientasysvconf.Hayserviciosquerealmentenosonnecesariosysolemostener
activos(LISTEN)comosontelnet,ftp,rpc,nfs,etc...

10.ElSistemaOperativo

Elsistema operativo debe protegerse contra ataquesremotosylocales.Esimportante manteneractualizado el


kernelconlosltimosparchesdeseguridadydisponerdeantivirusactualizado.

32 de 39
Curso Mentor Apache

33 de 39
Curso Mentor Apache

Glosario
Glosario Unidad 7

Concepto Definicin

Certificadodigital Constadeunaclavepblicayunidentificador,ambosfirmadosdigitalmenteporunaAutoridad
Certificadora.Suobjetivoesasociarunaclavepblicaaunusuariodeterminado.

Criptoanlisis Estudiodelosmtodosparaobtenerelsentidodeunainformacincifradarompiendooforzndola.

Criptografa Cienciaparaelcifradodelainformacinyqueenglobaeldiseodealgoritmosquellevenacabodicha
funcin mediante una transformacin matemtica que vuelva la informacin ilegible. Se puede aplicar a
datos,textoseimgenes.

DSA Algoritmoutilizadosloenfirmadigital.

Encriptacin Proceso mediante el cual la informacin es codificada de tal manera que no pueda ser interpretada
fcilmente. Es una medida de seguridad utilizada para que al transmitir la informacin no pueda ser
interceptadaporintrusos.Opcionalmentepuedeexistirademsunprocesodedesencriptacinatravsdel
cullainformacinpuedeserinterpretadaunavezquellegaasulugardeorigen.

Firmadigital Lafirmadigitalesunaporcincdigoqueseadjuntaaunmensajeyquegarantizaaldestinatarioquines
elremitentedelmensaje,yqulainformacindelmensajenohasidoalterada.Seutilizaenunentornode
clavepblicaysuobjetivoesgarantizarlaintegridaddelmensajeylaidentidaddelfirmante.

Hash Hash o funcin resumen hace referencia a un mtodo para generar claves que representan de manera
unvocaaundocumento,registro,archivo,etc.Unhashhaceunaconversindelosdatosdecualquier
tamaoaunnmerodelongitudfijayadems,noesreversible.

MD5 AlgoritmodeResumendelMensaje5.Esunalgoritmodereduccincriptogrficoquegeneraunhashde
128bits.

RSA Sistemacriptogrficodeclavepblica.Seutilizaenlafirmadigitalyenelintercambiodeclaves.

SHA-1 SecureHashAlgorithm.Esunalgoritmodereduccincriptogrficoquegeneraunhashde160bits.Muy
utilizadoenlasfirmaselectrnicas.

Socket Elementodeprogramacinquepermiteadosmquinascomunicarseatravsdeunared,medianteeluso
delaIP deorigen,laIP dedestinoyelnmerodepuerto.Secreaunsocketcuandohayunaconexin
entreelclienteyelservidor.

X.509 Es un estndar de certificados para firmar documentos y garantizar la seguridad y fiabilidad en las
comunicaciones.ElX.509estdefinidoporlaRFC3280delIETF.

34 de 39
Curso Mentor Apache

Otros Glosarios

Otros glosarios relacionados con la informtica y el mundo web.


Se pueden visitar las webs siguientes:

ATI: dispone de un glosario completo de trminos informticos en http://www.ati.es/novatica/glosario/glosario_internet.html


Microsoft: http://msdn.microsoft.com/es-es/library/aa302380.aspx

35 de 39
Curso Mentor Apache

Fuentes de informacin
Documentos y enlaces de inters

1. Gua de Ubuntu: http://www.guia-ubuntu.org/index.php?title=Servidor_web


2. Pgina oficial de apache: http://www.apache2.es/2.2.2/

36 de 39
Curso Mentor Apache

Resumen final
Sntesis de la Unidad 7 'Seguridad'

Lospuntosadestacardeestaunidadsonlossiguientes:

1. Lacriptografaasimtricafuncionabienparalaautenticacin,yaquecadausuarioprotegesuclavesecreta,peroeslentapara
elcifrado.Lacriptografasimtricaesrpidaenelcifradoymalaparalagestindeclaves.
2. LacriptografaasimtricagarantizalaConfidencialidadylaAutenticidad.
3. LafirmadigitalgarantizalaIntegridaddelmensajeylaidentidaddelfirmante.
4. SSLpermiteestablecer,deformasencilla,conexionessegurasatravsdeInternetyaquetodoslosdatosquesetransfieren
entreelnavegadorweb(cliente)yelservidorvancifrados.
5. Elobjetivodelcertificadodigitalesasociarunaclavepblicaaunusuariodeterminado.
6. Elobjetivodelaautoridadcertificadoraesacreditarlacorrespondenciaentreunaclaveysupropietarioreal.
7. Unprincipiobsicodelaseguridadengeneraldicequeslosedebenteneractivosenelservidoraquellosserviciosrealmente
necesariosysinosenecesitanynoestninstaladosmejoran.

37 de 39
Curso Mentor Apache

Autoevaluacin Unidad 7
Autoevaluacin

El cuestionario de autoevaluacin de la Unidad 7 est disponible en la plataforma Mentor (https://centrovirtual.educacion.es/).

38 de 39
Curso Mentor Apache

Este artculo est licenciado bajo Creative Commons Attribution Non-commercial 3.0 License
Unidad 7

39 de 39
Curso Mentor Apache

Apache
Unidad 8: Registro y Monitorizacin de Apache2


Enestecaptuloaprenders:

elconceptoderegistro
lastcnicasderotacindelosarchivosderegistro
elconceptodeanalizadordelogs
lainstalacin,configuracinyutilizacindelanalizadordelogsWebalizer
lainstalacin,configuracinyutilizacindelanalizadordelogsAwstats
lainstalacin,configuracinyutilizacindelanalizadordelogsBBClone
elconceptoderendimientodelsistema
lautilizacindelaherramientaabparaevaluarelrendimientodelsistema

Materialcomplementario:

1. Archivoconlasactividadesreferidasalolargodelcaptulo.ArchivoU8_Actividades.pdf

2. Mapaconceptualdelcaptulo.Archivo U8_Mapaconceptual.png

3. Glosariocompletodelcurso.Archivoglosario.pdf

1 de 35
Curso Mentor Apache

Introduccin
Objetivos

Identificar el registro de Apache2 como sistema de almacenamiento de


informacinrelativaalosaccesosylassituacionesdeerror.

Conocerlasdirectivasasociadasalregistro.

Conocerelprocesoderotacindearchivosderegistroqueconsisteen,
periodicamente,salvarelarchivoactualbajootronombreycrearunonuevovaco

TrabajarconherramientasqueproporcionanestadsticasdeusodelservidorwebApache2.

Estudiarmecanismosquemejorenelrendimientodelservidorweb.

Conocimientos previos

EnestaunidadabordamoslamonitorizacindeApache2ylautilizacindediferentesherramientasparaello.Comounidaddentro
delafasefinaldelestudiodeApacheesimportantehaberasimiladoypracticadolosconceptosdelasunidadesanteriores.

Contenidos

Unidad8:RegistroyMonitorizacindeApache2
A.General

1. Registro de Apache2
2. Rotacin de archivos de registro: logrotate

B. Ubuntu

1. Analizador de logs: Webalizer


2. Analizador de logs: Awstats

C. Windows

1. Analizador de Logs: Bbclone

D. Fin de unidad

1. Glosario
2. Fuentes de informacin
3. Resumen final
4. Autoevaluacin

2 de 35
Curso Mentor Apache

Registro de Apache2
Registro

LainstalacindeApache2pordefectodejaactivadossusmecanismosderegistrodeactividadengeneraldelservidorweb.
Haciendousodeunconjuntodedirectivasalmacenainformacinrelativaa:
erroresproducidosalejecutarelprocesoapache2->Registrodeerror
accesosalservidor->Registrodeactividad
En el primer caso, los errores, prcticamente no se puede configurar. Estos registros de error vienen con un formato
determinado, sin embargo los registros de actividad tienen un formato altamente configurable. Es decir, el administrador
puededecidirquinformacinquiereregistrary,porlotanto,decidirelformatodelregistro.
Estosarchivoscrecenenfuncindelvolumendeaccesosquesoporteelservidorweb.
Definimos el Registro de Apache2 como el sistema de almacenamiento de informacin relativa a los accesos y las
situacionesdeerror.

Directivas de registro

Lasdirectivasasociadasalregistrosonlassiguientes:

Directiva Descripcin

CustomLog Estableceelnombredelarchivo(pathabsolutoorelativoaServerRoot)yformatodelarchivode
accesosalservidor.
CustomLoglogs/access.logcommon

ErrorLog Contiene la ruta absoluta o relativa al path de Apache2 (ServerRoot) del archivo de registro de
errores.RegistraloquesucedeconApache:erroresyaccesosdeclientes.
SisetienenvarioshostsvirtualescadaunodeellospuedeincluirsupropiadirectivaErrorLogyel
registrodeerroressehaceenarchivosindependientes.Sinoseindicadeestaformalosmensajes
deerrordetodoshostsvirtualessealmacenarnenelmismoarchivo.
ErrorLog/var/log/apache2/error.log

LogLevel Controlalagravedadynmerodemensajesqueseguardanenarchivoderegistrodeerrores.Existen
ochoniveles.Pordefecto:
LogLevelwarn

LogFormat Estableceelformatodelaslneasdelarchivodelog.Permitepersonalizacinporpartedelusuario.
LogFormat"%h%l%u%t\"%r\"%>s%b"common

La directiva CustomLog puede llevar explcitamente una cadena con los diferentes smbolos disponibles de LogFormat. Por
ejemplo,siindicamos:

LogFormat"%h%l%u%t\"%r\"%>s%b"common
CustomLoglogs/access_logcommon

podemossustituirambasporlaequivalente:

CustomLoglogs/access_log"%h%l%u%t\"%r\"%>s%b"

3 de 35
Curso Mentor Apache

enlaqueseda,envezdelaliascommonlapropiacadena.

Niveles de ejecucin

LosdiferentesnivelesderegistrodisponiblesdesdeLogLevelsonlosdadosenlatablasiguiente.Estnordenadosdemenora
mayorinformacinalmacenada.

Nivel Descripcin Ejemplo

"Unprocesohijonopuedeabrirelficherodelock(lockfile).Elprogramava
emerg Emergencias.Nosepuedeutilizarelservidor
aterminar"

alert Requiereaccininmediata "getpwuid:nopudodeterminarelnombredeusuarioapartirdeluid"

crit Condicionescrticas "socket:Noseencontrunsocketadecuado,elprocesohijovaaterminar"

error Condicionesdeerror "Finalprematurodelacabeceradelscript""

warn Condicionesdeadvertencia "elprocesohijo1234nohaterminado,enviandootravezSIGHUP"

"httpd: interceptada seal SIGBUS, intentando hacer un volcado de


notice Condicinnormal,perosignificativa
memoriaen..."

"El servidor parece estar ocupado, (puede que necesite incrementar


info Informacin
StartServers,oMin/MaxSpareServers)..."

debug Mensajesdeniveldebug "Abriendoelficherodeconfiguracin..."

Cuandoseespecificaundeterminadonivel,seescribenenellogtambinlosmensajesdetodoslosdemsnivelesporencima.
Elnivelasignadopordefectoeswarn.Porlotanto,todoslosmensajesdetodoslosnivelesdewarmhaciaarribatambinse
almacenan.
AlgunosdelossmbolosdeformatodisponiblesdesdeLogFormatsonlosdadosenlatablasiguiente:

Nivel Descripcin

%a DireccinIPdelclienteweb

%b Nmerodebytesenviadosalclienteweb.

%h Nombredelhostdelclienteweb.

%p Nmerodepuertoenelqueseharecibidolasolicitud

%t Fechayhoralocal

%T Segundosusadosparahacerlatransmisin.

%u Sielaccesorequiereautenticacinindicaelnombredelusuario.

%U DireccinURLsolicitadaporelclienteweb.

%v NombredelhostvirtualydominiodelservidorsegnnomenclaturaDNS.

Si se necesita obtener un mayor nivel de detalle se puede utilizar el formato combinado (combined) en lugar del
comn (common). Este formato permite incluir, adems de los smbolos anteriores, informacin relativa a la URL

4 de 35
Curso Mentor Apache

solicitada por el cliente (%U o %{Referer}i\) y el nombre y versin del buscador o cliente utilizado para acceder
(%{user-agent}i\).
En general suele ser de inters utilizar el formato combinado, sobre todo pensando en los analizadores de logs que utilizan la
informacinadicionalensusestadsticas.

LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""


combined

Reflexin

Qu nivel se debe indicar en LogLevel para obtener el mximo de informacin acerca del acceso? Qu
problema puede presentar?

5 de 35
Curso Mentor Apache

Rotacin de archivos de registro


Introduccin

Elprocesoderotacindearchivosderegistroconsisteen(semanalmentepordefecto)salvarelarchivoactualbajootronombrey
crearunonuevovaco.Deestaforma,sinrenunciaradisponerdetodoslossucesosdelsistema,sepuedetrabajarconarchivos
demenortamao.
Logrotateesunautilidad(instaladapordefectoenelsistema)quellevaacabolarotacinautomtica,comprensin,extracciny
envodelosarchivosdelogs.
Suobjetivoes facilitarla administracindelsistemaengeneral,yaquesegeneranenlgrannmerodearchivosderegistro.
Logrotatepermitemanipularcadaarchivoderegistrodeformadiaria,semanal,mensual,ocuandosehagademasiadogrande.

Logrotate

Logrotate se ejecuta como un tarea diaria del cron y toma las opciones del archivo de configuracin /etc/logrotate.conf
cuyo contenido se incluye:

#rotatelogfilesweekly
weekly

#keep4weeksworthofbacklogs
rotate4

#createnew(empty)logfilesafterrotatingoldones
create

#uncommentthisifyouwantyourlogfilescompressed
#compress

#packagesdroplogrotationinformationintothisdirectory
include/etc/logrotate.d

#nopackagesownwtmp,orbtmp--we'llrotatethemhere
/var/log/wtmp{
missingok
monthly
create0664rootutmp
rotate1
}

/var/log/btmp{
missingok
monthly
create0660rootutmp
rotate1
}

La configuracin anterior indica que Logrotate rota los archivos semanalmente, los rota 4 veces antes de borrarlos, puede
comprimir los archivos de la semana y crea un archivo nuevo por cada archivo que rota. Luego incluye las configuraciones
especficasdecadaserviciodadasen/etc/logrotate.d/y,porltimoincluyetratamientosespecficosalosarchivosdelogs
incluidos(/var/log/wtmp)
Eneldirectorio/etc/logrotate.d/seencuentraelarchivodeconfiguracinespecficodeApache2.

6 de 35
Curso Mentor Apache

/var/log/apache2/*.log{
weekly
missingok
rotate52
compress
delaycompress
notifempty
create640rootadm
sharedscripts
postrotate
/etc/init.d/apache2reload>/dev/null
endscript
}

TodaslasopcionesdisponiblesepuedenconsultarenlapginademanualdeLogrotate.
Losarchivosobtenidosdelarotacinsellamanaccess.log.1 y error.log.1.

7 de 35
Curso Mentor Apache

Ubuntu: analizador de logs


Introduccin

Unservidorwebdebedisponerdeestadsticasdeusoparapoderconocerqupginassonmasfrecuentementeservidasycules
menos.
DesdeUbuntuvamosaestudiarelanalizadordeaccesosdeApache:webalizer
Alserunaherramientawebesindependientedelsistemaoperativoy,portantosirveigualparaWindows.

8 de 35
Curso Mentor Apache

Webalizer
Instalacin

Webalizeresunaaplicacindeanlisisdelogsdeservidoresweb.Esdecir,permiteobtenerestadsticasdeaccesoaunservidor
web,indicandoculessonlaspginasmsvisitadas,etc.
Estasestadsticaslasmuestracomogrficasquesonaccesiblesvaweb.Genera,portanto,informesenformatohtml.
Webalizersepuededescargarde ftp://ftp.mrunix.net/pub/webalizer/ysedistribuyebajolicenciaGNUGPL.
DesdeUbuntuinstalamoselpaquete.debwebalizer:

#apt-getinstallwebalizer

En el proceso de instalacin-configuracin nos dice que la versin instalada es la 2.01 y dnde se almacenarn los informes
generados (/var/www/webalizer).

Lasintaxisdeutilizacines:

webalizer[opciones]<archivo_log>

donde <archivo_log> eselpathdelarchivodelogsdecuyainformacinsequiereobtenerelinforme.Sinoseespecificase


tomaelarchivopordefectodadoenelarchivodeconfiguracindewebalizer,quees /etc/webalizer/webalizer.conf.

Laherramientadisponedegrancantidaddeopcionesquesepuedenconsultarconlaordenman.
En generalno esnecesario modificarelarchivo de configuracin /etc/webalizer/webalizer.conf. Siqueremos
modificarlosparmetrosconfiguradosenlainstalacindewebalizeryadecuarlasanuestrosistemaloharemoscon
lasdirectivas:

LogFile/var/log/apache2/access.log
OutputDir/var/www/webalizer
ReporTitleInformeestadsticasservidorweb

Estadsticas de acceso con webalizer

Paragenerarelinformehayqueejecutarcomoroot:

#webalizer
WebalizerV2.01-10(Linux2.6.20-16-generic)locale:es_ES.UTF-8
Utilizandohistrico/var/log/apache2/access.log(clf)
UsingdefaultGeoIPdatabase
Creandoinformeen/var/www/webalizer
Elnombredemquinaenelinformees'elvira-edubuntu'
Noencuentroelarchivohistrico...
Aviso:Cortandocampodeenlaceorigendemasiadogrande
GenerandoinformedeAugust2007
Generandoinformeresumido
Guardandoinformacindearchivo...

9 de 35
Curso Mentor Apache

9139registros(2ignorados)en23,00segundos,397/sec

SiahoravamosalnavegadorwebeintroducimoslaURL:http://servidor.apache2.com/webalizer/veremosunagrficadelestilo
siguiente:

Enlaimagendiferenciamosentreelinformeresumidodelosltimosdocemeses(tablasuperior)yeldetalleparacadaunodelos
mesesqueesunatablaquecontienetotalesparalafechadegeneracindeldocumento.
Loscamposqueaparecenenlasestadsticasseinterpretandelaformasiguiente:

Accesos(hit):sedefinecomoelnmerodepeticionesdearchivosqueserealizanalservidorduranteunperododetiempo
dado.Seconfundeconvisitas,peronosonlomismo.Unhitesunacceso,unapeticinalservidordeunarchivo.Ejemplo:
sienlapginaademsdelarchivohtmlseutilizaunarchivoexternojavascript,otrocss,y,adems,lacabeceray1imagen
pequea, en total tenemos 5 accesos, cinco peticiones de archivos. El nmero de Accesos siempre ser mayor que el
nmerodevisitas.

Archivos:eselnmerototaldepeticiones(Accesos)quedevuelven'algo'alusuario.NoeslomismoqueAccesoyaque
nosiempreseenviaralgoalapeticin.Enocasioneselresultadoyaestenlacachoseproducealgnerror,conloque
nohayretorno.
Visita:cuandounusuarioentraenlapginaseproduceunavisita.Todoeltiempoquenavegueporlawebcontarcomo
esavisita,slouna.Laprimerapeticinquerealizaeseclienteremotoesloquecuentacomovisita,luegopuedeestarel
tiempoquequieradescargandoalgo,leyendocontenidos,todoesoformarpartedelamismavisita.
Clientes:nmerodevisitasquenoserepiten.Nosecontabilizanlosusuariosquevuelvenalolargodeltiempo.Estees
unodelosvaloresmsfiables,paraconocerelnmerodevisitasyaquetenderasermenordelnmerorealynonos
muestralasestadsticaswebinfladas.
Total de Kbytes: cantidad total de datos que transfiri el servidor a los clientes. Es til para llevar un control sobre la
transferenciamximamensualquenosproporcionanuestroserviciodehosting.
PginasVistas:cualquiertipodearchivoHTML,ocualquieraquegenereHTML.Noseincluyenlosotrosarchivosincluidos
eneldocumento,comoimgenes,audio,flash,etc.
PginadeEntrada:pginasatravsdelasqueelusuarioaccedeanuestroservidor.Nosiempreseaccedeanuestra
pginaprincipal.
PginadeSalida:ltimapginawebvisitadaporelusuario.
Referidos:sitiosatravsdelosqueseaccedeanuestrapgina,yaseanbuscadoresuotraspginasquenosenlacen.

10 de 35
Curso Mentor Apache

CadenasdeBsqueda:palabraopalabrasclavequeseusanenlosbuscadoresparallegaranuestrapginawebositio
web.

SiaccedemosaunmesconcretonosdevuelveunainformacinmascompletadelaactividaddeApache2.

Peroestanoeslaforma'normal'degenerarlosinformes.
Al instalar webalizer se incluye, por defecto, el script que lanza la ejecucin programada diariamente en el directorio
/etc/cron.daily/. Estescriptelservidorloejecutadiariamentealahoraindicadaenelarchivo/etc/crontab, y
generaelinformediariocorrespondiente.
Elusuariorootpuedeencualquiermomentoejecutardichoscriptyobteneruninformeconlasltimasestadsticasde
laformasiguiente:

#/etc/cron.daily/webalizer

que analiza los logs que tenga nuestro servidor web y deja accesible el resultado en la carpeta webalizer del servidor:
http://servidor.apache2.com/webalizer/

11 de 35
Curso Mentor Apache

Configuracin
Archivo de configuracin /etc/webalizer.conf

Las directivas ms importantes del archivo de configuracin son:

Directivas Descripcin

LogFile Rutaalarchivoquealmacenalosaccesosregistradosporelservidorweb.
LogFile/var/log/apache2/access.log

OutputDir Ruta del directorio donde se ubicar el informe generado. Es importante que
quedebajoeldirectoriodelservidorweb /var/www/webalizer
OutputDir/var/www/webalizer

ReportTitle Ttuloqueaparecerenelinforme:
ReportTitleEstadsticasServidorWeb

HostName Nombredelservidorweb
HostNameservidor

PageType Enesteparmetro,quepuedetenervariasentradas,seespecificaqutipode
pginas se quiere procesar. Suelen ser pginas con extensin htm*, cgi (por
ejemplo consulta a motores de bsqueda), pginas dinmicas con php* y
archivosdeperl.pl:
PageTypehtm*
PageTypecgi
PageTypephtml
PageTypephp*
PageTypepl

Quiet / ReallyQuiet Suprimen los mensajes de error que puedan presentarse. Es recomendable
asignarloscomoyesparaprocesarloslogsdelservidor.
Quietyes
ReallyQuietyes

TopEntry siseponeelvalor100,mostrarlas100pginasdeiniciodesesinms
consultadas.

TopExit siseponeelvalor100,mostrarlas100pginasdesalidadesesinms
comunes.

12 de 35
Curso Mentor Apache

Awstats
Introduccin

DesdeUbuntuvamosaestudiarelanalizadordeaccesosdeApacheAwstats(AdvancedWebStatistics)cuyapginaoficiales
http://www.awstats.org/.Esmscompletoquewebalizer.
En la direccin http://awstats.sourceforge.net/docs/awstats_compare.html hay disponible una comparativa entre diferentes
analizadoresdelogs,entreellosestnincluidosawstatsywebalizer.
Awstats:

soportacualquiersistemaoperativo,yaquealestarescritoenPerlessuficientequeelservidorquelovaainterpretartenga
elmdulocorrespondienteinstalado.
puedegenerarestadsticasen33idiomas,entreloscualesseencuentranelcastellanoyelcataln.
esmslentoqueotrosanalizadoresdelogs.

Sufuncionamientosebasaen:

la lectura de unos archivos de entrada (en este caso sern los archivos access.log de Apache2), que son
generadosporApache2.
ApartirdelosarchivosdeentradaAwstatsgenerasuspropiosarchivosconlasestadsticas.Estageneracinsehacede
formaperidicaconuncron.
CuandosehaceunallamadaparaquesemuestrenenunNavegadorlasestadsticas,Awstatsleelosarchivosquelha
generadoymuestralosresultadoscomoHTMLesttico.

Instalacin de Awstats

LainstalacinenUbuntues:

#apt-getinstallawstats

Comprobamosqueinstalalaversin6.9.5.Losarchivosydirectoriosqueinstala/creasonlossiguientes:

Archivos/Directorios Descripcin

/usr/share/doc/awstats/ Directoriodondeseguardanarchivosdeejemployayuda.

/usr/share/awstats/lang/awstats- Archivodeidiomacastellano.Esunsimplearchivodetexto.
es.txt

/usr/share/awstats/plugins/ Directorio en el que se instalan los plugins que vienen por defecto con el
paquete.

/usr/share/awstats/icon/ Directoriodondeseinstalanlosiconosquesevanautilizarparamostrarlas
estadsticas.

/usr/lib/cgi-bin/awstats.pl Archivo que va a generar las estadsticas a partir de los logs del sistema.
EscritoenPerl.

/etc/cron.d/awstats Entradadecronparaactualizarlasestadsticasperidicamente.

13 de 35
Curso Mentor Apache

Archivos/Directorios Descripcin

/etc/awstats/awstats.conf ArchivodeconfiguracindeAwstats.
/etc/awstats/awstats.conf.local Archivoquecontienelasconfiguracionesespecficasyqueseincluye
enelanterior.

14 de 35
Curso Mentor Apache

Configuracin
Configuracin de Awstats y funcionamiento

Elarchivodeconfiguracingeneraldeawstatses /etc/awstats/awstats.conf.

Convieneincluirnuestrasmodificacionesenelarchivo /etc/awstats/awstats.confquesernaadidasalanteriorarchivo
medianteunIncludeyquenosevernafectadasporlasposiblesactualizacionesdelaherramienta.
Es importante comprobar que se tiene activado el mdulo cgid ya que es necesario para el funcionamiento de Awstats.
Comprobarlo.

Tipo de logs

Hay que asegurarse de que el servidor Apache2 'logea' los accesos de manera combinada (NCSA combined/XLF/ELF). Para ello
hay que asegurarse de que el archivo de configuracin de cada sitio de Apache2 tiene la siguiente directiva:
CustomLog/var/log/apache2/access.logcombined

Por otro lado, tambin hay que asegurarse de que Apache2 hace los logs de la forma que necesitamos. Para ello hemos de
comprobarqueloslogstienenelsiguienteformato:

192.168.0.103 - - [21/Jun/2011:18:56:53 +0200] "GET / HTTP/1.1" 200 484 "-"


"Moz
illa/5.0(X11;U;Linuxi686;es-CL;rv:1.9.2.16)Gecko/20110323Ubuntu/10.10
(m
averick)Firefox/3.6.16"

quesecorrespondeconunaentradadelarchivo /var/log/apache2/access.log.
AhoraleindicamosaAwstatselformatoenqueestnloslogsmedianteladirectivaLogFormat:

Valor Descripcin

1 Apache2 'logea' los accesos de manera combinada (NCSA


combined/XLF/ELF log format)

2 Formato de log de IIS (W3C log format)

3 Formato de log nativo Webstar

4 Formato de log nativo de Apache o Squid (NCSA common log format).


Con LogFormat=4 algunos navegadores o sistemas operativos no
pueden trabajar.

5 Formato de log nativo de ISA server.

6 Formato de log combinado de Lotus Notes

Comprobarlassiguienteslneasen/etc/awstats/awstats.conf:
LogFormat=1
LogFile="/var/log/apache2/access.log"

15 de 35
Curso Mentor Apache

Idioma

Awstatsvienepreconfiguradoparamostrarloslogsyestadsticaseningls.Hayquecambiarloacastellano.
Losarchivosdeidiomahansidoinstaladoseneldirectorio /usr/share/awstats/lang/.

Comprobamosqueen/etc/awstats/awstats.conf estdisponibleestarutaqueesdondedebebuscarlosarchivosde
idioma.

DirLang="/usr/share/awstats/lang"

Paraqueelidiomapordefectoseaelcastellano,tenemosquesustituirelvalordeladirectivaLang'en'por'es'.Esposibleque
aparezca'auto'indicandoquesetomaelidiomapordefectodelnavegador.

Lang="es"

Lapginaquesegeneramuestraenlapartesuperiorizquierdaunasbanderasquepermitenelegirelidiomaquequeramosque
muestrelapgina.
Siqueremosmodificarlosidiomasqueaparecen,suorden,etc.utilizamosladirectivaShowFlagLinks,conlosidentificativosde
losidiomasquequeremosqueaparezcan,separadosporunespacio.Porejemplo:

ShowFlagLinks="eses_caten"

Lasimgenescorrespondientesalosidiomastienenqueseralmacenadasconuidygidrootconlasdemsimgenes.

#ls-l/usr/share/awstats/icon/flags/
-rw-r--r--1rootroot2292002-10-2919:55es_cat.png
-rw-r--r--1rootroot2312001-06-2800:25es.png

Imgenes

Paraquelasimgenesquecontienelapginaquesevaagenerarseveancorrectamente,hayqueindicarleaAwstatsdonde
estn ubicadas. La directiva DirIcons en /etc/awstats/awstats.conf contiene la ruta de las imgenes relativa a la
ubicacindelapginaweb.
Portantosiponemos:

DirIcons="/usr/share/awstats/icon/"

sera incorrecto ya que estara intentando acceder a 'http://servidor.apache2.com/usr/share/awstats


/icon/nombre_icon.png'
LasolucinconsisteenutilizarlosaliasdelservidorApache2.Tenemosqueaadirlasiguientelneaalarchivodeconfiguracinde
apache/etc/apache2/apache2.confocrearunarchivoAliaseneldirectorio conf.d/.

Alias/awstats-icon//usr/share/awstats/icon/

y,entoncesenladirectivaDirIconsescribimoselnombredelaliascreado:

DirIcons="/awstats-icon

16 de 35
Curso Mentor Apache

Intrprete de Perl

Elarchivoawstats.plnecesitadelintrpretedePerlparagenerarlasestadsticasdeloslogs.
HayqueasegurarsedequeestbienconfiguradoindicandoalscriptenPerldondeseencuentraelintrprete.Laprimeralneadel
archivo /usr/lib/cgi-bin/awstats.ples:

#!/usr/bin/perl

Dominio del sitio

Como en un mismo host pueden existir distintos dominios (hosts virtuales), la directiva SiteDomain indica a cul de esos
dominiosnosestamosrefiriendo.
Enestecasoesrecomendablegenerarlogsindependientes,esdecir,unoparacadadominio.Ennuestrocaso:

SiteDomain="servidor.apache2.com"

Formato del informe

IndicamosconladirectivaLogTypeeltipodearchivoquecontendrelinformegenerado:

LogType=W

Windicainformeweb
Mparaarchivosmail
FparaarchivosdelogFTP

ConestoquedarafinalizadalaconfiguracinbsicadeAwstats.

Visualizacin del informe

Paravisualizarlapginawebgeneradaira http://servidor.apache2.com/cgi-bin/awstats.pl. Sinosevelapginageneradapor


awstatsomuestraalgnerror,hayquerevisardenuevolaconfiguracin.

17 de 35
Curso Mentor Apache

Comopuedeobservarselasestadsticasestnvacas.Esoesasporqueawstats.plnoleelosdatosdeloslogsdirectamente
sinoquegeneraunarchivodetextoymuestralosdatosapartirdedichotexto.Losarchivosdetextogeneradosseencuentranen:

#ls-l/var/lib/awstats/
-rw-r--r--1rootroot64452007-08-1320:08awstats082007.txt

Paragenerarestosarchivosporprimeravezoactualizarlosmanualmente,ejecutamoselarchivoawstats.plconlossiguientes
parmetros:

#/usr/lib/cgi-bin/awstats.pl -config=servidor -update


Create/Update database for config "/etc/awstats/awstats.conf" by AWStats
version 6.95 (build 1.943)
From data in log file "/var/log/apache2/access.log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 119
Found 0 dropped records,
Found 0 corrupted records,
Found 0 old records,
Found 119 new qualified records.

Volverairalnavegadorycomprobarquecambianlasestadsticasyaparecenyadatos.

18 de 35
Curso Mentor Apache

LaversindeestepaquetedeAwstatsinstalaunaentradaeneldemoniodecron(cron.d).

#ls-l/etc/cron.d
-rw-r--r--1rootroot2002005-11-0917:53awstats

Ysivemoselcontenidodelarchivo:

#cat/etc/cron.d/awstats
10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &&
/usr/share/awstats/tools/buildstatic.sh

Elarchivodecronnosdicequeelusuariowww-dataactualizaelawstats.plcada10minutos.

Pornormageneralserecomiendaconfigurarelcronparaqueactualicelasestadsticasenhorasdemenorcarga(porlanoche),ya
queelarchivoaccess.log puedesergrandeypodrabajarelrendimientodelservidor.

Laejecucindelaordendelcronpresentaunproblemayesquelospermisosdelarchivodelogsaccess.log(640)nopermiten
queelusuariowww-datalolea.
#ls-l/var/log/apache2/access.log
-rw-r-----1rootadm589452011-06-2318:55/var/log/apache2/access.log

Unaposiblesolucinseracambiarelgrupodelarchivo /var/log/apache2/access.log awww-data,queeselusuarioque


ejecutaelcron.Entonceselarchivodelogsquedaas:

#ls-l/var/log/apache2/access.log
-rw-r-----1rootwww-data589452011-06-2318:55/var/log/apache2/access.log

Peroestecambioesnecesarioqueserealicesobrelosarchivosnuevosdelogquesevanairgenerandosegnpasaeltiempoy
vamosalmacenandomsinformacin.
Para que, a partir de ahora, todos los archivos generados pertenezcan al grupo www-data modificamos el archivo
/etc/logrotate.d/apache2:

#vi /etc/logrotate.d/apache2
/var/log/apache2/*.log {

19 de 35
Curso Mentor Apache

weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root www-data
sharedscripts
postrotate
if [ -f /var/run/apache2.pid ]; then
/etc/init.d/apache2 restart > /dev/null
fi

Otras opciones de configuracin de awstats

1.Direccionesdehostquesernignoradasenlaestadstica

SkipHosts="127.0.0.1"

2.Especificareldirectoriodndesealmacenalabasededatosdelosresultadosdelanlisis

DirData="/var/lib/awstats"

3.CrearDirDatasinoexiste,deotromododevuelveunerror

CreateDirDataIfNotExists=1

4.Establecelapginapredeterminada

DefaultFile="index.php"

6.TieneencuentalosparmetrosdellamadaalaspginasdinmicasPHP

URLWithQuery=1

20 de 35
Curso Mentor Apache

Windows: analizador de logs


Introduccin a Bbclone

DesdeWindowsvamosaestudiarlaaplicacinBBClonecomoanalizadordeaccesosaApache2.
BBClonedetallaparacadavisitantesudireccinIP,sistemaoperativo,navegador,desdequeURLhanaccedidoasusitioweb
utilizandounainterfazgrfica.Es,adems,softwarelibreconlicenciaGNUGeneralPublicLicense.
BBClone trabaja actualizando en el servidor Apache un archivo de estadsticas cada vez que ofrece una pgina web a un
navegador. Para ello hay que incluir alguna lneas de cdigo en las pginas web que queremos que BBClone contabilice. Esta
porcincdigoserejecutadoporelservidorwebjustoantesdeservirlapgina,ydeesaformaseactualizalaestadstica.
ParalaobtencindelasestadsticasutilizascriptsPHP.PorlotantorequierelainstalacindePHP5ennuestrosistema.
Permite consultar todo tipo de grficas, ver las pginas a travs de las que llegaron los usuarios, y las palabras
clave ms usadas en los buscadores para llegar al sitio web.

21 de 35
Curso Mentor Apache

Bbclone
Descarga

Delapginahttp://bbclone.de/download.phppodemosdescargarelpaquete*.zipvlidoparaWindows.

Instalacin de PHP 5.2.4

Lospasosaseguirsonlossiguientes:
1.IniciarlasesinenWindowscomoAdministrador.
2. Descargar el paquete de PHP 5.2.4 (php-5.2.4-Win32) desde www.php.net http://windows.php.net/download/ Es
importantetenercuidadodeNOBAJARelinstaladoryaquenohacecompletamentebienlainstalacinparaApache
comoservidorweb,almenosydemomentoenestaversin.
3.ExtraemoselarchivozipenunacarpetaconunnombrecomoC:\PHP.

Configuracin:
1. Ir a C:\PHP y seleccionar todos los archivos del tipo dll (libreras dinmicas). Ahora hay que copiarlos en
C:\WINDOWS\system32.
2.EditarelarchivoC:\ProgramFiles\ApacheSoftwareFoundation\Apache2.2\conf\httpd.confydescomentamosla
lneaquecargaelmdulocorrespondienteaPHP5:

LoadModulephp5_module"C:/PHP/php5apache2_2.dll"

3.Ahoradentrodelaseccin<IfModule mime_module>aadirlalneasiguiente:

<IfModulemime_module>
....................................
AddTypeapplication/x-httpd-php.php
.................................................

Conestalneaestamosdiciendoqueseinterpretenlosarchivosconextensin.php(tiposmime).
4. El archivo de configuracin de PHP se llama php.ini. Al instalar por defecto se crea uno llamado php.ini-dist.
Cambiarelnombreaphp.inidejndoloeneldirectoriodondeestinicialmente.
5.En elarchivo de configuracin de Apache httpd.confhemosde indicardonde debe buscareste archivo php.ini.
Aadirlasiguientelnea,porejemplo,despusdelalineadeLoadModule.

PHPIniDirC:/PHP

6. Al acceder a nuestro servidor siempre se muestra el archivo indicado en la directiva DirectoryIndex. La modificamos para
siemprecargueunarchivoindex.phpquenosotrospreparamos.Ladirectivadebequedaras:

DirectoryIndexindex.phpindex.html

Sinoexisteunarchivoindex.phpbuscarelsiguientedelalista(index.html).
7. Creamos un archivo index.php en C:\Program Files \Apache Software Foundation\Apache2.2\htdocs con el cdigo
siguiente:

<?phpphpinfo();?>

22 de 35
Curso Mentor Apache

8.Guardarloscambiosdelarchivo httpd.confyreiniciarelservidorApache2.Siaparece la siguiente informacin es


quePHPhasidobieninstaladoyestfuncionandoenlazadoconApache2.
9.Editarelarchivoindex.phpycambiarelcdigoporesteotroquedejamoscomodefinitivo:

<p>Estapginahasidocreadaalas<b>
<?phpechodate("h:i:sa",time());?>
</b>enunordenadorconPHP5funcionando.</p>
<html><body><h1>Servidorweb</h1></body></html>

Volverotravezaprobarenelnavegador.

Instalacin de BBClone

1.Unavezdescargadoelpaquete.zipdescomprimirloenunacarpetatemporal.
2.Iralacarpetadondesehadescomprimidoelpaquete,quenormalmentesellamarbbclone.
3. Ir al directorio donde estn ubicadas la pginas web del servidor C:\Program Files\Apache Software
Foundation\Apache2.2\htdocsycrearunacarpetabbcloneenlaquecopiamostodoslosarchivosdelaaplicacinque
sehandescomprimidoexceptolacarpetainstall(siexiste,yaqueslosenecesitaparalainstalacinautomtica).Es
importantecopiartodomanteniendolosmismosnombresdearchivosydirectoriosyconlamismaestructura.
4.Alsubdirectorio'var'yatodoslosarchivosquecontienehayquedarlespermisosdelecturayescrituraparatodos
los usuarios. Para ello: ir al directorio var y seleccionar todos los archivos. Ahora botn derecho Propiedades ->
Seguridad.
SeleccionarUsuarioseiraOpcionesAvanzadas.
Estohayquehacerlotantoaldirectoriocomoatodoslosarchivosquecontiene:permisoscompletosparatodos(equivalentea777
endirectoriosya666enarchivosenGNU/Linux).
5.Ahorahemosdeindicardequpginasqueremoshacerestadsticas.Enprincipioycomopruebasloobtendremos
estadsticasdelapginadeinicio.
Laporcindecdigoaincluirenindex.phpeselsiguiente:

<?php
DEFINE ("_BBCLONE_DIR", "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs
/bbclone/");
DEFINE("_NEW_COUNTER",_BBCLONE_DIR."mark_page.php");
if(file_exists(_NEW_COUNTER))
{
include(_NEW_COUNTER);
}
?>

Importante:noolvidarla'/'finalenelpathdeDEFINE.
SilaspginasestnescritasenPHPestecdigosepuedeaadirelprincipiodelapartedecdigophpsinponerlas
marcasdeinicioyfinaldecdigophp<?php?>).Silaspginassonhtml,entonceshemosdeaadirelcdigotalcual.
Adems,paraquefuncionehemoscambiarlaextensindelapginaweba.php.
6.ComprobamosqueestbieninstaladoBBCloneyqueyaharealizadosusprimerasestadsticasdelapginade
inicio.Paraelloirahttps://servidor.apache2.com/bbclone/show_global.php.
7.Enelcasodequererobtenerestadsticasdevariaspginaspodemosdarlesnombresacadaunadeellasparaque
enlasestadsticasseveanreflejados.
Enelcdigophpqueincluimosencadapginadelaquequeremosestadsticashabrqueaadirdespusdelltimo
DEFINE:

23 de 35
Curso Mentor Apache

<?php
DEFINE ("_BBCLONE_DIR", "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs
/bbclone/");
DEFINE("_NEW_COUNTER",_BBCLONE_DIR."mark_page.php");
DEFINE("_BBC_PAGE_NAME","PginaProfesores");
if(file_exists(_NEW_COUNTER))
{
include(_NEW_COUNTER);
}
?

Configuracin por defecto

Antesdemanipularlaconfiguracinpordefectovamosainterpretarlayluegoadaptaremoslosparmetrosque
necesitemos.
El archivo que hay que editar es config.php (C:\Program Files \ApacheSoftwareFoundation\Apache2.2\htdocs\bbclone
\conf).
EditarconWordPad.
Lasprincipalesopcionesson:
$BBC_MAINSITE:direccindelsitioweb.Sirveparaquetengasunenlaceaellaenlabarradenavegacindelaspginasde
estadsticas.Sinoponemosnada,elenlacenoaparecer.
$BBC_SHOW_CONFIG:indicasielenlacealapginaparaverlaconfiguracindeBBCloneaparecerenlabarradenavegacinde
laspginasdeestadsticas.Siponemos1aparecerysiponemos0noaparecer.
$BBC_TITLEBAR:ttuloqueaparecerenlapginadeestadsticas.Puedesusar%SERVERparaquepongadirectamenteel
nombredelservidory%DATEparaqueaparezcalafechaactual.Yopondra"Estadsticaspara(Nombredelsitioweb)generadas
el%DATE".
BBC_LANGUAGE:lenguajeenquequeremosqueaparezcapordefectolapginadeestadsticas.Ponemos"es"paraqueaparezca
encastellano.
BBC_IGNOREIP:estaopcin,indicandolaIPconlaquenormalmenteeladministradoraccedeasuspginaswebparaprobarlas,
hacequeesosaccesosnosecontabilicenenlasestadsticas.
Lapersonalizacinquevamosahacerenlaconfiguracineslasiguiente:

$BBC_MAINSITE="http://servidor.apache2.com/";
$BBC_SHOW_CONFIG=1;
$BBC_TITLEBAR="Estadsticasde%SERVERgeneradasel%DATE";
$BBC_LANGUAGE="es";

Ir a https://servidor.apache2.com/bbclone/show_global.php
Desdelapantallamostradasepuedeaccederalaconfiguracinycomprobarlosvaloresasignadosalasdiferentes
variablesdeconfig.php.
Es importante remarcar que esta herramienta no utiliza la informacin de access.log, la contabiliza desde sus propios archivos
almacenadosenbbclone/var.

24 de 35
Curso Mentor Apache

Rendimiento
Ubuntu

Amenudoesposibleaumentarelrendimientodeunsitiowebacostadesacrificaralgosuseguridad.Vamosaverqupodemos
manipularennuestroservidorwebparaaumentarsuvelocidadsinexponerdemasiadosuseguridad.
Hay que tener en cuenta que lo que puede aumentarel rendimientoenun servidornohadetener losmismosefectosenotro
servidordistinto.
Existeunaaplicacinllamadaab(apachebench)quefuncionaenlneadeordenyquepermiteevaluarelrendimientodelservidor.
ab es muy til cuando hacemos cambios en la configuracin y queremos comprobar de qu forma se ha visto afectado el
rendimientoconesoscambios,antesydespus.
Laformamsusualdeutilizarlaherramientaabeslasiguiente:

#ab-n500-c10http://servidor.apache2.com/test.html

quediceaabquesolicitealservidorwebdado500veceselarchivotest.htmlyseproduzcan10peticionesconcurrentes.

-n:ndesolicitudes
-c:niveldeconcurrencia

Lasalidageneradaporlaordenanteriores:

This is ApacheBench, Version 2.3


<$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus
Technology Ltd,
http://www.zeustech.net/
Licensed to The Apache Software
Foundation, http://www.apache.org/

Benchmarking servidor.apache2.com
(be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Finished 500 requests
Server Software:
Apache/2.2.16
Server Hostname:

25 de 35
Curso Mentor Apache

servidor.apache2.com
Server Port: 80

Document Path: /test.html


Document Length: 293 bytes

Concurrency Level: 10
Time taken for tests: 0.120
seconds
Complete requests: 500
Failed requests: 0
Write errors: 0
Non-2xx responses: 500
Total transferred: 248000 bytes
HTML transferred: 146500 bytes
Requests per second: 4153.00
[#/sec] (mean)
Time per request: 2.408 [ms]
(mean)
Time per request: 0.241 [ms]
(mean, across all concurrent
requests)
Transfer rate: 2011.61
[Kbytes/sec] received

Connection Times (ms)


min mean[+/-sd] median max
Connect: 0 1 0.5
1 3
Processing: 0 2 1.0
2 8
Waiting: 0 1 1.0

26 de 35
Curso Mentor Apache

1 8
Total: 1 2 1.1
2 8

Percentage of the requests served


within a certain time (ms)
50% 2
66% 2
75% 3
80% 3
90% 4
95% 4
98% 7
99% 7
100% 8 (longest request)
Elfuncionamientodeabnosimulalaspeticionesdeunusuarioreal(estclaroqueunusuarionosolicita500veceselmismo
archivo)porloqueelrendimientoobtenidonoesexactamenteelrendimientoreal.
Esimportantenoejecutarabdesdeelmismoequipoenelqueestrodandoelservidorweb.
Existenmuchosfactoresquepuedenafectaralamedicindelrendimientosucesivasveces,yaque,porejemplo,lascondiciones
delaredpuedenserdiferentesoelnmerodeprocesosejecutndoseenelservidorpuedevariar.Porelloespreferiblehacervarias
medicionesyobtenerlamedia.

PorotraparteypordefectolainstalacindeApache2cargaelmdulo mod_status quenospermiteconocerlaactividaddel


servidor.
Paraelloincluimosenelsitio(porejemplodefault)lasiguienteporcindecdigo:

<Location/server-status>
SetHandlerserver-status
orderdeny,allow
denyfromall
allowfrom192.168.0.103
</Location>
ExtendedStatusOn

Estecdigonospermiteconocerdetallesdelservidorcomocundofueelltimoreinicio,tiempoquellevaactivado,cantidadde
datos que ha tramitado durante ese tiempo, procesos llevados a cabo y su funcin, etc. Incluye tambin la actividad de los
servidoresvirtuales.

ExtendedStatus On permitegenerarinformacincompletadeestado.

Paravisualizartodaestainformacindesdeelnavegadorira: http://servidor.apache2.com/server-status.

27 de 35
Curso Mentor Apache

Server-info

Porotrapartey pordefectolainstalacindeApache2cargaelmdulomod_infoquenos permiteconocerla


actividaddelservidor.
Enprimerlugarnosaseguramosqueelmodulomod-infoesthabilitado.Paraelloejecutamos:

$sudoa2enmodinfo

Eincluimosenelsitio,delquequeremosconocerlaactividad,lasiguienteporcindecdigo:

<Location/server-info>
SetHandlerserver-info
orderdeny,allow
denyfromall
allowfrom192.168.0.103
</Location>

Este cdigo nos permite conocer detalles del servidor como la versin del servidor y parmetros generales de configuracin,
mduloscargados,tiempoquellevaactivado,cantidaddedatosquehatramitadoduranteesetiempo,procesosllevadosacaboy
sufuncin,etc.Incluyetambinlaactividaddelosservidoresvirtuales.

Paravisualizartodaestainformacindesdeelnavegadorira: http://servidor.apache2.com/server-info.

28 de 35
Curso Mentor Apache

Porseguridadpodemosocultarestainformacinponiendo:

<Location /server.informacion.pagina>
<Location /server.status.pagina

Windows

En Windows la salida generada por la orden es la totalmente paralela. La utilidad ab est en C:\ProgramFiles\Apache
SoftwareFoundation\Apache2.2\bin.

Estecdigonospermiteconocerdetallesdelservidorcomocundofueelltimoreinicio,tiempoquellevaactivado,cantidadde
datos que ha tramitado durante ese tiempo, procesos llevados a cabo y su funcin, etc. Incluye tambin la actividad de los
servidoresvirtuales.
Aadimoselcdigoindicadoenhttpd.conf

<Location/server-status>
SetHandlerserver-status
orderdeny,allow
denyfromall
allowfrom192.168.0.103
</Location>
ExtendedStatusOn

ExtendedStatus On permitegenerarinformacincompletadeestado.
Adems,enWindowsdescomentamoslalnea:

29 de 35
Curso Mentor Apache

LoadModulestatus_modulemodules/mod_status.s

30 de 35
Curso Mentor Apache

Glosario
Glosario Unidad 8

Concepto Definicin

Acceso(hit) Nmero de peticiones de archivos que se realizan al servidor durante un perodo de tiempo dado. Se
confundeconvisitas,peronosonlomismo.Unhitesunacceso,unapeticinalservidordeunarchivo.
ElnmerodeAccesossiempresermayorqueelnmerodevisitas.

Analizadordelogs Aplicacin que permite obtener estadsticas de acceso a un servidor web, indicando cules son las
pginasmsvisitadas,etc

Cadenasdebsqueda Palabraopalabrasclavequeseusanenlosbuscadoresparallegaranuestrapginawebositioweb.

Referidos Sitios a travs de los que se accede a nuestra pgina, ya sean buscadores u otras pginas que nos
enlacen.

RegistrodeApache2 Sistemadealmacenamientodeinformacinrelativaalosaccesosylassituacionesdeerror.

Rotacindelogs Elprocesoderotacindearchivosderegistroconsisteenlarotacinautomtica,comprensin,
extraccindelosarchivosdelogs.

Visita Cuandounusuarioentraenunapginawebseproduceunavisita.Todoeltiempoquenavegueporlaweb
contarcomoesavisita,slouna.Laprimerapeticinquerealizaeseclienteremotoesloquecuenta
comovisita.

Otros Glosarios

Otros glosarios relacionados con la informtica y el mundo web.


Se pueden visitar las webs siguientes:

ATI: dispone de un glosario completo de trminos informticos en http://www.ati.es/novatica/glosario/glosario_internet.html


Microsoft: http://msdn.microsoft.com/es-es/library/aa302380.aspx

31 de 35
Curso Mentor Apache

Fuentes de informacin
Documentos y enlaces de inters

1. Gua de Ubuntu: http://www.guia-ubuntu.org/index.php?title=Servidor_web


2. Pgina oficial de apache: http://www.apache2.es/2.2.2/

32 de 35
Curso Mentor Apache

Resumen final
Sntesis de la Unidad 8 'Registro y monitorizacin de
Apache2'
Lospuntosadestacardeestaunidadsonlossiguientes:

1. LainstalacindeApache2pordefectodejaactivadossusmecanismosderegistrodeactividadengeneraldelservidorweb.
Permite almacenar informacin relativa a errores producidos al ejecutar el proceso apache2 (Registro de error) y a los
accesosalservidor(Registrodeactividad).
2. Elprocesoderotacindearchivosderegistroconsisteensalvarelarchivoactualbajootronombreycrearunonuevovaco.
Deestaforma,sinrenunciaradisponerdetodoslossucesosdelsistema,sepuedetrabajarconarchivosdemenortamao.
Logrotateesunautilidadquellevaacabolarotacinautomtica,comprensin,extraccinyenvodelosarchivosdelogs.
3. Apache2disponedeherramientaswebqueproporcinanestadsticasdeusoydeesaformaconocerqupginassonmas
frecuentementeservidasyculesmenos.WebalizeryAwstatssondosdeellasyvlidastantoparaUbuntucomopara
Windows.
4. DesdeWindowssehaestudiadolaaplicacinBBClonecomoanalizadordeaccesosaApache2.BBClonedetallaparacada
visitantesudireccinIP,sistemaoperativo,navegador,desdequeURLhanaccedidoasusitiowebutilizandounainterfaz
grfica.Es,adems,softwarelibreconlicenciaGNUGeneralPublicLicense.

33 de 35
Curso Mentor Apache

Autoevaluacin Unidad 8
Autoevaluacin

El cuestionario de autoevaluacin de la Unidad 8 est disponible en la plataforma Mentor (https://centrovirtual.educacion.es/).

34 de 35
Curso Mentor Apache

Este artculo est licenciado bajo Creative Commons Attribution Non-commercial 3.0 License
Unidad 8

35 de 35
Curso Mentor Apache

Apache
Unidad 9: Proxy / WedDav


Enestecaptuloaprenders:
aconfigurarApache2comoproxyparaturedlocaltantodesdeUbuntucomodesdeWindows.
AconfigurarApache2comocachwebacelerandodeesaformalosaccesosdelosclientesaInternet.
AconfigurarApachecomoservidorWebDAVypermitiendoascrearespaciosdecolaboracin.
Autilizarlasdirectivasasociadasalasaccionesanteriores.
AactivaryutilizarlosmdulosdeApacheimplicadosenlasfuncionalidadesanteriores.

Materialcomplementario:
1. Archivoconlasactividadesreferidasalolargodelcaptulo.ArchivoU9_Actividades.pdf
2. Mapaconceptualdelcaptulo.ArchivoU9_mapaconceptual.png
3. Glosariocompletodelcurso.Archivoglosario.pdf

1 de 21
Curso Mentor Apache

Introduccin
Objetivos

Conocerlosconceptosdeproxy,cachywebdav.

Preparar Apache2 como servidor de cada uno de estos servicios.

Conocer las directivas implicadas en estos servicios.

Realizar la configuracin necesaria de Apache2 funcionando como servidor de estos servicios en ambos sistemas
operativos.

Conocimientos previos

En esta unidad estudiamos diferentes funcionalidades de Apache2 que requieren la activacin de ciertos mdulos y unas
configuracionesespecficasrelacionadasconlautilizacindeApachecomoproxy-cachyservidorWebDav.
Esunaunidadsencilla,conconceptosmuyasequiblesytileseinteresantesparaaplicaranuestroservidorweb.

Contenidos

Unidad9:Proxy/WebDav
A.Ubuntu

1. Apache2 como servidor proxy


2. Apache2 como servidor cach web
3. Apache2 como servidor WebDav

B. Windows

1. Apache2 como servidor proxy-cach


2. Apache2 como servidor WebDav

C. Fin de unidad

1. Glosario
2. Fuentes de informacin
3. Resumen final
4. Autoevaluacin

2 de 21
Curso Mentor Apache

Ubuntu:
Introduccin

Apache2puedefuncionarcomoservidorproxy,servidordecachounacombinacindeambos.
Servidorproxyesunservidorintermedioentreelclienteyelservidordeorigenqueaceptalaspeticionesdelosclientes,las
transmitealservidordeorigen,ydespusdevuelvelarespuestadelservidordeorigenalcliente.
Sivariosclientespidenelmismocontenido,elproxysirveelcontenidodesdesucach,enlugardepedirlocadavezquelo
necesitaalservidordeorigen,reduciendoconestoeltiempoderespuesta.
El trmino proxy indica que se est actuando en nombre de otro elemento. En trminos de servidores quiere decir que un
servidorobtieneinformacindeotroservidorparamostrarloalclienteweb.
La gestin del comportamiento de Apache2 como proxy la proporciona el mdulo mod_proxy que viene como mdulo
disponibleperonoestactivadopordefecto.
Lo usual en las aulas es disponer de una herramienta proxy especfica, como puede ser Squid que es ampliamente
configurable.Pero,essudefectosepuedeconfigurarApache2parallevaracabodichoservicio.
CulessonentonceslasventajasdeutilizarApache2comoproxy-cach?

UnasolamquinatieneaccesoaInternet.
Elclientequedaocultodetrsdelservidor.
Laredinterna,suestructuraytipologaquedaoculta.
Esposiblellevaruncontroldeltrficogeneradoporlosclientesenlaredinterna.
Esposiblebloquearofiltraraccesos.

Engeneral,sonlasventajasdelautilizacindeunproxy,comopudieraserSquidocualquierotroyquepodemosresumiren:

1. Seguridad:elservidorproxyesutilizadoporlosclientescomopuertadeenlacehaciaInternet.
2. Cach: el servidor proxy almacena la pginas accedidas recientemente y esto agiliza los posteriores accesos a las
mismas.
3. Filtrado:comotodaslaspeticionesdelaredinternapasanatravsdelproxypodemosincorporarreglasdeaccesoa
Internetyasuscontenidos.

En nuestro caso configuraremos el mdulo proxy para que las mquinas de la red local 192.168.0.0/24 salgan a Internet
utilizandocomoproxyelservidorwebApache2.

3 de 21
Curso Mentor Apache

Apache2 como servidor proxy


Activacin del mdulo proxy

Listamoseldirectorio /etc/apache2/mods-availableycomprobamosqueelmdulomod_proxy estdisponible,


juntoconotrosmdulosproxyquecomplementansufuncionalidad:

#ls/etc/apache2/mods-available/|grepproxy
proxy_ajp.load
proxy_balancer.load
proxy.conf
proxy_connect.load
proxy_ftp.load
proxy_http.load
proxy.load
proxy_scgi.load
Activamoslosmdulossiguientes:

#a2enmodproxy
Moduleproxyinstalled;run/etc/init.d/apache2force-reloadtoenable.
#a2enmodproxy_connect
#a2enmodproxy_ftp
#a2enmodproxy_http
#/etc/init.d/apache2force-reload

Configuracin bsica del mdulo proxy

Editamoselarchivodeconfiguracin /etc/apache2/mods_available/proxy.conf. Enestearchivoactivamos,enel


servidor Apache2, las peticiones proxy (ProxyRequests On) y limitamos el acceso a Internet mediante Apache2 a las
mquinasdelaredlocal192.168.0.0/24.

<IfModulemod_proxy.c>
ProxyRequestsOn
ProxyViaOn
<Proxy*>
Orderdeny,allow
Denyfromall
Allowfrom192.168.0.
</Proxy>
</IfModule>

NOTA:sienlalneaAllow fromcolocamosunnombrededominiohabrquecomprobarquedesdeelservidorseresuelven
correctamentelosnombresdelosclientes,vaDNSova/etc/hosts.

Elrestodelarchivodeconfiguracinlomantenemoscomoest.
Relanzar/recargareldemoniodeApache2:

#/etc/init.d/apache2force-reload

4 de 21
Curso Mentor Apache

MUYIMPORTANTE
Desde el navegador web Firefox del equipo cliente hay que configurar la salida a Internet. Vamos a utilizar como proxy la
mquina192.168.0.1escuchandoenelpuerto80,quesesuponequeesdonderesideelservidorApache2.
ComprobarqueelaccesoaInternetdesdeFirefoxenelclienteescorrecto.

Apache2 funcionando como filtro de contenido

Apache2bloqueapeticionesHTTP,HTTPsyFTPdesitiosqueensunombrecontenganeldominio,hostopalabradada.
Porejemplo:www.sex.comsepodranbloqueartodosaquellosdominiosquecontuvieran'sex'ensunombre.
Apache2funcionandocomoproxydisponededirectivasespecficasparaelfiltradodecontenidos,quenospermitenbloquear
hosts concretos, dominios y hosts/dominios cuyo nombre se proporciona parcialmente. De esta forma se prohiben las
solicitudesaciertasdirecciones.
Ejemplos:
1.Bloquearunhost:
ProxyBlockwww.google.es

2.Bloqueareldominio:
ProxyBlockgoogle.es

3.Bloquearcualquierhost/dominioquecontengaunacadena:
ProxyBlockgoogle

4.Bloquearcualquierpeticin:
ProxyBlock*

Si queremos configurar Apache2 para impedir conexiones a www.elpais.es hay que editar el archivo /etc/apache2
/mods_available/proxy.conf yaadirlalnea:

ProxyRequestsOn
ProxyBlockwww.elpais.es
<Proxy*>
.................
Desdeelnavegador(yapreparado)comprobarquesedeniegaelaccesoaestapginaweb.

5 de 21
Curso Mentor Apache

Apache2 como servidor cach web


Introduccin

CuandounservidorApache2funcionacomoproxytambinsepuedehacerquefuncionecomocach.
A medidaquesevayanhaciendosolicitudesenelservidorproxy-cach,primerosecomprobarsihaycopiaslocalesdelas
pginassolicitadas.

Silashay,elservidorApache2mostraralclienteweblaspginascacheadas.
SinoestnenelservidorApache2,setraerndesdeInternetysealmacenarnenlacach.

LautilizacindeApache2comocachpuedemejorarlostiemposderespuestaydisminuireltrficodered.
Estasmejorasdependerndelacantidaddediscoasignadaalacach,delostiemposdecaducidaddelacach,etc.

Activacin del mdulo cach

Parautilizarlacachsedebeactivarelmdulocorrespondiente mod_cache yaquepordefectovienedesactivado.

#ls/etc/apache2/mods-available|grepcache
cache.load
disk_cache.load
disk_cache.conf
file_cache.load
mem_cache.load
mem_cache.conf
El mdulo fundamental para activar la cach de disco es disk_cache en cuyo archivo de configuracin daremos los
parmetrosdenuestracach.

#a2enmodfile_cachemem_cachedisk_cache
#/etc/init.d/apache2force-reload

Directivas relacionadas

VamosaverahoraqudirectivassonlasquegobiernanelfuncionamientodeApache2comoproxy-cach.
As como la directiva bsica para el funcionamiento de Apache2 como proxy era ProxyRequests, la directiva bsica de
funcionamientocomocachesCacheRootqueproporcionalaubicacinparalosarchivosenlacach.
Directivasrelacionadasconlacachson:

Cach Descripcin
CacheRoot Proporcionalaubicacinparalosarchivosenlacach.Mdulodisk_cache.

6 de 21
Curso Mentor Apache

Cach Descripcin
CacheSize Establece la mxima cantidad de espacio en KB que ser usado en cach.
Conviene dar el valor mximo disponible para el sistema de archivos. Es una
directivaqueestdocumentadaenApache2.2peronoestactiva.
CacheMaxExpire N de segundos que un objeto puede estar en la cach sin chequear la pgina
origenparadeterminarsiestapginahasidoactualizada.Mdulomod_cache.
CacheLastModifiedFactor Define el valor que ser usado para calcular si un objeto en la cach debera
expirar cuando este objeto no tiene marca de fecha de expiracin. Ejemplo: un
factorde0.1parauntiempode20hdesdelaltimamodificacindaraunafecha
deexpiracinde2h.Mdulomod_cache.
CacheGcInterval Limpieza peridica de la cach. El servidor cada X horas recoge la basura y
garantizaquelacachcontienemenosdeltamaoenKbindicadoenCacheSize.

CacheDefaultExpire N de segundos para que un objeto expire si este no tiene ninguna fecha de
expiracin.Configuracindelservidor,virtualhost.Mdulomod_cache.

CacheMaxFileSize Valormximo(tamaoenbytes)paralosobjetosalmacenadosencach.Mdulo
disk_cache.

CacheMinFileSize Valormnimo(tamaoenbytes)paralosobjetosalmacenadosencach.Mdulo
disk_cache.

Al ejecutar el servidor Apache2 como cach agilizamos a los usuarios el acceso a contenidos que ya han sido
solicitadosporlmismooporotrosusuarios.
Elnicoproblemaenestoscasoseslaactualizacindeloscontenidosyaqueloquesemuestraesunacopialocal
delobjeto.

Configuracin de Apache como cach

AcontinuacinestablecemosunaconfiguracinsencillaparalacachdeApache2.

1. Editamos el archivo de configuracin del mdulo disk_cache /etc/apache2/mods-available


/disk_cache.conf y comprobamos la lnea:

CacheRoot/var/cache/apache2/mod_disk_cache
2. Este directorio existe por instalacin y comprobamos que el dueo y el grupo son del usuario que ejecuta Apache2
www-data:

drwxr-xr-x2www-datawww-data40962007-08-1700:54mod_disk_cache
3.Enelarchivodeconfiguracin disk_cache.confaadimoslaslneasqueconfiguranelcomportamientodelacach:

<IfModulemod_disk_cache.c>
CacheRoot/var/cache/apache2/mod_disk_cache
CacheEnabledisk/
CacheDirLevels5
CacheDirLength3
CacheMaxFileSize64000
CacheMinFileSize64
</IfModule>

7 de 21
Curso Mentor Apache

8 de 21
Curso Mentor Apache

Apache2 como servidor WebDav


Introduccin

WebDAV(Web-basedDistributedAuthoringandVersioning,AutorayVersionadoDistribuidobasadoenWeb)esunestndar
quedescribecomo,atravsdelaextensindelprotocoloHTTP1.1,sepuedeescribir,copiar,eliminaromodificararchivos.
Tambinpuedemodificarsuspropiedades,nombreocaractersticasdeseguridad,nivelesdeacceso,etc.Esdecir,permite
utilizarunservidordearchivoswebremotocomosifueraunservidordearchivoslocal.
WebDAVsigueellema:"makestheWebWritable".
Sabemosquelainformacinexistenteenlawebesdesololectura.Cuandosesolicitaaccederaunapginawebelservidor
respondeconunacopiadedichapgina,visibleenelnavegador.ElprotocoloHTTPnotieneningnmediodefinidoporelque
elusuariopuedamodificarunapginaocrearunanueva.Normalmenteserecurreaprotocoloscomoftposftp.
WebDAV esunprotocoloconstruidosobreHTTP,alcualcomplementaconunconjuntodeinstruccionesquepermitenesta
comunicacinbidireccional,ofreciendolaposibilidad,comosehacomentadoantes,decrear,modificaromoverdocumentosen
unservidorremoto,yqueinclusopermiteconstruirsistemasdearchivosdistribuidosaccesiblesdesdecualquiersitio.
El objetivo deWebDAV esconseguir convertirla web, a travs del protocolo HTTP, en unespacio de colaboracin,
dondevariosusuariospuedanparticiparconjuntamente enlaelaboracindedocumentos.
Algunas de las caractersticas mas destacadas de webdav (aparte de proporcionar acceso a la escritura del
documentovahttp)son:

Permitedeshabilitarelaccesoenescritura:necesarioenunentornodetrabajocompartido,yasevitarqueel
trabajodeunusuariointerfieraeneltrabajodelanteriorsobreelmismodocumento.
Permite describirpropiedades(metadatos)deldocumento en formato xml(ttulo,autor,fecha,tamao)que
aunquenoapareceneneldocumento,daninformacinsobreelmismoypuedensergestionadaspordav.
Permitellevarunregistrodelassucesivasversionesdeldocumentoascomorecuperarcualquieradeellas.

AlgunosdeestascaractersticasdeWebDAVestnyadisponiblesutilizandootrosmecanismos.Porejemplo:

latransferenciadearchivosvahttp:sehacesiemprevaftp
elcontroldelasversionesdeundocumento:sehaceconcvs

PorqueentoncesutilizarWebDAV?
LaventajadeutilizarWebDAVestribaenqueestasfunciones,alestarbasadasenhttp,sonmaspotentesyflexibles.Ademsy
comoconsecuenciadesapareceladiferenciaentrediscoduroyespacioweb.Deestaformasepuedeutilizarelespacioweb
paraalmacenardocumentosdelosquesenecesitatenerdisponibilidadinmediataysegura.
Conunnavegadoradecuadoelusuariopodraaccederymanipularlainformacin.Porejemplo,OpenOffice2ya
llevaincorporadosoporteDAV.
Adems, con WebDAV los usuarios pueden montar directorios compartidos con una funcionalidad similar a la
utilizacindeprotocolosNFSoSMB.
LautilizacindeesteserviciorequiereunservidorWebDAV(activadoelmdulomod_davqueyavieneincluidoenApache2)y
unclientepreparadoparacomunicarseconelservidor.
Lapginaoficialdelproyectoeshttp://webdav.org.

Configuracin de Apache2 como servidor webdav

Hemos visto ya como habilitar un directorio en el servidor Apache con nuestros contenidos pblicos. Pero slo como un
directoriodedescarga,losusuariosqueaccedenalnotienenformadesubirarchivosoeditarlosarchivosdisponibles.

9 de 21
Curso Mentor Apache

WebDAVpermitequelacarpetacompartidasemuestreennuestroescritorioyeneldeotrosusuarioscomounacarpeta
localms,permitiendoeditarsucontenido.
WebDAVpermitebloqueararchivosparaprevenirquedospersonaseditenelmismocontenidoalmismotiempo.

VamosaaadirsoporteaWebDAVanuestroservidorApache.
Habilitarlossiguientemdulos:

#a2enmoddav
#a2enmoddav_fs
#a2enmodauth_digest;sinosehahabilitadoenelCaptulo6

Creamosunusuarioycontraseaparaaccederalacarpeta(OJOconlaopcin-csiyatenemoscreadoelarchivo):

#htdigest/etc/apache2/passwd/.htdigestDirectoriocompartidousuario-dav

AhoracreamosunnuevohostvirtualennuestrawebconinformacinparacompartirporWebDAV:

#gedit/etc/apache2/sites-available/webdav
Incluimos:

<VirtualHost*>
ServerNamewebdav.apache2.com
DocumentRoot/var/www/compartido
Alias/dav/var/www/compartido
<Directory/var/www/compartido>
AuthTypeDigest
AuthName"directoriocompartido"
AuthUserFile/etc/apache2/passwd/.htdigest
Requirevalid-user
OptionsNone
AllowOverrideNone
</Directory>
Alias/dav/var/www/compartido
<Location/dav>
DAVOn
</Location>

Paraquesepuedaresolverestenuevohostvirtualdebemosincluirloenelarchivo db.apache2.com siseestutilizando


bindoen/etc/hosts.

Creamoseldirectorioyledecimosquepertenezcaalservidorweb(paraquestepuedaescribirenesedirectorio):

#mkdir/var/www/compartido
#chownwww-data.www-data/var/www/compartido
#chmod750/var/www/compartido

Enfuncindelvalordeumaskdefinidoenelsistema,esposiblequealcreareldirectoriotengaasignadosestospermisos.

#mkdir/var/lock/apache2
#chownwww-data.www-data/var/lock/apache2
#chmod750/var/lock/apache2

Esposiblequeestedirectorioyaexista.Comprobareldueoygrupoylospermisos.
Comprobarqueenelarchivodeconfiguracindelmdulodav_fs.conf existenlaslneas:

10 de 21
Curso Mentor Apache

DAVLockDB/var/lock/apache2/DAVLock
DAVMinTimeout10

Habilitamosnuestronuevoespacioweb(hostvirtualwebdav):

#a2ensitewebdav
#/etc/init.d/apache2force-reload

ParaprobarelfuncionamientomedianteunaconexinalservidorWebDAVhayqueira:

Lugares->Conectarconelservidor...

Acabardecompletarconlosdatossiguientes:

Nos conectamos al servidor WebDAV y al forzar autenticacin digest nos pide usuario y contrasea de un usuario con
autorizacin,ennuestrocasousuario-dav.
Siintroducimoselnombredelusuarioenlaventana'Conectaralservidor'ahoraslopedirlacontrasea.
Nosmostrarelcontenidodeldirectorio /var/www/compartido comounacarpetamsdelsistema(unidaddered)
permitiendolaedicindelosarchivosquecontiene.

11 de 21
Curso Mentor Apache

Windows:
Introduccin

VamosaconfigurarApache2comoproxy-cachdesdeWindows.
ComoyasecomentdesdeUbuntu,unadelasventajasdeutilizarApache2comoproxy(sinosedisponedelservicioproxyen
elsistema)esqueofrecelaposibilidadaladministradordecontrolarlosaccesosaInternetdelosusuarios.

12 de 21
Curso Mentor Apache

Apache2 como proxy-cach


Configuracin

ParaelloeditamoselarchivoC:\ProgramFiles\ApacheSoftwareFoundation\Apache2.2\conf\httpd.conf
1.Activarelmduloproxy_moduleeliminando'#':

LoadModuleproxy_modulemodules/mod_proxy.so
LoadModuleproxy_connect_modulemodules/mod_proxy_connect.so
LoadModuleproxy_http_modulemodules/mod_proxy_http.so
LoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so

2.Activarelproxypropiamente.Debemosincluirunaseccin<IfModule>enlaqueincluiremoslasdirectivasespecficasde
activacinymbitodeaplicacindeApache2comoproxy.

<IfModuleproxy_module>
ProxyRequestsOn
ProxyViaOn
<Proxy*>
Orderdeny,allow
Denyfromall
Allowfrom192.168.0.
</Proxy>
</IfModule>

EstaseccinpermitequeApache2aceptepeticionesproxydentrodelared192.168.0.0/24.
SisloqueremosqueApachefuncionecomocachdebemoscomentarladirectivaProxyRequests.Deestaformaselimitar
afuncionarcomoservidordecach.
MUYIMPORTANTE
Desde el navegador web Firefox del equipo cliente hay que configurar la salida a Internet. Vamos a utilizar como proxy la
mquina192.168.0.1escuchandoenelpuerto80,quesesuponequeesdonderesideelservidorApache2.
ComprobarqueelaccesoaInternetdesdeFirefoxenelclienteescorrecto.

Configuracin de Apache como cach

AcontinuacinestablecemosunaconfiguracinsencillaparalacachdeApache2.
1.Editamoselarchivodeconfiguracinhttpd.confyenlaseccinIfModuledelmduloproxyaadimoslalnea:

CacheRoot "C:/Program Files/Apache Software Foundation/Apache2.2


/proxy_cache"

2.Estedirectoriomuyprobablementenoexistir.CrearloytenerencuentaqueelusuarioqueejecutaApache2debepoder
modificardichodirectorio.
3.ElcomportamientodelacachseconfiguraaadiendolassiguienteslneasenlaseccinIfModule:

13 de 21
Curso Mentor Apache

CacheRoot "C:/Archivos de programa/Apache Software Foundation/Apache2.2


/proxy_cache"
CacheSize500
CacheGcInterval4
CacheMaxExpire86400
CacheLastModifiedFactor0.1
CacheDefaultExpire3600

SinodefinimosCacheRootnosellevaracabolafuncindecach.Elrestodedirectivasparacachsirvenparadeterminar
lascaractersticasdelacach.

AcontinuacinestablecemosunaconfiguracinsencillaparalacachdeApache2.
1.Editamoselarchivodeconfiguracinhttpd.confyenlaseccinIfModuledelmduloproxyaadimoslalnea:

CacheRoot "C:/Archivos de programa/Apache Software Foundation/Apache2.2


/proxy_cache"

2.Estedirectoriomuyprobablementenoexistir.CrearloytenerencuentaqueelusuarioqueejecutaApache2debepoder
modificardichodirectorio.
3.ElcomportamientodelacachseconfiguraaadiendolassiguienteslneasenlaseccinIfModule:

CacheRoot "C:/Archivos de programa/Apache Software Foundation/Apache2.2


/proxy_cache"
CacheSize500
CacheGcInterval4
CacheMaxExpire86400
CacheLastModifiedFactor0.1
CacheDefaultExpire3600

SinodefinimosCacheRootnosellevaracabolafuncindecach.Elrestodedirectivasparacachsirvenparadeterminar
lascaractersticasdelacach.

14 de 21
Curso Mentor Apache

Apache2 como servidor WebDAV


Configuracin

Vamos a explicar cmo se activa el mdulo de Apache2 mod_dav y la configuracin necesaria para que nuestro servidor
ApacheseconviertaenunservidorWebDAV.

Recordar que el objetivo de WebDAV es conseguir convertir la web, a travs del protocolo HTTP, en un espacio de
colaboracin,dondevariaspersonaspuedanparticiparconjuntamenteenlaelaboracindedocumentos.

Paraello:

1.DescomentarlalneaLoadModulecorrespondientealmduloenhttpd.conf

LoadModuledav_modulemodules/mod_dav.so
LoadModuledav_fs_modulemodules/mod_dav_fs.so

2.DescomentarlalneaIncludecorrespondienteenhttpd.conf

Includeconf/extra/httpd-dav.conf

3. Comprobar que el archivo de configuracin C:\Archivos de programa\Apache Software Foundation\Apache2.2


\conf\extra\httpd-dav.confcontieneladirectivaDAVLockDBquelocalizalaBBDDdebloqueoqueutilizamod_davparaque
nosepuedaninterferirdiferentesoperacionesconesteprotocolo.

DavLockDB"C:/Archivosdeprograma/ApacheSoftwareFoundation/Apache2.2/var/DavLock"

4.Comprobar/creareldirectorioalquehacereferencialadirectivaDAVLockDBteniendoencuentaqueelusuarioygrupode
Apache2tengapermisosparaescribirenl.EstedirectoriodebecoincidirconlaseccinDirectoryquecontieneladirectiva
DAVOn.Paraello:

C:/Archivosdeprograma/ApacheSoftwareFoundation/Apache2.2/>mkdirvar

5.CreamoseldirectorioparaloscontenidosquepuedenserobjetodeoperacionesWebDAV.

C:/Archivosdeprograma/ApacheSoftwareFoundation/Apache2.2/htdocs/>mkdiruploads

6. Utilizar htdigest para crear la base datos de contraseas del dominio DAV-upload y dar de alta el
usuario admin:

htdigest -c "C:/Archivos de programa/Apache Software Foundation/Apache2.2


/bin/user.passwdDAV-uploadadmin

7. Elcontenidodelarchivodeconfiguracinhttpd-dav.confeselsiguiente:

DavLockDB"C:/Archivosdeprograma/ApacheSoftwareFoundation/Apache2.2/var/DavLock"
Alias /uploads "C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs
/uploads"
<Directory "C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs
/uploads">
OptionsIndexesFollowsymlinks
DavOn
OrderAllow,Deny
Allowfromall
AuthTypeDigest
AuthNameDAV-upload
AuthUserFile "C:/Archivos de programa/Apache Software Foundation/Apache2.2

15 de 21
Curso Mentor Apache

/bin/user.passwd"
<LimitExceptGETOPTIONS>
requireuseradmin
</LimitExcept>
</Directory>

Accesoalazonacolaborativa:
1.Asegurarsedequelacarpetauploadstienepermisosdelecturayescrituraparatodoslosusuarios.
2.IraMissitiosdeRed->AadirsitiosdeRed.EnlaventanaquesolicitalalocalizacindelsitiodeRediraExaminary
buscaryseleccionar,enlareddeMicrosoft,lacarpetaquehemoscompartidocomouploads.
3.CopiarlaURLcompletaincluyendohttp://
4.Aparecelapantalladeconexinalservidorquesolicitaelusuarioylacontraseadered.
5.Introducirelnombredeusuariocreadoylacontrasea.Aceptar.
6.AparecelapantallaBienvenidoalasistentedeaadirsitiosdeRed.IntroducirunnombreparaelsitiodeRed.
Finalizar.
7.Apareceunacarpetawebconlosarchivosdisponiblesdeuploads.Estosarchivossepuedeneer,copiar,modificar,guardary
cambiarelnombreenelservidorApache2deigualformaacomosepodradesdeunexploradordearchivos.
EnelcasodequesepresentealgnproblemaconlautilizacindeWebDAVenWindowsXPsepuedeutilizarlaherramienta
DAVExplorer.

16 de 21
Curso Mentor Apache

Glosario
Glosario Unidad 9

Concepto Definicin

Servidor proxy Servidorintermedioentreelclienteyelservidordeorigenqueaceptalaspeticionesdelosclientes,las


transmitealservidordeorigen,ydespusdevuelvelarespuestadelservidordeorigenalcliente.

Servidor Servidorquealmacenalocalmentelaspginasconsultadasrecientementeporlosusuarios,evitandoas
proxy-cach laconexindirectadelusuarioalservidorremotoyasobtenerungranincrementoenlavelocidadde
transferenciadelainformacin.

Squid Squidesunprogramadesoftwarelibrequeimplementaunservidorproxyyundemonioparacach
web,bajolicenciaGPLquedisponedeunagrancantidaddeutilidadesyopcionesdeconfiguracin.

WebDAV (Web-basedDistributedAuthoringandVersioning)protocolosobreHTTPquepermitecrear,modificaro
mover documentos en un servidor remoto. La utilizacin de este servicio permite al usuario llevar a
cabomodificacionessobrepginaswebaccedidasque,enprincipio,slopodraleerysinnecesidadde
utilizarotrosservicioscomoFTP.

Otros Glosarios

Otros glosarios relacionados con la informtica y el mundo web.


Se pueden visitar las webs siguientes:

ATI: dispone de un glosario completo de trminos informticos en http://www.ati.es/novatica/glosario


/glosario_internet.html
Microsoft: http://msdn.microsoft.com/es-es/library/aa302380.aspx

17 de 21
Curso Mentor Apache

Fuentes de informacin
Documentos y enlaces de inters

1. Gua de Ubuntu: http://www.guia-ubuntu.org/index.php?title=Servidor_web


2. Pgina oficial de apache: http://www.apache2.es/2.2.2/
3. http://linux.ues.edu.sv/content/webdav-y-apache2

18 de 21
Curso Mentor Apache

Resumen final
Sntesis de la Unidad 9 'Proxy / WebDav'

Lospuntosadestacardeestaunidadsonlossiguientes:

1. Servidorproxyesunservidorintermedioentreelclienteyelservidordeorigenqueaceptalaspeticionesdelosclientes,
lastransmitealservidordeorigen,ydespusdevuelvelarespuestadelservidordeorigenalcliente.
2. Apache2funcionandocomoproxydisponededirectivasespecficasparaelfiltradodecontenidos,quenospermiten
bloquearhostsconcretos,dominiosyhosts/dominioscuyonombreseproporcionaparcialmente.
3. LautilizacindeApache2comocachpuedemejorarlostiemposderespuestaydisminuireltrficodered.
4. El objetivo de WebDAV es conseguirconvertir laweb, a travsdel protocoloHTTP, en unespacio decolaboracin,
dondevariosusuariospuedanparticiparconjuntamente enlaelaboracindedocumentos.
5. WebDAVpermitequelacarpetacompartidasemuestreennuestroescritorioyeneldeotrosusuarioscomounacarpeta
localms,permitiendoeditarsucontenido.

19 de 21
Curso Mentor Apache

Autoevaluacin Unidad 9
Autoevaluacin

El cuestionario de autoevaluacin de la Unidad 9 est disponible en la plataforma Mentor (https://centrovirtual.educacion.es/).

20 de 21
Curso Mentor Apache

Este artculo est licenciado bajo Creative Commons Attribution Non-commercial 3.0 License
Unidad 9

21 de 21
Curso Mentor Apache

Apache
Unidad 10: MySQL y PHP en Apache2


Enestecaptuloaprenders:
lautilizacindeApache2comoservidorwebbaseparainstalacin,configuracinyusodediferentesherramientasweb.
lainstalacinyconfiguracindeMySQLcomoSGBDysuusobsico.
lainstalacinyconfiguracindellenguajedeprogramacinPHP5nicamentecomorequerimientodeadministracinwebde
MySQL.
lainstalacinyconfiguracindephpMyAdmincomoherramientadegestinwebdeMySQL.

Materialcomplementario:
1. Archivoconlasactividadesreferidasalolargodelcaptulo.ArchivoU10_Actividades.pdf
2. Mapaconceptualdelcaptulo.ArchivoU10_Mapaconceptual.png
3. Glosariocompletodelcurso.Archivoglosario.pdf

NOTAImportante:
Es importante tener en cuenta que este captulo no contempla una explicacin exhaustiva de MySQL, PHP y
phpMyAdmin.ElobjetivoesconocerlaintegracinyfuncionamientobsicoutilizandocomoplataformadebaseApache2.
Paraevitarposiblesinteraccionesycomplicacionesesimportanterealizarlaprcticaenprimerlugarteniendoactivoslo
elsitiopordefecto.Unavezconfiguradoycomprobadoquefuncionaactivarelrestodesitiosvirtualesdefinidosenlas
sucesivasactividadesyprcticasycomprobarquesemantieneelcorrectofuncionamiento.

1 de 25
Curso Mentor Apache

Introduccin
Objetivos

ConocerlosrequerimientosdelsistemaparalainstalacindeMySQLenApache2.

Realizar la instalacin de MySQL en Apache en ambos sistemas operativos.

Realizar la instalacin el soporte de PHP5 en ambos sistemas operativos.

Realizar la instalacin, configuracin y utilizacin bsica de phpMyAdmin.

Conocimientos previos

EnestaunidadabordamoslainstalacinyconfiguracinbsicadeMySQL,ascomodePHP5paraApache2ytantoparaUbuntucomopara
Windows.Comodichainstalacinyconfiguracinesdesdeceronorequiereningnconocimientoprevio.

Contenidos

Unidad10:MySQLyPHPenApache
A.Ubuntu

1. Instalacin de MySQL
2. Configuracin de MySQL
3. Instalacin del soporte para PHP5
4. Instalacin y configuracin de phpMyAdmin

B. Windows

1. Instalacin de MySQL
2. Instalacin del soporte para PHP5
3. Instalacin y configuracin de phpMyAdmin

C. Fin de unidad

1. Glosario
2. Fuentes de informacin
3. Resumen final
4. Autoevaluacin

2 de 25
Curso Mentor Apache

Ubuntu:
Introduccin a MySQL

MySQLesunSistemaGestordeBasesdeDatosRelacional(SGBDR).
MySQLhasidodesarrollado,distribuidoymantenidoporMySQLAB,compaacomercialfundadaporlosdesarrolladoresdeMySQLque
aunacdigoabiertoconnegocio.
Un Sistema de Gestin de Bases de Datos (SGBDR) es una aplicacin formada por un conjunto de programas que permiten crear y
gestionarbasesdedatos(BBDD).
Proporcionaalusuariodelabasededatoslasherramientasnecesariaspara:

Definirlasestructurasdelosdatos.
Manipularlosdatos:insertar,modificar,borraryconsultarlosdatosexistentes.
Mantenerlaintegridaddelainformacin.
ProporcionarcontroldelaprivacidadyseguridaddelosdatosenlaBBDD,permitiendosloelaccesoalosusuariosautorizados.

Engeneral,unSistemaGestordeBasesdeDatosRelacionalpuedeadministrarmltiplesBBDDRelacionales.Y laBBDDalmacenalos
datosentablasseparadasquesepuedenrelacionarentres.
Cadatablarepresentaunaentidaddeaquelloqueintentamosmodelaryconsisteenunaseriedefilas(otuplas)ydecolumnas(oatributos).
Cadafiladeunatablatieneelmismonmerodecolumnasyrepresentaunainstanciadeesaentidad.Cadacolumnarepresentaunatributoo
propiedaddelaentidadyesdeuntipodeterminado.
MySQLesunservidordebasesdedatosrelacionalesmultihiloymultiusuario,muyutilizadoenentornosGNU/Linux,essoftwarelibreyse
distribuyebajolicenciaGNUGPL(http://www.gnu.org/).

Saber ms ... sobre MySQL

TienesdisponiblegrancantidaddeinformacinsobreMySQLen:

La Wikipedia: http://es.wikipedia.org/wiki/MySQL
Manual de MySQL: http://php.net/manual/es/book.mysql.php
Tutorial bsico: http://www.mysqlya.com.ar/

3 de 25
Curso Mentor Apache

Instalacin MySQL (v.5.0)


Instalacin de paquetes MySQL

EnprimerlugarvamosainstalarlospaquetesnecesariosdeMySQL.Lapropiainstalacinnosirhaciendounaseriedepreguntasreferentes
alaconfiguracindelospaquetes.
SilainstalacinlaqueremoshacerdesdeSynaptictendremosqueseleccionarelpaquetemysql-server-5.1.Hayquefijarseenqueno
existaningnotropaquetedeservidorinstaladoysilohubierahacerunadesinstalacincompletaqueincluyearchivosdeconfiguracin.

#apt-getinstallmysql-server-5.1
Leyendolistadepaquetes...Hecho
..................................
Seinstalarnlossiguientespaquetesextras:
libdbd-mysql-perl libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl
mysql-client-5.0mysql-common
Paquetessugeridos:
dbishelllibcompress-zlib-perltinyca
Paquetesrecomendados
mailx
SeinstalarnlossiguientespaquetesNUEVOS:
libdbd-mysql-perllibdbi-perllibmysqlclient15offlibnet-daemon-perl
libplrpc-perlmysql-client-5.0mysql-commonmysql-server-5.0
.....................
Deseacontinuar[S/n]?
.......................
Configurandomysql-client-5.0(5.0.38-0ubuntu1)...
Configurandomysql-server-5.0(5.0.38-0ubuntu1)...
*StoppingMySQLdatabaseservermysqld[OK]
*StartingMySQLdatabaseservermysqld[OK]

Lapropiainstalacinyalanzaeldemonio(procesoservidor)deMySQLqueesmysqld.Paracomprobarqueestfuncionandoybuscaren
qupuertoestescuchandoelservicio:

#netstat-atunp|grepmysql
tcp00127.0.0.1:33060.0.0.0:*LISTEN2579/mysqld

Elprocesodeinstalacinavisadelanecesidaddeprotegerelservidorasignandounapasswordalusuarioquehacederoot.
ElservidordebasesdedatosMySQLdisponeen /etc/mysql/devariosarchivosdeconfiguracin:

/etc/mysql/debian.cnf archivodeconfiguracindirectamentecreadoporDebianyquenodebemodificarse.
/etc/mysql/my.cnf archivodeconfiguracindelservidordeMySQLyquecontienelasopcionesglobales.Losusuariospueden
disponerdeconfiguracionespersonalizadascreandoarchivosdeltipo ~/.my.cnf.

/etc/mysql/conf.d directorioconarchivosqueconfiguracinquesernincluidos.

4 de 25
Curso Mentor Apache

Configuracin de MySQL
Configuracin

Elarchivo /etc/mysql/my.cnf estdivididoenseccionesconlasintaxissiguiente:

#>indicaquesetratadeuncomentario
[seccion]>indicaqueseiniciaunaseccin.Losparmetrosincluidosdentrodeunaseccinafectansloasta.Ejemplo:

[mysqld]

A.Opcionesparaelservidor:seccin[mysqld]

1.opcion=valor

Ejemplo:

port=3306puerto en el que escucha el servidor

2.opcion setratadeparmetrosbooleanosqueseestablecenalestarpresentesenelarchivodeconfiguracin.

Ejemplo:

log-binsiloescribimos(descomentamos)registramoslasactualizacionesrealizadas
entodaslastablas

3.set-variable=variable=valorparaestablecerlosvaloresdelasvariables.

Ejemplos:

set-variable=write_buffer=2Mestablecemosen2MBelbfferdeescritura.

Usandoelarchivo/etc/mysql/my.cnf podemosindicarquelosmensajesdeerroraparezcanencastellano.

[mysqld]
....
language=/usr/share/mysql/spanish

ElusuariomysqlindicadoenelarchivoeselrootdeMySQL,noeselusuariorootdenuestrosistema.Esteusuariomysqlseutilizarpara
tareasadministrativasysedarnprivilegiosaotrosusuariosparalagestindelasbasesdedatos.

user=mysql

Pormotivosdeseguridadelpaqueteactivalarednicamenteparalainterfazdeloopback(127.0.0.1)utilizandolaentrada'bind-address'en
/etc/mysql/my.cnf.

Siqueremospermitirconexionesdesdeotramquina,hayquehacerqueelservidorescucheenlainterfazdered.Porejemplo,sinuestraIP
locales192.168.1.1escribiremos

bind-address=192.168.1.1

Elserviciomysqlpuedeserlanzado,paradoorelanzadodesdelalneadeordendelaforma:

#/etc/init.d/mysqlstart/stop/restart

5 de 25
Curso Mentor Apache

Inicio de MySQL
Ejecucin

YatenemosMySQLinstaladoyconunaconfiguracinmnima.
Inicialmente cualquiera puede conectarse al servidor MySQL y crear o modificar las bases de datos. Lo primero que debemos hacer es
asignaralusuariorootunacontraseadeacceso.Verenestepuntomsadelante.
Sepuedehacerdevariasformas,peroparaejemplificarlaformadeconectaralservidorlohacemos:

#mysql
WelcometotheMySQLmonitor.Commandsendwith;or\g.
YourMySQLconnectionidis7
Serverversion:5.0.38-Ubuntu_0ubuntu1-logUbuntu7.04distribution
Type'help;'or'\h'forhelp.Type'\c'toclearthebuffer.
mysql>

yapareceelpromptdeintroduccindecomandos.Sinoqueremoshacernadaparasalir,podemosescribir:

mysql>quit
VolvemosaentraryveremosejemplosdecmotrabajarenlneadeordenconMySQL.
Acciones:

1.Listarlasbasesdedatosquesecreanpordefectoenelprocesodeinstalacin:

mysql>showdatabases;
+--------------------+
|Database|
+--------------------+
|information_schema|
|mysql|
+--------------------+
2rowsinset(0.00sec

Esimportantesaberque:

1. Enlassentenciasnoimportaqueescribamosenmaysculasono.
2. Esimportanteescribirlosnombresdeloscampos,tablas,basesdedatos,ensuformaoriginal.
3. Lassentenciashandeterminaren;
4. Semantieneunhistorialdecomandosalquepodemosaccederconloscursores.

EsimportantetambinasignarpasswordMySQLalusuarioadministrador.

2.CmosecomprobaraqueelusuariorootdeMySQLnotienepassword?
EnprimerlugaraveriguamosqutablastienelaBBDDmysql,paraelloindicamosquevamosautilizarla:
mysql>usemysql;
AhorasolicitamosverlastablasdeestaB.D.:
mysql>showtables;
+---------------------------+
|Tables_in_mysql|
+---------------------------+
|columns_priv|
|db|
|func|
|help_category|
|help_keyword|
|help_relation|

6 de 25
Curso Mentor Apache

|help_topic|
|host|
|proc|
|procs_priv|
|tables_priv|
|time_zone|
|time_zone_leap_second|
|time_zone_name|
|time_zone_transition|
|time_zone_transition_type|
|user|
+---------------------------+
Vamosalatablallamada'user'queeslaquealmacenalosusuarios.Unavezhechoestohacemosunaseleccindelatablaqueusaremos.
mysql>select*fromuser;

quemuestraunatablaenlaquepodemoscomprobarqueelcampoPasswordparaelrootestvaco:
Host User Password select_priv
localhost root y

DesdeMySQLleasignamospasswordalusuariorootdeMySQL:

mysql>setpassword=password('elvira');
QueryOK,0rowsaffected(0.00sec)

3.SalirdelservidorMySQL

mysql>exit
Bye

Siahoraintentamosentrardenuevoconlamismaordencomprobaremosquenosdevuelveunerror:
#mysql
Password:
ERROR 1045 (28000): Acceso negado para usuario: 'root'@'localhost' (Usando clave:
NO)

HemosdeavisaralservidorMySQLdequiensomos(-uroot,esdecirelusuariorootdeMySQL)yquevamosaintroducirlacontrasea(-p
)

#mysql-uroot-p
Enterpassword:
WelcometotheMySQLmonitor.Commandsendwith;or\g.
.............................................
mysql>

4.CrearunaBBDD
Creamosunabasededatosdepruebaquellamaremospruebaytrabajarconalgunoscomandosbsicos.

mysql>createdatabaseprueba;
QueryOK,1rowaffected(0.05sec)
ycomprobemosloscambios:
mysql>showdatabases;
+--------------------+
|Database|
+--------------------+
|information_schema|
|mysql|
|prueba|
+--------------------+

7 de 25
Curso Mentor Apache

TambinsepuedecrearlaB.D.delaformasiguiente:

#mysqladmin-uroot-pcreateprueba

5. Crear una tabla


AlcrearlaBBDDestvaca.Creamosunatablasencillaquevaacontenerslodoscampos:nombreyapellidos,queserndetipotextode
unmximode20caracteres,longitudvariable(VARCHAR)ynopermitimosqueningunodelosdosquedevaco(notnull).
ParaelloprimeroindicamosquBBDDvamosausary,acontinuacin,creamoslatabla'datos':

mysql>USEprueba;
Databasechanged
mysql> create table datos(nombre varchar(20) not null, apellidos varchar(30) not
null);
QueryOK,0rowsaffected(0.01sec)
Comprobemoslastablascreadascon:

mysql>showtables;
+------------------+
|Tables_in_prueba|
+------------------+
|datos|
+------------------+
1rowinset(0.00sec)

Delamismaformapodemosutilizarlasopciones:

showstatus muestralasvariablesdeestadodelservidor
showvariableslistalasvariablesdelservidor

6.Analizarlaestructuradelatabladatos,podemoshacerlocon:

mysql>describedatos;
+-----------+-------------+------+-----+---------+-------+
|Field|Type|Null|Key|Default|Extra|
+-----------+-------------+------+-----+---------+-------+
|nombre|varchar(20)|NO||||
|apellidos|varchar(30)|NO||||
+-----------+-------------+------+-----+---------+-------+
2rowsinset(0.00sec)

7.Introducirdatosenlatabla

mysql>insertintodatosvalues("Juan","SinMiedo"),("
Pepito","Grillo");
QueryOK,2rowsaffected(0.00sec)
Registros:2Duplicados:0Peligros:0

8.Mostrardatosporpantalla

mysql>select*fromdatos;
+--------+-----------------+
|nombre|apellidos|
+--------+-----------------+
|Juan|SinMiedo|
|Pepito|Grillo|

8 de 25
Curso Mentor Apache

+--------+-----------------+
2rowsinset(0.02sec)

9.Autorizarotrosusuarios
TalycomoestconfiguradaMySQLhastaahora,sloelusuariorootpuedemanejarestaBBDD'prueba'.Siqueremosqueotrousuario
(usuario1)puedamanejarlahayqueautorizarle:

mysql>grantallonprueba.*tousuario1@localhostidentifiedbypassword;
QueryOK,0rowsaffected(0.00sec)

10.Cambiodecontrasea
ParamodificarlacontraseadecualquierusuariodeMySQLejecutar:

#mysql-uroot-p
................
mysql> update mysql.user set Password=password('nueva_contrasea') where
user='nombre_usuario';
mysql>flushprivileges;

11.Comprobacin
Elusuariousuario1alquehemosdadopermisopuedeaccederaestabasededatos.Habrqueconectarsealservidorcon:

$mysql-uusuario1-p
WelcometotheMySQLmonitor.Commandsendwith;or\g.
YourMySQLconnectionidis10
Serverversion:5.0.38-Ubuntu_0ubuntu1-logUbuntu7.04distribution
..................
mysql>
introduciendolacontraseaasignada.

12.Conexinremotadelusuario1

Sihemospermitidoaccesosvaredyqueremosqueelusuariousuario1sepuedaconectardeformaremotadesdecualquierIP(representado
porel%)hemosdeejecutarlasiguienteordenestandoconectadoscomoroot:

mysql>grantallonprueba.*tousuario1@%identifiedbycontrasea;
QueryOK,0rowsaffected(0.00sec)

13.MySQLescuchaenotraIP
SinuestroservidordebasesdedatosestescuchandoenlaIP192.168.1.1,paraconectarusamoselcomando:

$mysql-uusuario1-h192.168.1.1-p
Previamentehabraquemodificarmy.cnfparaesaIP.
UsandoloscomandosGRANTyREVOKEdeMySQLsepuedenconcederyretirar,respectivamente,derechosalosusuarios.

14.Cierreyaperturadepuertos
MySQL abre el puerto 3306. Si se quiere cerrar se puede hacer mediante la siguiente regla de
iptables:
#/sbin/iptables-tfilter-AINPUT-ptcp-s0/0-d0/0--dport3306-ieth0-j
DROP//paraTCP
#/sbin/iptables-tfilter-AINPUT-pudp-s0/0-d0/0--dport3306-ieth0-j
DROP//paraUDP

9 de 25
Curso Mentor Apache

Si se quiere abrir para dejar que se acceda remotamente habra que escribir las siguientes reglas:

# /sbin/iptables -t filter -A INPUT -p tcp -s 0/0 -d 0/0 --dport 3306 -j ACCEPT


//paraTCP
# /sbin/iptables -t filter -A INPUT -p udp -s 0/0 -d 0/0 --dport 3306 -j ACCEPT
//paraUDP

10 de 25
Curso Mentor Apache

Instalacin del soporte para PHP5


Introduccin

PHP es un lenguaje de programacin interpretado, de alto nivel, ejecutado en el servidor y usado frecuentemente para la creacin de
contenidoparawebsdinmicas.Tambinpermitelacreacindeaplicacionesconunainterfazgrficaparaelusuario(GUI),utilizando
extensionesparalaslibrerasQtoGTK.
SucdigoestembebidoenelcdigoHTMLyalserejecutadoenelservidorPHPnuncaesenviadoalcliente.Elservidoresel
quienprocesalapeticindelclienteejecutandoelcdigoPHPydevolviendoelHTMLgenerado.
Sunombre,PHP,esunacrnimorecursivoquesignifica"PHPHypertextPre-processor".
LainstalacinsepuedehacerutilizandolaherramientaSynapticolalneadeorden.
1.InstalacindelpaquetecorrespondienteaPHP5

#apt-getinstallphp5
Leyendolistadepaquetes...Hecho
...................................
Seinstalarnlossiguientespaquetesextras:
apache2-mpm-preforklibapache2-mod-php5php5-common
Paquetessugeridos:
php-pear
LossiguientespaquetesseELIMINARN:
apache2-mpm-worker
SeinstalarnlossiguientespaquetesNUEVOS:
apache2-mpm-preforklibapache2-mod-php5php5php5-common
.......................................
Deseacontinuar[S/n]?

2.SoportedePHP5paraBBDD
Comovamosatrabajarconelmdulophp5-mysqlquepermiteaPHPdisponerdesoportedebasededatosMySQL,loinstalamos:

#apt-getinstallphp5-mysql
...................................
SeinstalarnlossiguientespaquetesNUEVOS:
php5-mysql
............................................
(Leyendolabasededatos...
Desempaquetandophp5-mysql(de.../php5-mysql_5.2.1-0ubuntu1.4_i386.deb)...
Configurandophp5-mysql(5.2.1-0ubuntu1.4)...
Nosquedarnporinstalarlospaqueteslibapache2-mod-php5 y phpMyAdmin.

3.Instalacindelibapache2-mod-php5

libapache2-mod-php5esunmduloparaApache2quepermitelaautenticacinHTTPcontralainformacinalmacenadaenunabase
dedatosdeMySQL.

#apt-getinstalllibapache2-mod-php5
libapache2-mod-php5yaestensuversinmsreciente.

4.Apache2funcionando
Comprobar que el servidor Apache2 sigue funcionando correctamente. Para ello abrimos el navegador web y escribimos
http://servidor.apache2.comydeberaaparecerlapginadeinicioqueindicaqueelservidorApache2seencuentrainstaladoycorriendo.

5.Ajustedeconfiguracin
Probablementealintentarcargarelmdulo mod_php5 obtengamoselmensajedeerrordequedichomdulonoexiste.Tendremospues

11 de 25
Curso Mentor Apache

quecrearamanolosarchivoscorrespondientesdecargayconfiguracin,ascomolosenlacessimblicos.Paraelloira /etc/apache2
/mods-available/ y editar/crear el archivo php5.conf conlaslneas:

<IfModulemod_php5.c>
AddTypeapplication/x-httpd-php.php.phtml.php3
AddTypeapplication/x-httpd-php-source.phps
</IfModule>

Editar/crearelarchivo php5.loadconlalnea:

LoadModulephp5_module/usr/lib/apache2/modules/libphp5.so

Crearloscorrespondientesenlacessimblicos:

#ln-s/etc/apache2/mods-available/php5.load/etc/apache2/mods-enabled/php5.load
#ln-s/etc/apache2/mods-available/php5.conf/etc/apache2/mods-enabled/php5.conf

ReiniciarApache2:

#/etc/init.d/apache2restart

6.Comprobacinglobal
Iraldirectoriodondeestnlosdocumentosvisiblesdesdeweb:

#cd/var/www/
Crearelarchivoinfo.phpconelsiguientecontenido:

#viinfo.php
<?php
phpinfo();
?>
Abrirelnavegadorwebyescribirhttp://servidor.apache2.com/info.phpyaparecerlainformacindePHP5.

12 de 25
Curso Mentor Apache

Instalacin y configuracin de phpMyAdmin


Introduccin

phpMyAdminesunaherramientaescritaenPHPparallevarlaadministracindeMySQLvaweb.PermitecrearyeliminarBBDD,crear,
eliminarymodificartablas,borrar,editaryaadircampos,ejecutarcualquiersentenciaSQL,administrarclavesyprivilegios,etc.Disponible
bajolalicenciaGPL.
SuponemosqueApache2,MySQLyPHP5estnfuncionandocorrectamenteenelsistema.
InstalamosahoraphpMyAdminqueesunaherramientaparalaadministracindeMySQLsobrelaweb.Susfuncionesson:

crearyborrarbasesdedatos
crear,copiar,borrarymodificartablas
eliminar,editaryaadircampos
ejecutarcualquiersentenciaSQL
gestindeclaves
exportareimportardatosalosvaloresdeCSV
administrarservidoresybasesdedatossencillas
comprobarlaintegridadreferencial

Instalacin

InstalacindephpMyAdmin:

#apt-getinstallphpmyadmin
Leyendolistadepaquetes...Hecho
........................................
Paquetesrecomendados
php5-mcryptphp4-mcryptphp5-gdphp4-gd
SeinstalarnlossiguientespaquetesNUEVOS:
phpmyadmin
.........................................
Configurandophpmyadmin(2.9.1.1-2ubuntu1)

La instalacin crea un enlace simblico en el directorio /var/www/ apuntando a phpmyadmin, que realmente est instalado en
/usr/share/phpmyadmin.

#ls-l/var/www
lrwxrwxrwx1rootroot212006-05-2809:09phpmyadmin->/usr/share/phpmyadmin

Ahorasedebeconfigurar phpmyadmin parapoderaccederalmediantecontrasea.Esunamedidadeseguridadquesedebeteneren


cuenta.
Para ello modificamos el archivo de configuracin de phpmyadmin que es /etc/phpmyadmin/config.inc.php y descomentamos
algunasdesuslneas.

#vi/etc/phpmyadmin/config.inc.phpo
#gedit/etc/phpmyadmin/config.inc.php

1.Tipodeautenticacin
Puedesermediantecookies,httpoentrarsinpedircontrasea(config).Pordefectoladejamosencookie.Eliminarloscaracteres'//'enla
lneasiguiente:

$cfg['Servers'][$i]['auth_type']='cookie';

13 de 25
Curso Mentor Apache

2.Usuarioadministrador
Indicaquusuarioseconectaralasbasesdedatos.PordefectovieneelusuariorootdeMySQL.Serecomiendaaadirotrousuariocon
algunosprivilegiosderoot,yasmanejarlasbasesdedatosconl,yaqueconrootpuedeserpeligroso.Nosotroshemosutilizadomysql.

$cfg['Servers'][$i]['user']='mysql';

3.Contraseaadministrador
Indicalacontraseaasignadaalusuarioespecificadoen /etc/mysql/my.cnf.

$cfg['Servers'][$i]['password']='contrasea';

4.ReiniciarlosserviciosdeMySQLyApache2

#/etc/init.d/apache2restart
#/etc/init.d/mysqlrestart

5. Abrir phpMyAdmin
Ir al navegador y escribir http://servidor.apache2.com/phpmyadmin. Una vez realizada la validacin vemos el interfaz de
phpMyAdmin.
LautilizacindelaherramientaexcedelosobjetivosdelcursodeApache2.Encualquiercasoremitimosalalumnoalapginaoficialde
phpMyAdmin(http://www.phpmyadmin.net/home_page/index.php)dondeexisteabundanteinformacinsobreelusodeestaaplicacinweb.

14 de 25
Curso Mentor Apache

Windows:

15 de 25
Curso Mentor Apache

Instalacin MySQL (v.5.0)


Instalacin

Desde http://dev.mysql.com/downloads/mysql/5.0.html#win32 descargamos el archivo mysql-essential-5.0.45-


win32.msi y procedemos a su instalacin.

Seleccionamos la opcin "Custom" y seleccionamos el directorio donde queremos instalarlo. Para ello pulsamos el botn
"Change" y escribimos "C:\MySQL\MySQLServer5.0\".

Nos muestra un resumen de las opciones seleccionadas:

Comienza la instalacin:

En la ltima pantalla nos indica si queremos ahora realizar la configuracin del servidor MySQL ahora.

Continuamos con la configuracin de MySQL:

Indicamos que queremos hacer la configuracin detallada y que nuestra mquina ser de desarrollo.

Vamos a utilizar una base de datos multifuncional.

Indicamos, aproximadamente, el nmero de conexiones concurrentes al servidor MySQL.

Opciones de red que dejamos con los valores por defecto:

Seleccin del conjunto de caracteres:

Queremos que MySQL se ejecute como un servicio ms de Windows XP e incluimos el directorio bin del MySQL en el
path del sistema:

Pregunta si queremos utilizar MySQL con el usuario root asignndole una contrasea, o si queremos crear un usuario
annimo, que es menos seguro. Si lo necesitamos marcamos la casilla permitiendo acceso desde el exterior.

16 de 25
Curso Mentor Apache

Termina la configuracin.

Con estos pasos ya disponemos de MySQL instalado y configurado.


El archivo utilizado para la configuracin de MySQL es my.cnf y segn nuestra instalacin est en C:\MySQL\MySQL
Server5.0\.

17 de 25
Curso Mentor Apache

Instalacin del soporte para PHP5


Instalacin

Revisamos los pasos a seguir que ya fueron explicados en el Captulo 8.


1. Iniciar la sesin en Windows XP como Administrador.
2. Descargar el paquete de PHP 5.2.4 (php-5.2.4-Win32) desde www.php.net. Es importante tener cuidado de NO
BAJAR el instalador ya que no hace completamente bien la instalacin para Apache como servidor web, al menos y de
momento en esta versin.
3. Extraemos el archivo zip en una carpeta con un nombre como C:\PHP.
Configuracin:
1. Ir a C:\PHP y seleccionar todos los archivos del tipo dll (libreras dinmicas). Ahora hay que copiarlos en
C:\WINDOWS\system32.
2. Editar el archivo C:\Archivos de programa\Apache Software Foundation\Apache2.2 \conf\httpd.conf y
descomentamos la lnea que carga el mdulo correspondiente a PHP5:

LoadModule php5_module "C:/PHP/php5apache2_2.dll"

3. Ahora dentro de la seccin <IfModule mime_module> aadir la lnea siguiente:

<IfModule mime_module>
....................................
AddTypeapplication/x-httpd-php.php
.................................................

Con esta lnea estamos diciendo que se interpreten los archivos con extensin .php (tipos mime).
4. El archivo de configuracin de PHP se llama php.ini. Al instalar por defecto se crea uno llamado php.ini-dist.
Cambiar el nombre a php.ini dejndolo en el directorio donde est inicialmente.
5. En el archivo de configuracin de Apache httpd.conf hemos de indicar donde debe buscar este archivo php.ini.
Aadir la siguiente lnea, por ejemplo, despus de la linea de LoadModule.

PHPIniDir C:/PHP

6. Al acceder a nuestro servidor siempre se muestra el archivo indicado en la directiva DirectoryIndex. La modificamos
para siempre cargue un archivo index.php que nosotros preparamos. La directiva debe quedar as:

DirectoryIndex index.php index.html

Sino existe un archivo index.php buscar el siguiente de la lista (index.html).


7. Creamos un archivo index.php en C:\Archivosdeprograma\ApacheSoftwareFoundation\Apache2.2\htdocs
con el cdigo siguiente:

<?phpphpinfo();?>

8. Guardar los cambios del archivo httpd.conf y reiniciar el servidor Apache2. Si aparece la siguiente informacin es
que PHP ha sido bien instalado y est funcionando enlazado con Apache2.
9. Editar el archivo index.phpy cambiar el cdigo por este otro que dejamos como definitivo:

<p>Estapginahasidocreadaalas<b>
<?phpechodate("h:i:sa",time());?>
</b>enunordenadorconPHP5funcionando.</p>
<html><body><h1>Servidorweb</h1></body></html>

18 de 25
Curso Mentor Apache

Volver otra vez a probar en el navegador.

19 de 25
Curso Mentor Apache

Instalacin de phpMyAdmin
Contenido

Descargar de la URL http://sourceforge.net/project/ el archivo phpMyAdmin-2.11.0-rc2-all-languages.zip.

Hay que extraer el archivo .zip en la carpeta raz del servidor web C:\Archivos de programa\Apache Software
Foundation\Apache2.2\htdocs.

La carpeta generada se llama phpMyAdmin-2.11.0-rc2-all-languages y le cambiamos el nombre a phpmyadmin, de


forma que quedaria algo as: C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs
\phpmyadmin

Para la configuracin de phpMyAdmin editamos (WordPad) el archivo config.inc.php. No existe como tal, pero hay
un archivo de ejemplo config.sample.inc que renombramos a config.inc.php. Buscamos las lneas:

$cfg['blowfish_secret']='acegikm';

Le asignamos una cadena de caracteres cualquiera que servir de semilla para la encriptacin de contraseas al usar
la autenticacin con cookies. Salvar los cambios.
Editamos el archivo php.ini y eliminamos el ';' de la lnea:

extension=php_mysql.dll

Por ltimo copiamos el archivo libmySQL.dll que se encuentra en la ruta donde se instal mysql (C:\MySQL\MySQL
Server5.0\bin) y lo pegamos en C:\WINDOWS\System32.

libmySQL.dll

Reiniciamos Apache2 y MySQL. Probamos que la instalacin se hizo bien yendo a http://localhost/phpmyadmin/.

20 de 25
Curso Mentor Apache

Glosario
Glosario Unidad 10

Concepto Definicin

Base de Datos Conjuntodedatosrelacionadosentresyalmacenadosentablasquefacilitansuposterioracceso.

CSV CommaSeparatedValues,ValoresSeparadosporComas.Esunaformageneralizadadeestructurarbasesde
datosdondeseutilizancomas(,)enarchivosdetextoparaindicarcuandoacabaunacolumnayempiezalaotra.

GTK+ Esunabibliotecaderutinasparadesarrollarinterfacesgrficasdeusuario(GUI)enentornosgrficosGNOME,
XFCEdesistemasGNU/Linux.

Lenguaje interpretado Lenguajedeprogramacin diseado para ser ejecutado por medio deun intrprete que traduce el programa a
cdigofuente.Tambinsellamanlenguajesdescript.

Lenguaje alto nivel Lenguajedeprogramacincuyasinstruccionessonsimilaresallenguajehumanoyquenecesitaser


traducidoaunlenguajedebajonivelqueelsistemapuedaentender.

PHP PHP es un lenguaje de programacin interpretado usado frecuentemente para la creacin de contenido para
webs dinmicas. Tambin permite la creacin de aplicaciones con una interfaz grfica para el usuario (GUI),
utilizandoextensionesparalaslibrerasQtoGTK.

Qt Esunabibliotecamultiplataformaparadesarrollarinterfacesgrficasdeusuario(GUI)creadaporlacompaa
noruegaTrolltechyutilizadaenKDE(entornogrficoparasistemasGNU/Linux).

Sistema Gestor de Softwareespecficoutilizadocomointerfazentrelasbasesdedatosylasaplicacionesquelasutilizan.


Bases de Datos

Tabla Conjuntoderegistros(tuplas)quealmacenandatoshomogneos.

Otros Glosarios

Otros glosarios relacionados con la informtica y el mundo web.


Se pueden visitar las webs siguientes:

ATI: dispone de un glosario completo de trminos informticos en http://www.ati.es/novatica/glosario/glosario_internet.html


Microsoft: http://msdn.microsoft.com/es-es/library/aa302380.aspx

21 de 25
Curso Mentor Apache

Fuentes de informacin
Documentos y enlaces de inters

1. Gua de Ubuntu: http://www.guia-ubuntu.org/index.php?title=Servidor_web


2. Pgina oficial de apache: http://www.apache2.es/2.2.2/

22 de 25
Curso Mentor Apache

Resumen final
Sntesis de la Unidad 10 'Instalacin'

Lospuntosadestacardeestaunidadsonlossiguientes:

1. MySQLesunSistemaGestordeBasesdeDatosRelacional(SGBDR).
2. UnSistemadeGestindeBasesdeDatos(SGBDR)esunaaplicacin formadaporunconjuntodeprogramasquepermitencreary
gestionarbasesdedatos(BBDD).
3. Elarchivo de configuracin de MySQL /etc/mysql/my.cnf estdivididoensecciones.
4. PHPesunlenguajedeprogramacininterpretado,dealtonivel,ejecutadoenelservidoryusadofrecuentementeparalacreacinde
contenidoparawebsdinmicas.Tambinpermitelacreacindeaplicacionesconunainterfazgrficaparaelusuario(GUI),utilizando
extensionesparalaslibrerasQtoGTK.
5. phpMyAdminesunaherramientaescritaenPHPparallevarlaadministracindeMySQLvaweb.PermitecrearyeliminarBBDD,
crear,eliminarymodificartablas,borrar,editaryaadircampos,ejecutarcualquiersentenciaSQL,administrarclavesyprivilegios,
etc.DisponiblebajolalicenciaGPL.

23 de 25
Curso Mentor Apache

Autoevaluacin Unidad 10
Autoevaluacin

El cuestionario de autoevaluacin de la Unidad 10 est disponible en la plataforma Mentor (https://centrovirtual.educacion.es/).

24 de 25
Curso Mentor Apache

Este artculo est licenciado bajo Creative Commons Attribution Non-commercial 3.0 License
Unidad 10

25 de 25

Das könnte Ihnen auch gefallen