txipi:blog
  • About
  • Not Found? lee esto

Actualizando conocimientos de Apache 1.3 a Apache 2.2

30Nov06

Llevo utilizando apache desde hace bastantes años y he ido migrando de versiones mientras mantenía mi vetusto httpd.conf lleno de comentarios, copy&pastes y demás. Después de unos cuantos problemas con MySQL 5.0 y mis configuraciones de apache, pensé que apache2 podría ser una solución (también llamado a veces “huída hacia adelante” O:-D). Como precisamente lo que más me incomodaba de mi actual estado de configuración del apache era el caos organizativo, me sorprendió la facilidad con que en apache2 se resuelve tener una buena lista organizada de “sitios web” (“sites”, o “virtual hosts” en terminología apache 1.3) y lo elegantemente que se habilitan y deshabilitan los módulos. Este texto no pretende ser un tutorial, solamente una pequeña receta para migrar sitios web de apache 1.3 a apache 2.2 sin comerse mucho la cabeza :-D

 

Crear un VirtualHost en Apache 2

Los VirtualHost o hosts virtuales sirven para poder alojar varios sitios web en un mismo servidor de forma cómoda. En apache2 tenemos dos directorios importantes relacionados con este tema:

  1. sites-available: que contiene la configuración de todos los sitios o VirtualHost definidos en apache2.
  2. sites-enabled: que contiene enlaces a las configuraciones definidas en el directorio anterior, indicando cuáles de ellas están activas.

Dentro de sites-available tenemos la configuración del site por defecto, “default”, que podemos usar como plantilla para nuestros nuevos VirtualHosts.

Dicho esto, podemos crear un nuevo VirtualHost en apache2 siguiendo estos sencillos pasos

1) Hacemos una copia del VirtualHost por defecto:

cd /etc/apache2/sites-available
cp default pruebas

2) Editamos pruebas para cambiar el ServerName y el DocumentRoot, las variables que definen el nombre al que responderá este sitio y la ruta en disco a los ficheros de ese sitio, respectivamente. También estaría bien cambiar la directiva “Directory” para que en lugar de hablar de /var/www hable de la nueva ruta:

ServerName pruebas.dominio.org
DocumentRoot /var/www/pruebas/

<Directory /var/www/pruebas/>

 ...

</Directory>

3) Habilitamos el site, utilizando los comandos para habilitar y deshabilitar sites del apache2:

a2ensite pruebas

4) Recargamos la configuración del apache2:

/etc/init.d/apache2 force-reload

Los comandos para habilitar y deshabilitar sites y módulos en el apache2 tienen nombres bastante lógicos:

  • a2ensite: apache2 enable site, habilita sites.
  • a2dissite: apache2 disable site, deshabilita sites.
  • a2enmod: apache2 enable module, habilita módulos.
  • a2dismod: apache2 disable module, deshabilita módulos.

Habilitar SSL en Apache2

Para habilitar SSL en apache2 hay que seguir unos pasos bastante sencillos:

1) Editar el fichero ports.conf para que el apache2 escuche también el puerto de HTTP-SSL, el 443:

Listen 443

2) Habilitar el módulo de ssl, con la herramienta antes descrita:

a2enmod ssl

3) Crear un nuevo site en sites-available

cd /etc/apache2/sites-available
cp default ssl

4) Modificar el site “ssl” para que escuche en el puerto 443 y que funcione con SSL

NameVirtualHost *:443
<VirtualHost *:443>
       SSLEngine on

5) Crear un fichero de configuracion en /etc/apache2/conf.d/ssl-local indicando dónde residirá el certificado x509 para el cifrado SSL:

SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
SSLCertificateFile /etc/apache2/certs/server.crt
SSLCertificateKeyFile /etc/apache2/certs/server.key

6) Crear el certificado x509 para SSL, mediante openssl:

mkdir /etc/apache2/certs
openssl req -new -x509 -nodes -out server.crt -keyout server.key
mv server.key server.crt /etc/apache2/certs

NOTA: con esta llamada a openssl estamos creando un certificado autofirmado, que puede estar bien para sitios personales o de prueba, pero que es claramente un poco chapucero para sitios comerciales u oficiales. Para estos sitios se recomienda crear no un certificado sino una solicitud de certificado y enviarla para que sea firmada por una de las Entidades Certificadoras reconocidas por la mayoría de navegadores.

7) Habilitar el sitio ssl:

a2ensite ssl

8) Recargar la configuración del apache2:

/etc/init.d/apache2 force-reload

Bueno, pues esto es todo. No quería hacer un extenso manual de configuración del Apache 2, sino simplemente tener una receta de cómo migrar cómodamente nuestras configuraciones de Apache 1.3 a Apache 2.2. Espero haber cumplido mi objetivo ;-)


Filed under: Informática   |  13 Comments
Tags: apache, configuracion, GNU/Linux, SSL, virtualhost

13 Responses to “Actualizando conocimientos de Apache 1.3 a Apache 2.2”  

Feed for this Entry Trackback Address
  1. 1 meneame.net on Diciembre 6, 2006 said:

    Actualizando de Apache 1.3 a Apache 2.2

    Artículo en el que se explica la estructura de directorios en la nueva versión de Apache, la forma de habilitar y deshabilitar módulos y sitios (o VirtualHosts) y cómo actualizar tus ficheros de configuración del Apache 1.3 a la 2.2 sin muchos…

    Responder
  2. 2 Gerard on Diciembre 6, 2006 said:

    Esta bien este articulo, solo una duda:
    "Para estos sitios se recomienda crear no un certificado sino una solicitud de certificado y enviarla para que sea firmada por una de las Entidades Certificadoras reconocidas por la mayoría de navegadores."

    Algun sitio donde lo hagan? es gratuïto ?

    Responder
  3. 3 txipi on Diciembre 6, 2006 said:

    @Gerard: Si quisiéramos que nos firmara nuestro certificado una entidad certificadora (una CA, en términos técnicos), deberíamos crear una petición de firma de certificado (request) que enviaríamos a la CA para que nos la devolviera firmada, como explican, por ejemplo en http://www.madboa.com/geek/opens...

    Si la solicitud la haces a Verisign o cualquier CA reconocida por el 99% de los navegadores, no será gratuito.

    En http://www.cacert.org/ tienes una CA gratuita que te puede firmar tu certificado, pero no sé si está soportada por la mayoría de navegadores.

    Responder
  4. 4 Iker Sagasti Markina on Diciembre 14, 2006 said:

    Muy buena la receta txipi. Solo puntualizar que los comandos que comentas solo son válidos para Debian-way ;-) . Son scripts específicos de Debian. Al igual que los directorios para módulos disponibles y módulos cargados. No estaría de más resaltar este detalle ;-)

    Responder
  5. 5 txipi on Diciembre 14, 2006 said:

    @Iker: Buen apunte, con tanto Debian-centrismo me olvido de que las diferentes distros no usan www-data como usuario de apache, o que algunas herramientas solo son scripts que vienen con el paquete .deb. Supongo que, como casi siempre, todo lo que esté disponible en Debian, lo está también para (*)Ubuntu.

    Responder
  6. 6 Iñaki Baz on Diciembre 15, 2006 said:

    Aupa, sólo una pequeña aportación ya que a mí me trajo por el camino de la amargura hasta que descubrí la causa:

    ¿Qué ocurre si alguien introduce directamente la IP en el navegador?, ¿a qué dominio virtual irá? ¿o acaso irá al default por no tener un ServerName asociado?

    Bueno, pues la respuesta es que en ese caso se accede al primer dominio virtual por orden alfabético tal y como aparecen en /etc/apache2/sites-enabled.
    Ojo, precisamente por esa razón el link a "default" se llama "000-default", para que sea el sitio por defecto para todos los dominios o IP’s que resuelvan a nuestro servidor web.

    PD: Y ya puestos, apunto también la existencia de "ServerAlias" para añadir más dominios a un dominio virtual, en plan:
    ServerName dominio.org
    ServerAlias http://www.dominio.org web.dominio.org

    Nada, sólo eso, felicidades por el artículo.

    Responder
  7. 7 txipi on Diciembre 15, 2006 said:

    @ibc: muchas gracias por tu aportación, dos detalles muy importantes. La verdad es que desconocía por qué se ponía el "000-" delante del link a default, pero ahora entiendo claramente la razón. Thx!! ;-)

    Responder
  8. 8 Raziel Valle on Marzo 1, 2007 said:

    La pregunta es que pasa si en la URL se introduce un path absoluto como xxx.xxx.xxx.xxx/phpmyadmi… en el caso de que no este definido en el virtual host, como se puede definir.. Por que al dejar el ‘000-default’ no reconoce la direccion virtualhostname/phpmyadmin..

    Responder
  9. 9 DMX songs on Marzo 4, 2007 said:

    DMX songs

    DMX songs

    Responder
  10. 10 mp3 Besieged on Marzo 15, 2007 said:

    mp3 Besieged

    mp3 Besieged

    Responder
  11. 11 Cult Of Luna download on Marzo 27, 2007 said:

    Cult Of Luna download

    Cult Of Luna download

    Responder
  12. 12 pillo on Junio 20, 2007 said:

    Muchas gracias por este manual.

    Estuve 1 semana intentando hacer virtual host con apache 2.2.3 según el manual oficial de APACHE2 no viene este ejemplo tan simple, venia el modificar el /etc/apache2/httpd.conf y no iba ni a tiros.
    Muchas gracias.

    Responder
  13. 13 Juan Carlos Badillo Goy on Diciembre 17, 2009 said:

    Saludos.

    Muy bueno el tutorial, lo utilicé como guía y funcionó el acceso muy bien, pero luego que estoy en la aplicación muchos de los link de las imagenes y de algunas páginas no me funcionan, incluso me percaté que no me muestra las imagenes en formato jpg, solo me muestra las que tengan extensión png y gif, les pongo un ejemplo de como tengo los link relativos.

    Estos ejemplos de direcciones cuando se accedes a ellos no funcionan y este es el resultado del link resuelto por el navegador http://www.misitio.com/php/cerrar.php, y este es el error que emite:

    Este error (HTTP 404 No encontrado) significa que Internet Explorer se pudo conectar al sitio web, pero no encontró la página solicitada. Es posible que la página web no esté disponible temporalmente o que el sitio web haya cambiado o quitado la página web.

    En el caso de las imagenes sencillamente no logro mostrarlas.

    Muchas gracias y si alguien puede ayudarme puede escribirme a jcbadillogoy@gmail.com

    Responder

Leave a Reply

Clic para cancelar respuesta.



  • comentarios recientes...

    Darío on Dia mundial del escepticismo y…
    Guille on Curso de programación en C par…
    Aldo on Bajar presentaciones no dispon…
    txipi on Meta-programación (I): "Re…
    LuLu on Meta-programación (I): "Re…
  • Blogroll

    • Feeds en Bloglines
    • Planet e-ghost
    • Software Libre en la UD
  • Enlaces

    • e-ghost
    • Página web en la UD
    • txipi:wiki
    • txipinet, antigua web
  • Posts Más Vistos

    • Cómo eliminar la contraseña de la BIOS
    • Bajar presentaciones no disponibles para descarga en Slideshare
    • ¿Qué tarjeta Wi-Fi me compro?
    • Curso de programación en C para GNU/Linux (VII)
    • Curso de programación en C para GNU/Linux (II)
    • Curso de programación en C para GNU/Linux (V)
    • Curso de programación en C para GNU/Linux (VI)
    • Curso de programación en C para GNU/Linux (I)
    • Ayahuasca, hacking mental
    • Manual de supervivencia en Internet (III): Navegar sin dejar rastro
  • sindicación (RSS)

    Suscríbete al blog
    Suscríbete al blog por e-mail
  • RSS twitter

    • txipi: Un 18% de los españoles sitúa en igualdad de condiciones a la ciencia con las «ciencias alternativas». (via microsiervos) #FAIL
    • txipi: RT @abel2es: RT @jolaus: La muerte de los Entornos Virtuales de Aprendizaje http://post.ly/SBRD
    • txipi: RT @tagzania: Hoy publicamos Mapapel, mapas para imprimir http://bit.ly/doTHkO
    • txipi: RT: @deusto: [CTMD] Conferencia de Tíscar Lara en las I Jornadas de Educación Digital http://bit.ly/9yGN7t
    • txipi: RT: @mwesch: 5th graders review teacher. Twill be fun 4 the kids to see someday: http://bit.ly/aVXMkp via @joelajackson
  • RSS posts en el blog de software libre

    • Buenas noticias desde la CRUE y el Gobierno Vasco
    • El Gobierno Vasco se plantea implantar OpenOffice.org
    • ColaboraBilbao: Software + problemas del MundoReal
    • Al UniEncounter con Scratch
    • Zancadillas a Firefox con H.264
    • Feliz 1984
    • La “lista” de Sinde
    • INGSOC, INGSOC, ¡INGSOC!
    • Presentamos ALUD 2.0 en la Conferencia Internacional de Software Libre en Cáceres
    • Microsoft surfea en la espuma
  • licencia

    some rights reserved

    Aviso legal: Condiciones de copia y distribución. Todos los contenidos de esta página están protegidos por la Licencia Creative Commons 2.5, salvo en los casos en los que se especifica lo contrario.


Blog de WordPress.com. • Theme: Unsleepable by Ben Gray