Tato příručka vysvětluje, jak můžete použít mod_mysql_vhost k vytvoření jednoduchých virtuálních hostitelů na webovém serveru lighttpd na Debian Etch. S mod_mysql_vhost může lighttpd číst konfiguraci vhost z databáze MySQL. V současné době můžete uložit doménu a kořen dokumentu v databázi MySQL, což vede k velmi jednoduchým virtuálním hostitelům. Pokud pro své vhosty potřebujete více direktiv, budete je muset nakonfigurovat v globální sekci lighttpd.conf, což znamená, že budou platné pro všechny vhosty. Proto je mod_mysql_vhost ideální, pokud se vaši hostitelé vhost liší pouze v doméně a kořenovém adresáři dokumentu.
Neposkytuji žádnou záruku, že to pro vás bude fungovat!
1 Instalace MySQL 5.0
Nejprve nainstalujeme MySQL 5.0 takto:
apt-get install mysql-server mysql-client
Vytvořte heslo pro root uživatele MySQL (nahraďte yourrootsqlpassword heslem, které chcete použít):
mysqladmin -u root heslo yourrootsqlpassword
Poté zkontrolujte pomocí
netstat -tap | grep mysql
na kterých adresách MySQL poslouchá. Pokud výstup vypadá takto:
tcp 0 0 localhost.localdo:mysql *:* POSLECHNOUT 2713/mysqld
což znamená, že MySQL naslouchá pouze na localhost.localdomain, pak jste v bezpečí s heslem, které jste nastavili předtím. Ale pokud výstup vypadá takto:
tcp 0 0 *:mysql *:* POSLECHNOUT 2713/mysqld
měli byste si také nastavit heslo MySQL pro svůj název hostitele (zde je můj hostitelský název server1.example.com), protože jinak může kdokoli přistupovat k vaší databázi a upravovat data:
mysqladmin -h server1.example.com -u heslo root yourrootsqlpassword
2 Instalace Lighttpd And mod_mysql_vhost
Lighttpd (pokud již není nainstalován) a mod_mysql_vhost můžete nainstalovat následovně:
apt-get install lighttpd lighttpd-mod-mysql-vhost
Chcete-li povolit mod_mysql_vhost, otevřeme /etc/lighttpd/lighttpd.conf a přidáme/povolíme "mod_mysql_vhost" ve stanze 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" ) [...] |
Poté restartujeme lighttpd:
/etc/init.d/lighttpd restart
3 Konfigurace mod_mysql_vhost
Nyní se přihlásíme do MySQL...
mysql -u root -p
... a vytvořte databázi lighttpd:
VYTVOŘIT DATABÁZI lighttpd;
Dále vytvoříme uživatele databáze (kterého také pojmenujeme lighttpd) s oprávněními SELECT pro databázi lighttpd:
GRANT SELECT ON lighttpd.* TO [email protected] IDENTIFIED BY 'secret';
GRANT SELECT ON lighttpd.* TO [email protected] IDENTIFIED BY 'secret';
FLUSH PRIVILEGES;(Nahraďte tajné heslo heslem dle vašeho výběru.)
Poté vytvoříme tabulku domén v databázi lighttpd a ponecháme MySQL:
POUŽÍVEJTE lighttpd;CREATE TABLE domény (
doména varchar(64) není primární klíč null,
docroot varchar(128) není null
);ukončit;Nyní otevřeme /etc/lighttpd/lighttpd.conf a na konec souboru přidáme následující konfiguraci mod_mysql_vhost:
vi /etc/lighttpd/lighttpd.conf
[...]mysql-vhost.db ="lighttpd"mysql-vhost.user ="lighttpd"mysql-vhost.pass ="tajné "mysql-vhost.sql ="VYBRAT docroot Z domén WHERE domain='?';"mysql-vhost.hostname ="localhost"mysql-vhost.port =3306 |
(Nahraďte tajné heslo heslem, které jste dříve nastavili pro uživatele lighttpd MySQL.)
Restartujte lighttpd:
/etc/init.d/lighttpd restart
Nyní je čas nakonfigurovat virtuální hostitele...
4 Konfigurace virtuálních hostitelů
Nyní nakonfiguruji dva virtuální hostitele, jeden pro www.example.com (s kořenem dokumentu /var/www/www.example.com/web) a jeden pro www.example.org (s kořenem dokumentu /var/www /www.example.org/web).
Nejprve vytvoříme kořeny dokumentů obou webových stránek (pokud ještě neexistují):
mkdir -p /var/www/www.example.com/web
mkdir -p /var/www/www.example.org/web
Poté se přihlásíme do MySQL...
mysql -u root -p
POUŽÍVEJTE lighttpd;
... a vytvořte vhost takto:
INSERT INTO domén VALUES ('www.example.com','/var/www/www.example.com/web/');
INSERT INTO domén VALUES ('www.example.org', '/var/www/www.example.org/web/');
Nyní můžeme opustit prostředí MySQL:
ukončit;
To je vše, vhosts jsou nyní nakonfigurovány a fungují a není vyžadován žádný restart lighttpd.
Abychom zkontrolovali, zda vhosts fungují podle očekávání, vytvoříme v každém kořenovém adresáři dokumentu soubor index.html, jeden s řetězcem „www.example.com“ a druhý s řetězcem „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
a zavolejte v prohlížeči http://www.example.com a http://www.example.org. http://www.example.com by měla zobrazovat www.example.com a http://www.example.org by měla zobrazovat www.example.org.
5 odkazů
- mod_mysql_vhost:http://trac.lighttpd.net/trac/wiki/Docs#Optionsformod_mysql_vhost-Mysqlvirtualhostingmodule
- Lighttpd:http://www.lighttpd.net
- Debian:http://www.debian.org