Ce guide explique comment vous pouvez utiliser mod_mysql_vhost pour créer des hôtes virtuels simples sur un serveur web lighttpd sur Debian Etch. Avec mod_mysql_vhost, lighttpd peut lire la configuration vhost à partir d'une base de données MySQL. Actuellement, vous pouvez stocker le domaine et la racine du document dans la base de données MySQL, ce qui donne des hôtes virtuels très simples. Si vous avez besoin de plus de directives pour vos vhosts, vous devrez les configurer dans la section globale de lighttpd.conf, ce qui signifie qu'elles seront valides pour tous les vhosts. Par conséquent, mod_mysql_vhost est idéal si vos vhosts ne diffèrent que par le domaine et la racine du document.
Je n'émets aucune garantie que cela fonctionnera pour vous !
1 Installer MySQL 5.0
Nous installons d'abord MySQL 5.0 comme ceci :
apt-get install mysql-server mysql-client
Créez un mot de passe pour l'utilisateur root MySQL (remplacez yourrootsqlpassword par le mot de passe que vous souhaitez utiliser) :
mysqladmin -u root password yourrootsqlpassword
Vérifiez ensuite avec
netstat -tap | grep mysql
sur quelles adresses MySQL écoute. Si la sortie ressemble à ceci :
tcp 0 0 localhost.localdo:mysql * :* ÉCOUTER 2713/mysqld
ce qui signifie que MySQL écoute uniquement sur localhost.localdomain, alors vous êtes en sécurité avec le mot de passe que vous avez défini auparavant. Mais si la sortie ressemble à ceci :
tcp 0 0 *:mysql *:* ÉCOUTER 2713/mysqld
vous devez également définir un mot de passe MySQL pour votre nom d'hôte (mon nom d'hôte est server1.example.com ici), car sinon, n'importe qui peut accéder à votre base de données et modifier les données :
mysqladmin -h server1.example.com -u root password yourrootsqlpassword
2 Installation de Lighttpd et mod_mysql_vhost
Vous pouvez installer lighttpd (s'il n'est pas déjà installé) et mod_mysql_vhost comme suit :
apt-get install lighttpd lighttpd-mod-mysql-vhost
Pour activer mod_mysql_vhost, nous ouvrons /etc/lighttpd/lighttpd.conf et ajoutons/activons "mod_mysql_vhost", dans la strophe 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" ) [...] |
Ensuite, nous redémarrons lighttpd :
/etc/init.d/lighttpd restart
3 Configuration de mod_mysql_vhost
Maintenant, nous nous connectons à MySQL...
mysql -u root -p
... et créez la base de données lighttpd :
CRÉER BASE DE DONNÉES lighttpd ;
Ensuite, nous créons un utilisateur de base de données (que nous nommons également lighttpd) avec des privilèges SELECT pour la base de données lighttpd :
GRANT SELECT ON lighttpd.* TO [email protected] IDENTIFIED BY 'secret' ;
GRANT SELECT ON lighttpd.* TO [email protected] IDENTIFIED BY 'secret' ;
FLUSH PRIVILEGES ;(Remplacez secret par un mot de passe de votre choix.)
Ensuite, nous créons la table des domaines dans la base de données lighttpd et quittons MySQL :
UTILISER lighttpd ;CREATE TABLE domaines (
domaine varchar(64) non null clé primaire,
docroot varchar(128) non null
);quitter ;Maintenant, nous ouvrons /etc/lighttpd/lighttpd.conf et ajoutons la configuration mod_mysql_vhost suivante à la fin du fichier :
vi /etc/lighttpd/lighttpd.conf
[...]mysql-vhost.db ="lighttpd"mysql-vhost.user ="lighttpd"mysql-vhost.pass ="secret "mysql-vhost.sql ="SELECT docroot FROM domaines WHERE domain='?';"mysql-vhost.hostname ="localhost"mysql-vhost.port =3306 |
(Remplacez secret par le mot de passe que vous avez précédemment défini pour l'utilisateur lighttpd MySQL.)
Redémarrez lighttpd :
/etc/init.d/lighttpd restart
Il est maintenant temps de configurer les hôtes virtuels...
4 Configuration des hôtes virtuels
Je vais maintenant configurer deux hôtes virtuels, un pour www.example.com (avec la racine du document /var/www/www.example.com/web) et un pour www.example.org (avec la racine du document /var/www /www.example.org/web).
Tout d'abord, nous créons les racines des documents des deux sites Web (s'ils n'existent pas déjà) :
mkdir -p /var/www/www.example.com/web
mkdir -p /var/www/www.example.org/web
Ensuite, nous nous connectons à MySQL...
mysql -u root -p
UTILISER lighttpd ;
... et créez les vhosts comme suit :
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/');
Nous pouvons maintenant quitter le shell MySQL :
quitter ;
Voilà, les vhosts sont maintenant configurés et fonctionnent, et aucun redémarrage lighttpd n'est requis.
Pour vérifier si les vhosts fonctionnent comme prévu, nous créons un fichier index.html dans chaque racine de document, l'un contenant la chaîne "www.example.com", l'autre avec la chaîne "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
et appelez http://www.example.com et http://www.example.org dans un navigateur. http://www.example.com doit afficher www.example.com et http://www.example.org doit afficher www.example.org.
5 liens
- mod_mysql_vhost :http://trac.lighttpd.net/trac/wiki/Docs#Optionsformod_mysql_vhost-Mysqlvirtualhostingmodule
- Lighttpd :http://www.lighttpd.net
- Debian :http://www.debian.org