Diese Anleitung erklärt, wie Sie mod_mysql_vhost verwenden können, um einfache virtuelle Hosts auf einem lighttpd-Webserver unter Debian Squeeze zu erstellen. Mit mod_mysql_vhost kann lighttpd die vhost-Konfiguration aus einer MySQL-Datenbank lesen. Derzeit können Sie die Domain und den Dokumentenstamm in der MySQL-Datenbank speichern, was zu sehr einfachen virtuellen Hosts führt. Wenn Sie weitere Direktiven für Ihre vhosts benötigen, müssten Sie diese im globalen Abschnitt von lighttpd.conf konfigurieren, was bedeutet, dass sie für alle vhosts gültig wären. Daher ist mod_mysql_vhost ideal, wenn sich Ihre vhosts nur in der Domäne und dem Dokumentenstamm unterscheiden.
Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!
1 Installation von MySQL 5.0
Zuerst installieren wir MySQL 5 wie folgt:
apt-get install mysql-server mysql-client
Sie werden aufgefordert, ein Passwort für den MySQL-Root-Benutzer anzugeben – dieses Passwort gilt sowohl für den Benutzer [email protected] als auch für [email protected], sodass wir später kein MySQL-Root-Passwort manuell angeben müssen:
Neues Passwort für den MySQL-"root"-Benutzer:<-- yourrootsqlpassword
Wiederholen Sie das Passwort für den MySQL-"root"-Benutzer:<-- yourrootsqlpassword
2 Installation von Lighttpd und mod_mysql_vhost
Sie können lighttpd (falls noch nicht installiert) und mod_mysql_vhost wie folgt installieren:
apt-get install lighttpd lighttpd-mod-mysql-vhost
Um mod_mysql_vhost zu aktivieren, öffnen wir /etc/lighttpd/lighttpd.conf und fügen/aktivieren „mod_mysql_vhost“ in der Zeilengruppe server.modules hinzu:
vi /etc/lighttpd/lighttpd.conf
server.modules =( "mod_access", "mod_alias", "mod_compress", "mod_redirect", "mod_mysql_vhost",# "mod_rewrite",) [...] |
Danach starten wir lighttpd neu:
/etc/init.d/lightpd Neustart
3 Konfigurieren von mod_mysql_vhost
Jetzt melden wir uns bei MySQL an...
mysql -u root -p
... und erstelle die Datenbank lighttpd:
DATENBANK ERSTELLEN lighttpd;
Als nächstes erstellen wir einen Datenbankbenutzer (den wir ebenfalls lighttpd nennen) mit SELECT-Berechtigungen für die lighttpd-Datenbank:
GRANT SELECT ON lighttpd.* TO [email protected] IDENTIFIED BY 'secret';
GRANT SELECT ON lighttpd.* TO [email protected] IDENTIFIED BY 'secret';
FLUSH PRIVILEGES;(Ersetzen Sie secret durch ein Passwort Ihrer Wahl.)
Dann erstellen wir die Domänentabelle in der lighttpd-Datenbank und verlassen MySQL:
LIGHTTPD VERWENDEN;CREATE TABLE domains (
domain varchar(64) not null primary key,
docroot varchar(128) not null
);beenden;Jetzt öffnen wir /etc/lighttpd/lighttpd.conf und fügen die folgende mod_mysql_vhost-Konfiguration am Ende der Datei hinzu:
vi /etc/lighttpd/lighttpd.conf
[...]mysql-vhost.db ="lighttpd"mysql-vhost.user ="lighttpd"mysql-vhost.pass ="geheim "mysql-vhost.sql ="docroot FROM domains WÄHLEN, WHERE domain='?';"mysql-vhost.hostname ="localhost"mysql-vhost.port =3306 |
(Ersetzen Sie secret durch das Passwort, das Sie zuvor für den Lighttpd-MySQL-Benutzer festgelegt haben.)
lighttpd neu starten:
/etc/init.d/lightpd Neustart
Jetzt ist es an der Zeit, virtuelle Hosts zu konfigurieren...
4 Virtuelle Hosts konfigurieren
Ich werde jetzt zwei virtuelle Hosts konfigurieren, einen für www.example.com (mit dem Dokumentenstamm /var/www/www.example.com/web) und einen für www.example.org (mit dem Dokumentenstamm /var/www /www.example.org/web).
Zuerst erstellen wir die Document Roots beider Websites (falls sie noch nicht existieren):
mkdir -p /var/www/www.example.com/web
mkdir -p /var/www/www.example.org/web
Dann melden wir uns bei MySQL an...
mysql -u root -p
LIGHTTPD VERWENDEN;
... und erstellen Sie die vhosts wie folgt:
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/');
Wir können jetzt die MySQL-Shell verlassen:
beenden;
Das war's, die vhosts sind jetzt konfiguriert und funktionieren, und es ist kein lighttpd-Neustart erforderlich.
Um zu überprüfen, ob die vhosts wie erwartet funktionieren, erstellen wir in jedem Dokumentenstamm eine index.html-Datei, eine mit der Zeichenfolge „www.example.com“ darin, die andere mit der Zeichenfolge „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
und rufen Sie in einem Browser http://www.example.com und http://www.example.org auf. http://www.example.com sollte www.example.com anzeigen und http://www.example.org sollte www.example.org anzeigen.
5 Links
- mod_mysql_vhost:http://redmine.lighttpd.net/projects/1/wiki/Docs:ModMySQLVhost
- Lighttpd:http://www.lighttpd.net/
- Debian:http://www.debian.org/