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 ;-)

Archivado en: Informática   |  13 Comentarios

13 comentarios a “Actualizando conocimientos de Apache 1.3 a Apache 2.2”  

Feed de este artículo URI para Trackbacks
  1. 1 meneame.net en dic 6th, 2006 dijo:

    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…

  2. 2 Gerard en dic 6th, 2006 dijo:

    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 ?

  3. 3 txipi en dic 6th, 2006 dijo:

    @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.

  4. 4 Iker Sagasti Markina en dic 14th, 2006 dijo:

    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 ;-)

  5. 5 txipi en dic 14th, 2006 dijo:

    @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.

  6. 6 Iñaki Baz en dic 15th, 2006 dijo:

    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.

  7. 7 txipi en dic 15th, 2006 dijo:

    @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!! ;-)

  8. 8 Raziel Valle en mar 1st, 2007 dijo:

    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..

  9. 9 DMX songs en mar 4th, 2007 dijo:

    DMX songs

    DMX songs

  10. 10 mp3 Besieged en mar 15th, 2007 dijo:

    mp3 Besieged

    mp3 Besieged

  11. 11 Cult Of Luna download en mar 27th, 2007 dijo:

    Cult Of Luna download

    Cult Of Luna download

  12. 12 pillo en jun 20th, 2007 dijo:

    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.

  13. 13 Juan Carlos Badillo Goy en dic 17th, 2009 dijo:

    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

Enviando tu Comentario
Por favor espera

Deja una respuesta

Hubo un error con tu comentario, por favor intenta de nuevo.



buscar

Comentarios recientes

  • Julen en Kantu leunak nahi nituzke jarri…
  • Aritz en Kantu leunak nahi nituzke jarri…
  • Jordi en Curso de programación en C para GNU/Linux (V)
  • Iñaki Murua en Kantu leunak nahi nituzke jarri…
  • Paulino en Kantu leunak nahi nituzke jarri…

Enlaces

  • e-ghost
  • Página personal en Deusto
  • Planet e-ghost
  • Software Libre en Deusto

Entradas recientes

  • Claws-mail y la renovación de certificados SSL de Gmail
  • Kantu leunak nahi nituzke jarri…
  • Embeber proyectos Scratch en cualquier sitio
  • Un gobierno en funciones no puede aprobar la ley Sinde
  • La cultura de la remezcla

RSS twitter

  • txipi: @pablomachon: tienes razón, no es como iceweasel / firefox :(
  • txipi: @pablomachon: o sea, que siendo software, no es realmente libre por la cláusula de non-commercial. Maldita NC ;(
  • txipi: @pablomachon: @jonsarean @borjario @imurua @librosybitios @perecornella @otxolua es extraño porque no es libre según FSF sino CC-by-nc-sa
  • txipi: @josuka: a mandar ;)
  • txipi: RT @robertclariso: ¿Qué aprendes estudiando ingeniería informática? (punto de vista del estudiante, pre-Bolonia) http://t.co/m9zczQfg

RSS posts en el blog de software libre

  • Presentacion de GuifiEH en Bilbao
  • STOP SOPA
  • Linex, in memoriam
  • Plantilla LaTeX para tesis doctorales
  • Nos vemos en las jornadas SLUN11

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 3.0 Reconocimiento Compartir-igual, salvo en los casos en los que se especifica lo contrario.
 


wordpressk2openswitchyukei.netfeed