GNU/Linux >> Tutoriales Linux >  >> Debian

Creación de hosts virtuales simples con mod_mysql_vhost en Lighttpd (Debian Etch)

Esta guía explica cómo puede usar mod_mysql_vhost para crear hosts virtuales simples en un servidor web lighttpd en Debian Etch. Con mod_mysql_vhost, lighttpd puede leer la configuración de vhost desde una base de datos MySQL. Actualmente, puede almacenar el dominio y la raíz del documento en la base de datos MySQL, lo que da como resultado hosts virtuales muy simples. Si necesita más directivas para sus vhosts, deberá configurarlas en la sección global de lighttpd.conf, lo que significa que serán válidas para todos los vhosts. Por lo tanto, mod_mysql_vhost es ideal si sus vhosts difieren solo en el dominio y la raíz del documento.

¡No emito ninguna garantía de que esto funcione para usted!

1 Instalación de MySQL 5.0

Primero instalamos MySQL 5.0 así:

apt-get install mysql-server mysql-client

Cree una contraseña para el usuario root de MySQL (reemplace yourrootsqlpassword con la contraseña que desea usar):

mysqladmin -u root password yourrootsqlpassword

Entonces consulte con

netstat -tap | grep mysql

en qué direcciones está escuchando MySQL. Si la salida se ve así:

tcp        0      0 localhost.localdo:mysql *:*                     LISTEN     2713/mysqld

lo que significa que MySQL está escuchando solo en localhost.localdomain, entonces está seguro con la contraseña que configuró antes. Pero si la salida se ve así:

tcp        0      0 *:mysql *:*                     LISTEN     2713/mysqld

también debe establecer una contraseña de MySQL para su nombre de host (mi nombre de host es server1.example.com aquí), porque de lo contrario cualquiera puede acceder a su base de datos y modificar datos:

mysqladmin -h server1.example.com -u root password yourrootsqlpassword

2 Instalación de Lighttpd y mod_mysql_vhost

Puede instalar lighttpd (si aún no está instalado) y mod_mysql_vhost de la siguiente manera:

apt-get install lighttpd lighttpd-mod-mysql-vhost

Para habilitar mod_mysql_vhost, abrimos /etc/lighttpd/lighttpd.conf y agregamos/habilitamos "mod_mysql_vhost", en la estrofa server.modules:

vi /etc/lighttpd/lighttpd.conf

Posteriormente, reiniciamos lighttpd:

/etc/init.d/lighttpd restart

3 Configuración de mod_mysql_vhost

Ahora iniciamos sesión en MySQL...

mysql -u root -p

... y crea la base de datos lighttpd:

CREATE DATABASE lighttpd;

A continuación, creamos un usuario de base de datos (que también llamamos lighttpd) con privilegios SELECT para la base de datos lighttpd:

GRANT SELECT ON lighttpd.* TO [email protected] IDENTIFIED BY 'secret';
GRANT SELECT ON lighttpd.* TO [email protected] IDENTIFIED BY 'secret';
FLUSH PRIVILEGES;

(Reemplace secret con una contraseña de su elección).

Luego creamos la tabla de dominios en la base de datos lighttpd y dejamos MySQL:

USE lighttpd;
CREATE TABLE domains (
domain varchar(64) not null primary key,
docroot varchar(128) not null
);
quit;

Ahora abrimos /etc/lighttpd/lighttpd.conf y agregamos la siguiente configuración mod_mysql_vhost al final del archivo:

vi /etc/lighttpd/lighttpd.conf
[...]
server.modules              = (
            "mod_access",
            "mod_alias",
            "mod_accesslog",
            "mod_mysql_vhost",
#           "mod_rewrite",
#           "mod_redirect",
#           "mod_status",
#           "mod_evhost",
#           "mod_compress",
#           "mod_usertrack",
#           "mod_rrdtool",
#           "mod_webdav",
#           "mod_expire",
#           "mod_flv_streaming",
#           "mod_evasive"
 )
[...]

(Reemplace secret con la contraseña que configuró previamente para el usuario lighttpd MySQL).

Reiniciar lighttpd:

/etc/init.d/lighttpd restart

Ahora es el momento de configurar hosts virtuales...

4 Configuración de hosts virtuales

Ahora configuraré dos hosts virtuales, uno para www.example.com (con la raíz del documento /var/www/www.example.com/web) y otro para www.example.org (con la raíz del documento /var/www /www.ejemplo.org/web).

Primero, creamos las raíces del documento de ambos sitios web (si aún no existen):

mkdir -p /var/www/www.example.com/web
mkdir -p /var/www/www.example.org/web

Luego iniciamos sesión en MySQL...

mysql -u root -p
USE lighttpd;

... y crea los vhosts de la siguiente manera:

INSERT INTO domains VALUES ('www.example.com','/var/www/www.example.com/web/');
INSERT INTO domains VALUES ('www.example.org','/var/www/www.example.org/web/');

Ahora podemos dejar el shell de MySQL:

quit;

Eso es todo, los vhosts ahora están configurados y funcionando, y no es necesario reiniciar lighttpd.

Para verificar si los vhosts funcionan como se esperaba, creamos un archivo index.html en cada raíz del documento, uno con la cadena "www.example.com" y el otro con la cadena "www.example.org". ..

echo "www.example.com" > /var/www/www.example.com/web/index.html
echo "www.example.org" > /var/www/www.example.org/web/index.html

y llame a http://www.example.com y http://www.example.org en un navegador. http://www.example.com debería mostrar www.example.com y http://www.example.org debería mostrar www.example.org.

5 Enlaces

  • mod_mysql_vhost:http://trac.lighttpd.net/trac/wiki/Docs#Optionsformod_mysql_vhost-Mysqlvirtualhostingmodule
  • Lighttpd:http://www.lighttpd.net
  • Debian:http://www.debian.org

Debian
  1. Creación de hosts virtuales simples con mod_mysql_vhost en Lighttpd (Ubuntu 12.04)

  2. Creación de hosts virtuales simples con mod_mysql_vhost en Lighttpd (Ubuntu 12.10)

  3. Creación de hosts virtuales simples con mod_mysql_vhost en Lighttpd (Debian Squeeze)

  4. Configuración de Master-Master Replication con MySQL en Debian 8 (Jessie)

  5. Cómo instalar WebDAV con Lighttpd en Debian 8 (Jessie)

Instalación de Lighttpd con soporte PHP5 (PHP-FPM) y MySQL en Debian Wheezy

Instalación de Lighttpd con PHP5 (PHP-FPM) y MySQL en Debian 8 (Jessie)

Cómo instalar Nginx con PHP + MySQL (LEMP) en Debian 9

Configurar servidores virtuales de Apache en Debian 9/Ubuntu 16.04/LinuxMint 18

Instale Zabbix en Debian 11 Bullseye con MySQL/MariaDB y Apache

Cómo instalar Drupal 5.6 en Debian Etch con ISPConfig

    [...]
    mysql-vhost.db             = "lighttpd"
    mysql-vhost.user           = "lighttpd"
    mysql-vhost.pass           = "secret"
    mysql-vhost.sql            = "SELECT docroot FROM domains WHERE domain='?';"
    mysql-vhost.hostname       = "localhost"
    mysql-vhost.port           = 3306