Você está na página 1de 17

ApacheHTTPServer

Fecha:14/03/06 ApacheHTTPServeresunservidorHTTP(depginasweb)decdigoabiertoqueenlosltimos aossehaconvertidoenelmaspopularconun70%delacuotademercado.Puedeinstalarse enLinux,Novell,UnixyWindows. Inicialmente,elservidorApache,aparece comoparcheparaelpopularservidorNCSA HTTPd,peroenlaactualidadelcodigoha sidoreescritoporcompleto. Tabladecontenido


Estructura Instalacin Configuracin

Estructura ElservidorApacheestconfiguradopor mdulos,algunosdeellosvieneninstalados pordefectoyotroslosdeberemosinstalarsi queremosusarlos. Instalacin La forma de instalar apache depender del sistema operativo sobre el cual queremos que funcione, en otros artculos podemos ver cmo instalarloenLinux,Windows... Configuracin El servidor Apache es un servidor muy completo y adems tiene un gran nmero de opciones diferentes que pueden interesarnos, en futuras entregas de este curso veremos donde podemosencontrarlosarchivosdeconfiguracindelapacheycomodebemosmanipularlos

http://www.programacionweb.net/cursos/ Curso Basico Apache2

1.1.Instalacindeapache2enwindows
Fecha:12/11/03 En este artculo os explicar cmo instalar la versin 2.0.48 del servidor HTTP Apache en una maquina en windows para que podais probar vuestras pginas desde http://localhost/, en proximos articulos os comentare cmo instalar PHP y instalar MySQL en este servidor. Pese a que en el artculo se utiliza la versin 2.0.48 de Apache, es recomendable descargar la ltima versin disponible en la pgina de la Fundacin Apache. Una vez hayamos descargado el instalador para windows, ejecutaremos el archivo descargado y nos aparecer una pantalla debienvenidaenlaquepulsaremoselbotnnext.

Al pulsar ese botn nos aparecer una pantalla en la que se nos pedir que aceptemos las condiciones de licencia, seleccionaremos la opcin I accept the terms in the license agreement y pulsaremos el botn Next, entonces nos aparecer una pantalla con informacin en la que pulsaremos Next de nuevo para acceder a la pantalla de informacion del servidor querellenaremosdelasiguientemanera:

http://www.programacionweb.net/cursos/ Curso Basico Apache2

Unavezrellenadoslosdatos,pulsaremosNextparacontinuarlainstalacindelservidor,ahora seleccionaremosTypicalenlapantallatipodeinstalacinydespusdepulsarotravezelbotn Next, dejaremos el valor por defecto (c:\Archivos de Programa\Apache Group) en la ventana carpeta de destino, ahora pulsaremos Next por ltima vez. Finalmente el instalador ya estara preparado para instalar, y despues de cerrar aquellos programas que puedan provocar errores en la instalacin, pulsaremos el botn Install para empezar el proceso de cpia de archivos. Cuando acabe la carga de archivos, veremos una pantalla que nos informara que la instalacin ha sido completada y en la que pulsaremos finish. A partir de este momento ya tendremos nuestro servidor habilitado, y podremos ver el icono de Apache2ennuestrabarradetareas,desdedondepodremospararyreanudarelservicio. Para mostrar pginas, tendremos que guardarlas en la carpeta C:\Archivos de programa\Apache Group\Apache2\htdocs de nuestro ordenador, y podremos acceder a ellas desde el navegador de nuestro ordenador usando http://localhost/ o desde cualquier ordenadordesdehttp://tu_direccion_ip/

http://www.programacionweb.net/cursos/ Curso Basico Apache2

1.2.InstalacindeApacheenLinux
Fecha:02/03/06 EnesteartculoaprenderemosainstalarApacheenunamquinaLinuxdedistintasmaneras: Tabladecontenido

Usandoungestordepaquetes Compilandoelcdigofuente

Usandoungestordepaquetes LaopcinmssencillaparainstalarApacheenLinuxesutilizar,silotenemos,ungestorde paquetes.Enestecasodesdeconsolaintroduciremoslasiguienteorden: 000 aptgetinstallapache2 Compilandoelcdigofuente ParacompilarApachenuestramquinadebertenerinstaladoelsiguientesoftware: gcc(osimilar)CompiladoryconstructorANSI tarHerramientaparacomprimirydescomprimirarchivos wgetHerramientaparaladescargadearchivos ElprimerpasoparalainstalacionesladescargadelcdigofuentedeApache,losejemplosson paralaversin2.2.0,perodebemoshacerloconlaltimaversindisponibleenlawebdela FundacinApache: 000 wgethttp://apache.gva.es/httpd/httpd2.2.0.tar.gz Seguidamentedescomprimimoselficheroqueacabamosdedescargar: 000 tarzxvfhttpd2.2.0.tar.gz Parapoderempezaracompilarapache,primerodeberemossituarnoseneldirectorioque acabamosdedescomprimir:

http://www.programacionweb.net/cursos/ Curso Basico Apache2

000 cdhttpd2.2.0 Esahoracuandopodremoscompilarelcdigofuentequehemosdescargado,peroprimero tenemosqueadaptarloanuestramquina,paraesto,elcodigodescargadoincluyeunscript llamado./configurequepodemosejecutarconalgunparametroquenosinterese,enel ejemploutilizarelparametroprefixparaindicarqueinstaleApacheeneldirectorioraiz. Parasabercualessonlosparametrosquepodemosusar,elscript./configuretieneunaayuda alaquepodemosaccederconelparametro./configureh 000 ./configureprefix=/ Unavezadaptadoelcdigofuente,quesueletardarbastante,podemoscompilarelservidor HTTPusandoelcomandodeGCCmake. 000 make Yfinalmenteinstalaremoselservidoreneldirectorioquehemosindicadoalconelparametro prefix,parahacerlousaremoselcomandomakeinstall,ypuestoquehemosindicadoel directorio/paralainstalacion,primerotendremosqueautenticarnoscmosuperusuario: 000 su 001 #contrasearoot 002 makeinstall Ytenemosnuestroservidorinstaladoeneldirectrio/,sinohubieramosusadoelparmetro prefix,sehabrainstaladopordefectoen/usr/local/apache2

http://www.programacionweb.net/cursos/ Curso Basico Apache2

1.3.Iniciar,reiniciarypararApache
Fecha:02/03/06 ElarchivoejecutabledelservidorHTTPdeApacheeshttpdyseencuentraenelsubdirectrio bindeldirectriodeinstalacin,mientrasestebinarioseestejecutando,elservidorestar funcionando,porestoparaasegurarsufuncionamiento,Apacheseinstalacomoservicioen Windowsycomodemnioenotrossistemasoperativos. Porestopararealizarlasoperacionesdeinicio,reinicioyparadadeberemosseguir procedimientosdistintosparaestosdostiposdeinstalacion. Tabladecontenido

EnWindows Otroscasos

EnWindows AltrabajarcmoserviciodeWindows,tantoparahacerlasoperacionesdeinicio,reinicioy paradadelservicioHTTP,cmoparaqueelservicioinicieautomticamentealiniciarWindows actuaremosigualquecualquierotroserviciodeWindows. Otroscasos Altrabajarcomodemnio,utilizaremoselscriptapachectldelsubdirectriobindeldirectrio deinstalacin,steesunscriptquecumpleelestndar'SysVinit'yqueporlotantotienelos parametrosstart,restart,ystopparainiciar,reiniciarypararelserviciorespectivamente. Enelejemplo,hemosinstaladoapacheen/,sinoesasi,pondremoslarutaantesde/bin 000 /bin/apachectlrestart Parallamarestescript,deberemoshabernosidentificadocomosuperusuarioconelcomando su(exceptosiApachenoescuchaenningnpuertoinferiora1400),ysihemosinstalado apacheenundirectriocontenidoenlavariabledesistemaPATH,podremosllamaral comandodirectamente. Veamosunejemploqueconectacomoroot,miraelcontenidodePATHycomoenel contenidoaparece/bin/,ejecutamoselscriptdirectamente: 000 su 001 #contrasearoot

http://www.programacionweb.net/cursos/ Curso Basico Apache2

002 echo$PATH 003 #/bin/:/usr/bin/:/usr/local/bin 004 apachectlrestart IniciarApacheautomticamente ParaqueelservidorHTTPiniceautomticamentealencenderelsistemaoperativo, tendremosquehacerunenlaceaapachectlenundirectriorcN.doescribirloenrc.local,por ejemplo: 000 echo"/bin/apachectlstart">>/etc/rc.d/rc.local Enesteejemplo,hemosinstaladoapacheen/,sinoesasi,pondremoslarutaantesde/bin

http://www.programacionweb.net/cursos/ Curso Basico Apache2

1.4.ArchivosdeconfiguracindeApache
Fecha:24/03/06 ConfigurarunservidorApachenoesunatareaextremadamentecomplicada,puestoque generalmentenossersuficientecambiaralgunalneadelficherodeconfiguracion,peroeneste manualintentaremosdarunpasomas,comprendiendolaestructuradeficherosde configuracionylasdirectivasmsimportantescontaldepoderhacerunaconfiguracionlimpia. Tabladecontenido

Elficherodeconfiguracinprincipal Losficherosdeconfiguraciondescentralizados

Elficherodeconfiguracinprincipal LaconfiguracindeApacheserealizamedianteunasdirectivasescritasenficherosdetextoque seleenaliniciarelservidorweb,elficherodeconfiguracinprincipalsuelellamarsehttpd.conf. Podemosescogerundirectorioconcretoparaelficherodeconfiguracinprincipalcompilando Apacheconlaopcinf,pordefecto,encontraremosesteficheroencarpetasdiferentes dependiendodelsistemaoperativo: Windows:<apache>/conf/httpd.conf Linux:<basedelainstalacion>/etc/apache/httpd.conf DesdeesteficheropodemoscargarotrosficherosdeconfiguracinusandoladirectivaInclude. Losficherosdeconfiguraciondescentralizados LosficherosdeconfiguraciondescentralizadosnospermitenconfigurarelservidorHTTPanivel dedirectoriosiempreycuandonoslopermitaladirectivaAllowOverride.Pormotivosde rendimientousaremosunicamenteestosficheroscuandonotenemosaccesoalficherode configuracinprincipal. Elnombredelosficherosdeconfiguraciondistribuidossepuededefinirconladirectiva AccessFileNameyserpordefecto.htaccess,situaremoselficheroenelmismodirectrioenel quequeremosquehagaefecto,ysusdirectivasseextendernatodossussubdirectorios. Lasdirectivasde.htaccessprevalecenfrentealasdelosficherosdeconfiguracinprincipal, asimismo,lasdirectivasdeundirectriosobreescibirnlasdesudirectriopadre.

http://www.programacionweb.net/cursos/ Curso Basico Apache2

1.5.DirectivasdeconfiguracindeApache
Fecha:26/03/06 UnadirectivadeconfiguraciondeApacheesunapalabraqueindicaqueparamertode configuracinqueremosmodificar,podemosescribirdirectivasdirectamenteenelficherode configuracinparaquetenganefectoentodoelservidoroenelinteriordeunaseccinde configuracin. Paraescribirunadirectiva,pondremoselnombredeladirectiva(sinimportarmaysculas) seguidodesusparmetrosenunalneadelfichero,esimportantequelamismalneaincluya solamenteunadirectivaocomentarioynuncaunoovariosdecada,veamosunejemplo sencillo: 000 DocumentRoot/usr/web Paraescibirunadirectivaquequeremosqueocupemsdeunalnea,deberemosindicarque ladirectivacontinaenlasiguientelneaponiendounacontrabarra(\)cmoltimocarcter delalnea: 000 DocumentRoot\ 001 /usr/web Podemosdejarlineasenblancosinningnproblemaigualcmotambienpodemosyes recomendaletabularydejarespaciosdelantedelasdirectivasparahacerlaconfiguracinms clara. Lasdirectivasquepodemosusardependendelosmdulosquetenemosinstaladospor defecto,enestemanualveremoslasdirectivasmscomunesdelmdulocore(modulo principalconlasfuncionesbsicasdelservidor)yalgunasdelasmsimportantesdeotros mdulos.

http://www.programacionweb.net/cursos/ Curso Basico Apache2

1.6.SeccionesdeconfiguracindeApache
Fecha:04/04/06 LasdirectivasqueescribimosenlosficherosdeconfiguracindeApacheseaplicanatodaslas pginasdelservidor,paraespecificarunadirectivaqueseapliquesobreunosdeterminados documentos,podemosutilizarseccionesdeconfiguracin. Tabladecontenido

Definirunaseccin Elordendelassecciones Subsecciones

Definirunaseccin Paradefinirunaseccindeconfiguracinloharemosusandounasintaxisparecidaalade HTML,empezandolaseccinconladirectivadeseccinentremenorymayorque<directiva argumento1>,yterminandoconelnombredelamismadirectivatambienentremenory mayorqueperoconunabarradelante</directiva>,todaslasdirectivasentreesasdosmarcas seaplicarnsoloadocumentosquecumplanladirectivadeapertura,veamosunejemplo: 000 <Location/img/> 001 DocumentRoot/var/images/ 002 </Location> Enelejemploanteriordefinimosquelosdocumentosdeldirectorioweb/img/estnenel directrio/var/images/. Elordendelassecciones Enelcasoqueundocumentopudieracumplirdosdirectivasdeseccin,debemosteneren cuentaqueApachelasaplicaenelsiguienterden(demenoramayorprioridad): 1.<Directory> 2.<DirectoryMatch> 3.<Files>y<FilesMatch> 4.<Location>y<LocationMatch> Loquesignificaquecualquierdirectivaaplicablequeseencuentraenunaseccininiciadapor DirectorysersobreescritaporlamismadirectivasiestescritaporejemploenFiles(yaquela segundaserleidadespus),fijarosenelsiguienteejemplo: 000 #Podemosaccederacualquierficherodentrode/php/ http://www.programacionweb.net/cursos/ Curso Basico Apache2
10

001 002 003 004 005 006 007 008 009 010 011

<Location/php/> Orderallow,deny Allowfromall </Location> #Nopodemosaccederaningnficheroadmin.php #tampocoa/php/admin.php <Filesadmin.php> Orderallow,deny Denyfromall </Files>

Adems,lasseccionesconunamismaprefernciaseaplicanenelrdenenelqueestn escritas,porloqueenelsiguientecasoseaplicarasolamentelasegundaseccin: 000 001 002 003 004 005 Subsecciones Podemoscombinarsecciones,escribiendolasunadentrodeotra,parapoderajustarmslos documentosalosqueaplicaremosunseguidodedirectivas,veamosunejemplo: 000 001 002 003 004 005 <Location/php/> <Filesadmin.php> Orderallow,deny Denyfromall </Files> </Location> <Location/img/> DocumentRoot/images/ </Location> <Location/img/> DocumentRoot/var/images/ </Location>

Enesteejemplonopermitimoselaccesoaadmin.phpsiestaen/php/

http://www.programacionweb.net/cursos/ Curso Basico Apache2

11

1.7.DirectoryyDirectoryMatch
Fecha:03/05/06 UtilizamoslasdirectivasdeApache<Directory>y</Directory>o<DirectoryMatch>y </DirectoryMatch>paradelimitarunconjuntodedirectivasqueseaplicarnsolamenteaun directoriodadoysussubdirectriosformandounaseccindeconfiguracin,esunadirectiva desumaimportanciaalahoradedefinirunaconfiguracinespecialparaundirectoriode maneralimpiaenlugardeusarficheros.htaccess. Tabladecontenido

Sintaxisdeladirectiva Comodines Expresionesregulares

Sintaxisdeladirectiva Cuandodefinimosestetipodeseccindeconfiguracin,leindicaremoscmoparmetrola rutadeldirectrio: 000 <Directory/home/wwwroot/personal/> 001 AllowOverrideNone 002 </Directory> Comodines EstarutapodrcontenercomodinesalestiloUnix: *Unoomscaracterescualquieraexcepto'/' ?Unocaractercualquieraexcepto'/' [az]Unrangodecaracteresentreayz,dondeayzpuedenserloscaracteresquedeseemos ([09],[azAZ]...) Deestamanera,porejemplo,paraaplicarunadirectivaatodaslascarpetas'public'dela homedeunusuarioharemos: 000 001 002 003 004 005 <Directory/home/*/public/> AllowOverrideNone #Aplicablea/home/eloi/public/ #Aplicablea/home/pepito/public/ #Noaplicablea/home/eloi/web/public/ </Directory>

http://www.programacionweb.net/cursos/ Curso Basico Apache2

12

Expresionesregulares Igualcmoconloscomodines,podremosusarexpresionesregularesparalarutadel directrio,enestecasopasaremosunparametro'~'aladirectivaDirectoryousando DirectoryMatchseguidodeotroparmetroconlaexpresinregular: 000 001 002 003 004 005 006 007 008 009 010 <Directory~"^/www/.*/[09]{3}"> AllowOverrideNone #Aplicablea/www/231/ #Aplicablea/www/999/ #Noaplicablea/home/www/231/ #Noaplicablea/www/23145/ </Directory> <Directorymatch"^/www/.*/[09]{3}"> AllowOverrideNone #Masdelomismo </DirectoryMatch>

http://www.programacionweb.net/cursos/ Curso Basico Apache2

13

1.8.FilesyFilesMatch
Fecha:03/05/06 UtilizamoslasdirectivasdeApache<Files>y</Files>o<FilesMatch>y</FilesMatch>para delimitarunconjuntodedirectivasqueseaplicarnsolamenteaarchivosconunnombre determinadoformandounaseccindeconfiguracin,esunadirectivadesumaimportanciaa lahoradedefinirunaconfiguracinespecialparauntipodeterminadodearchivos. Tabladecontenido

Sintaxisdeladirectiva Comodines Expresionesregulares

Sintaxisdeladirectiva Cuandodefinimosestetipodeseccindeconfiguracin,leindicaremoscmoparmetroel nombredearchivo: 000 <Filesadmin.php> 001 AllowOverrideNone 002 </Files> Comodines EstenombrepodrcontenercomodinesalestiloUnix: *Unoomscaracterescualquieraexcepto'/' ?Unocaractercualquieraexcepto'/' [az]Unrangodecaracteresentreayz,dondeayzpuedenserloscaracteresquedeseemos ([09],[azAZ]...) Deestamanera,porejemplo,paraaplicarunadirectivaatodoslosarchivos.phpharemos: 000 001 002 003 004 005 http://www.programacionweb.net/cursos/ Curso Basico Apache2
14

<Files*.php> AllowOverrideNone #Aplicableaeloi.php #Aplicableapepito.php #Noaplicableaeloi.phps </Directory>

Expresionesregulares Igualcmoconloscomodines,podremosusarexpresionesregularesparalarutadel directrio,enestecasopasaremosunparametro'~'aladirectivaFilesousandoFilesMatch (preferiblemente)seguidodeotroparmetroconlaexpresinregular: 000 001 002 003 004 005 006 007 008 009 010

<Files~"\.(gif|jpe?g|png)$"> AllowOverrideNone #Aplicableaa.gif #Aplicableaa.jpg #Aplicableaa.jpeg #Aplicableaa.png </Files> <FilesMatch"\.(gif|jpe?g|png)$"> AllowOverrideNone #Masdelomismo </FilesMatch>

http://www.programacionweb.net/cursos/ Curso Basico Apache2

15

1.9.LocationyLocationMatch
Fecha:16/06/06 UtilizamoslasdirectivasdeApache<Location>y</location>o<LocationMatch>y </LocationMatch>paradelimitarunconjuntodedirectivasqueseaplicarnsolamentea peticionesaunaURLdeterminadaformandounaseccindeconfiguracin,seusaparaaplicar unasdirectivasdeterminadasaunasecciondeunsitioweb(porejemploautenticacionHTTP). Tabladecontenido

Sintaxisdeladirectiva Comodines Expresionesregulares

Sintaxisdeladirectiva Cuandodefinimosestetipodeseccindeconfiguracin,leindicaremoscmolaurl: 000 001 002 003 004 Comodines LaURLpodrcontenercomodinesalestiloUnix: *Unoomscaracterescualquieraexcepto'/' ?Unocaractercualquieraexcepto'/' [az]Unrangodecaracteresentreayz,dondeayzpuedenserloscaracteresquedeseemos ([09],[azAZ]...) Deestamanera,porejemplo,paraaplicarunadirectivaatodoslosarchivos.phpharemos: 000 001 002 003 004 005 <Location/a*> AllowOverrideNone #Aplicablea/articulos #Aplicablea/administracion #Noaplicable/foro/asp </Location> <Location/public> OrderAllow,Deny Allowfromall Satisfyany </Location>

http://www.programacionweb.net/cursos/ Curso Basico Apache2

16

Expresionesregulares Igualcmoconloscomodines,podremosusarexpresionesregularesparalaURL,enestecaso pasaremosunparametro'~'aladirectivaLocationousandoLocationMatch(preferiblemente) seguidodeotroparmetroconlaexpresinregular: 000 001 002 003 004 005 006 <LocationMatch"\.(gif|jpe?g|png)$"> AllowOverrideNone #Aplicableaa.gif #Aplicableaa.jpg #Aplicableaa.jpeg #Aplicableaa.png </LocationMatch>

http://www.programacionweb.net/cursos/ Curso Basico Apache2

17

Você também pode gostar