Ce guide explique comment vous pouvez utiliser mod_mysql_vhost pour créer des hôtes virtuels simples sur un serveur Web lighttpd sur Ubuntu 12.04. 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 Remarque préliminaire
Étant donné que nous devons exécuter toutes les étapes de ce didacticiel avec les privilèges root, nous pouvons soit ajouter la chaîne sudo à toutes les commandes de ce didacticiel, soit nous devenons root dès maintenant en tapant
sudo su
2 Installer MySQL 5.0
Nous installons d'abord MySQL 5 comme ceci :
apt-get install mysql-server mysql-client
Il vous sera demandé de fournir un mot de passe pour l'utilisateur root MySQL - ce mot de passe est valide pour l'utilisateur [email protected] ainsi que [email protected], nous n'avons donc pas besoin de spécifier manuellement un mot de passe root MySQL ultérieurement :
Nouveau mot de passe pour l'utilisateur "root" MySQL :<-- yourrootsqlpassword
Répétez le mot de passe pour l'utilisateur "root" MySQL :<-- yourrootsqlpassword
3 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_compress", "mod_redirect", "mod_mysql_vhost",# "mod_rewrite",) [...] |
Ensuite, nous redémarrons lighttpd :
/etc/init.d/lighttpd restart
4 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...
5 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.
6 liens
- mod_mysql_vhost :http://redmine.lighttpd.net/projects/1/wiki/Docs:ModMySQLVhost
- Lighttpd :http://www.lighttpd.net/
- Ubuntu :http://www.ubuntu.com/