Sie sind auf Seite 1von 10

Configuracin de apache

1. Qu es apache, y qu alternativas hay en el mercado?


Apache es un servidor e! gratuito, potente y que nos ofrece un servicio esta!le y sen"illo
de mantener y configurar. #s indiscuti!lemente uno de los mayores logros del $oftare
%i!re.
&estacaremos las siguientes caracter'sticas(
) #s multiplataforma, aunque idealmente est* preparado para funcionar !a+o linu,.
) -uy sen"illo de configurar.
) #s .pen)source.
) -uy /til para proveedores de $ervicios de 0nternet que requieran miles de sitios peque1os
con p*ginas est*ticas.
) 2mplias li!rer'as de 343 y 3erl a disposicin de los programadores.
) 3osee diversos mdulos que permiten incorporarle nuevas funcionalidades, estos son muy
simples de cargar.
) #s capa" de utili"ar lengua+es como 343, 5C%, 3ython, etc.
#n el mercado podemos encontrar otras alternativas, entre las m*s importantes
comentaremos las
siguientes(
A OLServer(
) #s .pen)source.
) -e+ora varias deficiencias de Apache.
) $e !asa en un desarrollo por threads, con lo cual se reduce la carga so!re la memoria de
procesos.
) 6so m*s eficiente de las cone,iones a !ases de datos 7es una de sus principales
caracter'sticas8.
) #s utili"ado por A.%, el proveedor de servicios de internet 70$38 m*s grande del mundo.
) -ultiplataforma.
IIS (Internet Information Server):
) &esarrollado por -icrosoft.
) $lo funciona !a+o 9indos.
) -uy f*cil de instalar.
) 3roporciona A$3:s, que facilitan el desarrollo de aplicaciones.
) #s un softare propietario, con lo cual su uso tiene un coste.
) 5iene numerosos fallos de seguridad.
" Servlet Engines" y "Java Application Server":
) $u representant m*s conocido es 5omcat, desarrollado por $un -icrosystem:s.
) ;equiere de un <&= 7><ava &evelopment ?it>8 para funcionar.
) @ormalmente se usa un >$ervidor de p*ginas> 7Apache, A.%, etc.8 en con+uncin con un
>$ervlet #ngine>, dado que el primero es mucho m*s eficiente a la hora de devolver una
p*gina 45-% est*tica.
A. .pciones para definir la configuracin de apache
3ara definir la configuracin de apache tenemos dos opciones(
) Bichero httpd.conf
) Bichero .htaccess
3rimero de todo comentaremos qu efectos tiene cada uno de los ficheros so!re la
configuracin del dominio.
#n el caso del fichero httpd.conf estamos definiendo una configuracin glo!al para todos
los dominios que se alo+en en el servidor donde se encuentra dicho fichero. #n el caso del
fichero .htaccess slo se modificar* la configuracin del dominio en el cual est alo+ado
ste.
Cuando apache de!e devolver una p*gina e!, en primera instancia lee el archivo
httpd.conf, y en segunda instancia el archivo .htaccess, con lo cual siempre tendr* prioridad
el segundo.
3asamos a comentar unos cuantos detalles de cada uno de los ficheros de configuracin(
Fichero httpdconf:
#n este fichero est* incluida toda la configuracin de apache, siempre y cuando no
tengamos la configuracin en varios ficheros, de forma distri!uida, 7la distri!ucin de linu,
$use, instala apache por defecto en varios ficheros8, para principiantes recomiendo un solo
fichero, si se es un usuario m*s avan"ado recomiendo el uso de ficheros separados.
@.5A( #n el caso que el archivo de configuracin est distri!uido en varios archivos,
dentro del fichero httpd.conf tendremos indicada la ruta a cada uno de los ficheros y los
par*metros que podremos modificar en ellos. 3or defecto apache carga la configuracin que
est definida en todos los ficheros que tengan e,tensin >.conf>.
Fichero htaccess:
#ste fichero se u!ica en el directorio rai" donde esten los archivos de la p*gina e!.
-ediante ste podremos definir par*metros espec'ficos para el dominio que lo alo+a. #s
muy usado en los hostings, dado que evidentemente no pueden de+ar que los usuarios
cam!ien la configuracin del archivo httpd.conf seg/n las necesidades de su dominio.
Binalmente comentaremos un par de propiedades que nos podr'a interesar cam!iar
mediante el fichero .htaccess.
6n e+emplo ser'a la codificacin de la p*gina e!. 3ensemos por e+emplo que el hosting
que hemos contratado tiene configurado que nuestras p*ginas est*n codificadas mediante
65B)C, con lo cual los navegadores interpretar*n el contenido seg/n sta codificacin. $i
en cam!io nosotros queremos utili"ar la codificacin 0$.)CCDE)1 de!emos >so!reescri!ir>
esta propiedad, por lo tanto incorporaremos la siguiente sentencia en el archivo .htaccess(
AddDefaultCharset ISO-8859-1
.tra caracter'stica muy utili"ada en los ficheros .htaccess es la que nos permite cam!iar
propiedades de 343, con lo cual no tendremos que tener acceso al fichero php.ini para
poder configurar ciertas caracter'sticas. 3ara cam!iar una propiedad de 343 utili"aremos la
siguiente sinta,is(
php_flag "nombre propiedad" "valor"
3or e+emplo, para indicar a apache que deseamos cargar las sesiones a travs de una coo?ie
en ve" de pasarlos por la url de!emos usar el siguiente comando(
php_fla session!use_onl"_#oo$ies on
Como vemos, el fichero .htaccess es una herramienta muy potente que se pone a
disposicin del administrador de la p*gina e! para poder personali"ar el servidor apache
que nos ofrece el hosting que contratemos.
#n las siguientes secciones nos centraremos en las propiedades que podemos modificar
dentro del fichero httpd.conf, a/n as' gran parte de ellas est*n disponi!les tam!in para el
fichero .htaccess. $i queremos compro!ar la compati!ilidad de estas para el fichero
.htaccess solo de!emos dirigirnos a la p*gina
http(FFhttpd.apache.orgFdocsFA.GFmodFdirectives.html y !uscar las especificaciones para cada
una de las directivas que necesitemos usar. #n las caracter'sticas de la directiva se indica si
se puede usar en el fichero .htaccess o no.
H. 0nvocacin del servicio de apache
Cada uno de los cam!ios que hagamos en el fichero httpd.conf de!e venir acompa1ado del
reinicio del servicio de apache, dado que de lo contrario no tendr*n efecto. @o es as' para
los cam!ios que se efectuen en el fichero .htaccess, estos ser*n tenidos en cuenta cuando se
haga una nueva peticin de la p*gina e!.
3ara poner en marcha apache, de!emos invocar el servicio que inicia el demonio. $i
deseamos que durante el inicio del apache se nos muestren los mensa+es que va
devolviendo el servicio de apache por pantalla, de!emos usar la directiva apachectl, en el
caso que no deseemos que se muestren los mensa+es podemos usar la directiva httpd.
5anto apachectl, como httpd aceptan los par*metros start, stop y restart.
3ara reiniciar el servicio de!eremos usar el siguiente comando(
%et#%init!d%apa#he& restart 7#n el caso que usemos ApacheA8
%et#%init!d%apa#he restart 7#n el caso que usemos Apache 1.H8
#n el caso que estemos tra!a+ando so!re indos de!emos seguir los siguientes pasos(
Ini#io-'(anel de #ontrol-')erramientas administrativas-'Servi#ios-'Apa#heI
I#l nom!re del proceso de apache puede variar seg/n la versin de apache que tengais
instalado o si usais alg/n paquete que incluya mysql, php y apache 7como por e+emplo
ApacheA5riad8. #stos paquetes son muy /tiles para los rogramadores que necesitan instalar
un entorno de preproduccin o !ien para principiantes.
J. &efinicin de las varia!les m*s importantes
#n esta seccin vamos a definir las varia!les que m*s importancia tienen durante la
configuracin de apache. Kstas nos van a permitir optimi"ar la respuesta a la hora de servir
las p*ginas y me+orar la seguridad del servidor.
Server!oot "etc"httpd"
) &irectorio en el cual se encuentran los ficheros de configuracin de apache.
#imeo$t %&&
) 5iempo 7en segundos8 antes de reci!ir una se1al de timeout, que significa que la p*gina no
ha podido ser cargada por alg/n motivo.
'ser apache
) 6suario que va a e+ecutar el proceso de apache. -ucho cuidado con esta varia!le, dado
que tiene gran importancia a la hora de tener un servidor seguro. &e!emos asegurarnos que
el usuario apache tenga unos privilegios muy limitados, a poder ser solo de escrituraFlectura
so!re los directorios utili"ados para guardar la p*gina y de acceso a la !ase de datos.
ServerAdmin admin(localhost
) Cuenta de correo donde se van a enviar los emails de aviso en caso de que apache de+e de
responder por alg/n motivo.
)oc$ment!oot "*e+"contenido"
) &irectorio donde se encuentran los ficheros de la p*gina e!. Aqu' guardaremos el
repositorio de la p*gina, y por lo tanto ser* donde los usuarios tengan acceso.
;ecomendamos tener mucho cuidado en el tipo de ficheros o su!directorios a los cuales
tienen acceso los usuarios, stos los podemos proteger mediante el tag LFfileMLFfileM o !ien
LdirectoryM LFdirectoryM. %a sinta,is de stos se muestra en secciones posteriores.
AccessFile,ame htaccess
) @om!re del fichero que va a contener informacin suplementaria de configuracin del
apache. %o hemos mencionado anteriormente.
) 3ara !loquear el acceso a este fichero a los usuarios 7dado que se tiene que u!icar en el
directorio especificado por &ocument;oot se de!e usar la siguiente sentencia(
*files + ",-!ht"'
Order allo./ den"
Den" from all
*%files'
Con estas sentencias estamos indicando que los directorios que empie"en por .ht no sean
visi!les para los usuarios.
ErrorLog logs"error-log
) Archivo donde se registrar*n los errores que se produ"can durante el inicio o e+ecucin de
apache, y que por lo tanto de!emos tener muy presente cuando tengamos pro!lemas con
apache.
.$stomLog logs"access-log com+ined
) Archivo donde se registrar*n los accesos a la p*gina e!. $e guardar* el acceso, el agente
y el referer.
) $i queremos que se registren el agente y el referer en archivos diferentes de!emos usar las
siguientes sentencias(
) .$stomLog logs"agent-log agent Nuarda los agentes.
) .$stomLog logs"referer-log referer Nuarda los referers.
Add)efa$lt.harset ISO/0012/3
) &efinicin del tipo de condificacin. 0$.)CCDE)1 es un estandard muy e,tendido de
codificacin, ahora !ien, para internacionali"ar la e! se puede usar tam!in el charset
65B)C. #s muy recomenda!le definir un charset y no de+ar que el navegador lo esco+a por
defecto, dado que la interpretacin del tipo de codificacin puede no ser correcta y la
p*gina
no se ver* correctamente.
Error)oc$ment 4&4"4&4html
) Archivo que se va a mostrar al producirse un error JGJ. #sta misma sinta,is sirve para los
otros tipos de error, por e+emplo(
) #rror&ocument HGAFHGA.html 7donde HGA.html es el nom!re que nosotros le damos al
archivo, lo escogemos nosotros8.
#videntemente hay muchas m*s propiedades que entran en +uego a la hora de configurar
apache, para encontrar una descripcin de cada una de ellas os remito a la siguiente p*gina(
http(FFhttpd.apache.orgFdocsFA.GFmodFdirectives.html.
J. Cargar un mdulo
5al como hemos comentado en la primera seccin, una de las principales caracter'sticas de
apache es que nos permite cargar una serie de mdulos que no vienen instalados por
defecto. -ediante stos podremos implementar p*ginas con lengua+es como 343, 3ython,
conectarnos a una !ase de datos, etc. #stos mdulos son de tipo &$., mdulos que se
cargan en tiempo de e+ecucin, y que por lo tanto no consumen memoria si no son
necesarios.
3asamos a comentar como podemos cargar estos mdulos, sin em!argo ya avan"amos que
su carga es e,tremadamente simple.
3rimero de todo nos de!emos asegurar que el mdulo que deseamos cargar e,iste en el
directorio donde stos est*n guardados. @ormalmente los podremos encontrar en el
directorio path_apa#he%modules.
#l segundo paso es indicarle a apache que de!e cargar el mdulo(
3ara indicar el directorio y nom!re del fichero, de!emos usar la siguiente sentencia(
Load5od$le nom+re-mod$lo mod$les"nom+re-archivoso
3or e+emplo(
Load5od$le access-mod$le mod$les"mod-accessso
Oemos que la sinta,is es muy simple, solo de!emos indicarle que tenemos disponi!le un
mdulo espec'fico mediante %oad-odule, el mdulo que estamos cargando 7en este caso
accessPmodule8, y a continuacin le indicamos donde se encuentra, 7en este caso
modulesFmodPaccess.so8.
&espus de reiniciar apache, si no hay ning/n pro!lema con la sinta,is anteriormente
comentada y el fichero que implementa el mdulo se encuentra disponi!le, el mdulo ser*
cargado.
D. &efinicin de permisos de los directorios
Anteriormente hemos comentado como se proteg'a el fichero .htaccess, para ello hemos
usado una sentencia que prohi!e la lectura de dicho fichero a los usuarios. Ahora
procederemos a comentar !revemente la sinta,is que siguen este tipo de sentencias.
3ara definir los directorios a los cuales queremos permitirFdenegar el acceso a los usuarios
vamos a usar la directiva(
*Dire#tor" %'
%%dire#tivas para permitir o denear el a##eso al dire#torio
*%Dire#tor"'
$i queremos restringir o permitir la lectura en un fichero vamos a utili"ar la siguiente
sinta,is(
*0ile %'
%%dire#tivas para permitir o denear un fi#hero a los usuarios
*%0ile'
3ara especificar el directorio al cual queremos permitir o restringir el paso de!emos
indicarlo mediante su ruta, o !ien mediante una e,presin regular, si estamos tratando con
una serie de ficheros que siguen un patrn espec'fico.
3or e+emplo, si queremos denegar el paso a un directorio espec'fico(
*Dire#tor" %usr%private_dire#tor"'
Order Den"/Allo.
Den" from all
*%Dire#tor"'
) Con esta sentencia conseguimos que los usuarios no puedan acceder al directorio
FusrFprivatePdirectory.
$i en cam!io queremos restringir el acceso a un cierto tipo de ficheros, vamos a usar una
e,presin regular, por e+emplo(
*files + ",-!ht"'
Order allo./ den"
Den" from all
*%files'
) #n este caso denegamos la lectura de los ficheros que empie"en por .ht 7como por e+emplo
el fichero .htaccess8.
$i queremos permitir el paso a los directorios especificados o !ien denegarlo, seguiremos la
siguiente sinta,is(
) 3ara denegar el paso( )eny from $s$arios, donde usuarios puede ser all 7para denegar el
paso a 5.&.$ los usuarios8 o !ien una 03, etc.
) 3ara permitir el paso( Allo* from $s$arios, donde usuarios puede ser all 7para denegar el
paso a 5.&.$ los usuarios8 o !ien una 03, etc.
Q. Oirtualhosts
-ediante los virtualhosts podremos tener varios dominios apuntando a una misma
m*quina. &entro de cada virtualhost definiremos las directivas espec'ficas para el dominio
que est representando.
Ksta es otra forma de definir la configuracin de apache de modo local, con lo cual slo
afectar* a un dominio o su!dominio 7recordemos que el fichero .htaccess sirve para lo
mismo8.
3odemos definir un virtualhost a travs de una 03 o !ien a travs de un name)!ased virtual
host, para el segundo caso utili"aremos un I para representarlo.
3or lo tanto la sinta,is de un virtualhost es la siguiente(
1ame2irtual)ost ip_ma3uina485
*2irtualhost 6'
%% Dire#tivas espe#7fi#as del virtualhost!
*%2irtualhost'
.!servamos que hemos implementado la definicin de un virtualhost a travs de un name)
!ased virtual host. 3ara ello hemos utili"ado el par*metro @ameOirtual4ost, la 03 de la
m*quina donde se encuentra instalado apache, y el puerto por el cual escuchar*, en este
caso el puerto CG.
$eguidamente hemos definido el espacio en el cual implementaremos los detalles
espec'ficos del dominio que representar* el virtualhost mediante los tags LOirtualhostM y
LFOirtualhostM.
@.5A( ;ecordar que para que los cam!ios en el fichero de configuracin httd.conf tengan
efecto, se de!e reiniciar el servicio de apache.
R. Oaria!les importantes
Acto seguido pasamos a detallar algunas de las varia!les que suelen utili"arse en los
virtualhosts. %a mayor'a de las propiedades ya fueron comentadas anteriormente, con lo
cual no las volveremos a comentar.
ServerAdmin admin8lo#alhost
Do#ument9oot "et#%httpd"
Server1ame dominio!#omCustom:o los%a##ess_lo
Dire#tor"Inde; inde;!php
&efine el dominio con el cual tendr* efecto la configuracin que definamos en este
virtualhost.
<rror:o los%error_lo
0ndica el fichero que se va a cargar en el caso que apache reci!a la peticin de cargar un
directorio sin especificar ning/n fichero.
3or e+emplo(
$i apache reci!e la url http(FF.dominio.comF por defecto va a cargar el fichero
inde,.php. $i hacemos una lista de ficheros en la misma directiva se va a intentar cargar
cada uno de los ficheros por orden de colocacin en la lista.
php_value mai#_3uotes_p# 5
#sta directiva va a hacer que todos los car*cteres :, >, S y @6%% sean escapados con una
!arra invertida autom*ticamente. Con sto vamos a conseguir evitar muchos de los ataques
m*s sen"illos de sql0n+ection.
%a directiva phpPvalue sirve para redefinir las propiedades que se encuentran en el fichero
php.ini, que es el fichero de configuracin de php. #s muy /til cuando tenemos m*s de un
dominio apuntando al mismo host, ya que podemos modificar ciertas directivas de php para
cada uno de los dominios. $i queris una gu'a de las directivas del fichero php.ini os podis
dirigir a sta p*gina.
C. ;erite;ules
;erite;ule rela_de_apa#he
-ediante esta directiva podremos convertir p*ginas din*micas en est*ticas. #n este art'culo
no vamos a detallar el funcionamiento de las ;erites;ules, sin em!argo intentaremos dar
una idea de stas.
%a mayor'a de las veces implementamos p*ginas e! en lengua+es din*micos, estos nos
permiten pasar una serie de varia!les a travs de la url, como ser'a el caso de este e+emplo(
http(FF.dominio.comFdirectorio1Ffichero.php?var1T1UvarATA
%as desventa+as que tiene una url de este estilo sn las siguientes(
) %os !uscadores slo aceptan cierto n/mero de varia!les pasadas a travs de la url.
) 3ara los usuarios es muy complicado guardar o memori"ar url:s tan complicadas.
) #l posicionamiento en los !uscadores de una url din*mica es muy complicado.
3or todos estos puntos, las ;erite;ules son cada ve" m*s importantes en el proceso de
dise1o de una p*gina e!.
Cmo funciona una ;erite;ule? -uy f*cil, cuando apache reci!e una url comprue!a que
la sinta,is de sta coincida con alguna de las e,presiones regulares definidas en las
rerite;ules, en el caso de coincidir aplica la ;erite;ule, la cual aplica alg/n tipo de
proceso, como puede ser una redireccin. Con un e+emplo se ver* mucho m*s claro(
$upongamos que queremos redireccionar las p*ginas que empie"an por >patata> a un
fichero espec'fico. %o que har'amos ser'a hacer una ;erite;ule con una e,presin regular
que identificara estas p*ginas, y que una ve" las hu!iera identificado las reenviara al fichero
que le especificamos.
%a regla quedar'a de la siguiente forma(
!e*rite!$le 6"patata-(7)"8 "directorio9"fichero9php":3 ;L<
3ara poder utili"ar ;erite;ules de!emos tener en cuenta dos puntos. 3rimero de!emos
cargar el mdulo mod-re*riteso, tal como hemos especificado en p*ginas anteriores, y
segungo introducir la directiva !e*riteEngine On en el virtualhost.
E. 3lataforma %A-3
6na plataforma %A-3 es un con+unto de herramientas opensource que tra!a+ando +untas
nos permiten disponer de un servidor e!. %as herramientas que aglutina el trmino %A-3
sn %inu,, Apache, -y$Q% y 343, 3erl, o 3ython , con lo cual conseguimos todo lo que
de!e tener una plataforma e!, que es un sistema operativo, un servidor e!, una !ase de
datos, y un lengua+e de programacin.
%as plataformas %A-3 est*n siendo muy !ien aceptadas entre los proveedores de servicios
e!.
Como venta+as a destacar(
) #st* compuesta de softare con licencia gratuita.
) #l cdigo de todos sus componentes est* disponi!le, con lo cual se pueden hacer las
modificaciones que se crean oportunas.
1G. ;eferencias
http(FF.apache.orgF )) 3*gina oficial de apache.
http(FF.augcyl.orgFglolFapacheA.html )) gu'a muy completa so!re todos los par*metros
del
fichero de configuracin de apache.
http(FF.programacionphp.net

Das könnte Ihnen auch gefallen