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
[...]
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"
)
[...] |
[...] 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 |