Saltar al contenido

Cómo instalar un webserver con Apache, PHP5 y WordPress utilizando Virtual Hosts

May 12, 2008

El siguiente tutorial fue el resultado de una tarea de un curso de linux avanzado. Si bien el procedimiento no es muy avanzado sí me costó trabajo obtenerlo. Y -como diría Galileo- sin embargo se mueve. Funciona para GNU/Linux Debian Etch.

Para efectos demostrativos crearé dos sitios web virtuales, ambos en el puerto 80:

  1. acuerdo.com, un sitio de páginas estáticas en /var/www/memoria_jornadas
  2. misitio.com, un blog de wordpress

Y dado que WordPress requiere una base de datos MySQL además de PHP versión 5 habrá que instalar un servidor de MySQL y soporte para PHP5.

1. Instalar Apache + PHP + WordPress + MySQL

Como root:

$ apt-get install apache2 php5 wordpress mysql-server-5.0

2. Comprobar en un navegador la dirección http://127.0.0.1 para comprobar si apache funciona correctamente.

3. Ahora hay que comprobar si el soporte de PHP funciona:

a. Como root, cree una página PHP llamada prueba.php con el siguiente contenido y guárdela en /var/www/apache2-default/:

<?php
// Muestra toda la información, por omisión INFO_ALL
phpinfo();
// Mostrar solo la información de módulos.
// phpinfo( 8 ) produce el mismo resultado.
phpinfo(INFO_MODULES);
?>

4. Desde el navegador pruebe la página http://127.0.0.1/apache2-default/prueba.php

5. Si no funciona el PHP, habrá que habilitar el soporte de PHP5 en apache2

Como root:

a. En /etc/apache2/mods-available crear archivos:

libphp5.conf:
AddType application/x-httpd-php .php .phtml
libphp5.load:
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so

b. Habilitar módulos utilizando el script a2enmod:

$ a2enmod libphp5

6. Modificar archivo /etc/hosts. Agregar línea:

127.0.0.1    localhost (...) misitio.com acuerdo.com

Ojo: En la misma línea deben quedar todos los alias usados para 127.0.0.1

4. Configurar Virtual Hosts

a. En la carpeta /etc/apache2/sites-available crear archivo de definición, llamémoslo «virtual»:

NameVirtualHost acuerdo.com:80
<VirtualHost acuerdo.com:80>
DocumentRoot /var/www/memoria_jornadas/
ServerName acuerdo.com
ServerAlias *.acuerdo.com
ErrorLog /var/log/apache2/acuerdo-err.log
TransferLog /var/log/apache2/acuerdo-transfer.log
</VirtualHost>
NameVirtualHost misitio.com:80
<VirtualHost misitio.com:80>
DocumentRoot /usr/share/wordpress/
ServerName misitio.com
ServerAlias www.misitio.com *.misitio.com
ErrorLog /var/log/apache2/wp-error.log
TransferLog /var/log/apache2/wp-access.log
</VirtualHost>

Nota: previamente hay que copiar los archivos necesarios a /var/www/memoria_jornadas, revisar permisos, y -muy importante- comprobar que existan los directorios referidos.

5. Habilitar (enable) los sitios con el script a2ensite:

$ a2ensite virtual

6. Reiniciar servicios de Apache:

$ /etc/init.d/apache2 restart

7. Configurar WordPress:

a. Abra su navegador y abra la dirección http://misitio.com

b. Siga las instrucciones para configurar el WordPress.

Mayor información en el sitio oficial de Apache y en el blog All About Linux.

4 comentarios leave one →
  1. mark33sv permalink
    diciembre 29, 2008 1:56 pm

    Hola y gracias al mismo tiempo.
    Este manual me sirve de a mil.

    Pero tengo inconveniente al respecto:
    El apache sirmpe me da un error en el siguiente:

    [warn] NameVirtualHost sitiowordpress.com:80 has no VirtualHosts

    Aunque si me funcionan ambos sitios, pero en tu info final, se dice:
    —————————–
    7. Configurar WordPress:

    a. Abra su navegador y abra la dirección http://misitio.com

    b. Siga las instrucciones para configurar el WordPress.
    —————————–
    Encuentro que en dichos directorio que se designa, hay un index.php, pero que si declaro este directorio, no se ejecuta, solo si redirecciono dentro de este mi directorio: /usr/share/wordpress/

    Yo cree ya mi cuenta en wordpress.
    Estos son mis dudas:
    1.-DNS ? como para bin9
    2.-donde configura o como pide configuración word press?

    Gracias, ojala una respuesta .. pero seguiré buscando..
    Gracias por el manual!
    sitiowordpress/

  2. proteo2000 permalink*
    diciembre 30, 2008 5:33 pm

    Mark33sv:

    Citándome a mí mismo:

    Nota: previamente hay que copiar los archivos necesarios (…), revisar permisos, y -muy importante- comprobar que existan los directorios referidos.

    Por lo que mencionas es probable que el directorio /etc/apache2/sites-available no contenga un archivo llamado «virtual», archivo que en tu caso debería verse más o menos así:

    NameVirtualHost acuerdo.com:80

    DocumentRoot /var/www/memoria_jornadas/
    ServerName acuerdo.com
    ServerAlias *.acuerdo.com
    ErrorLog /var/log/apache2/acuerdo-err.log
    TransferLog /var/log/apache2/acuerdo-transfer.log

    NameVirtualHost sitiowordpress.com:80

    DocumentRoot /usr/share/wordpress/
    ServerName sitiowordpress.com
    ServerAlias www.sitiowordpress.com *.sitiowordpress.com
    ErrorLog /var/log/apache2/wp-error.log
    TransferLog /var/log/apache2/wp-access.log

    No olvides reiniciar el servicio de apache.

    Teniendo bien configurado este archivo, vas a la dirección http://sitiowordpress.com/ (sin index.php) y el programa de configuración de wordpress te pedirá los parámetros de la base de datos para completar la instalación.

    Suerte.

  3. mark33sv permalink
    febrero 9, 2009 11:10 pm

    Gracias.
    Me funciono perfectamente.
    Desde configurando el bind9 y apache con ambos HostVirtual

  4. febrero 26, 2009 8:43 am

    Muy bueno gracias

Deja un comentario