Questa guida spiega come utilizzare mod_mysql_vhost per creare semplici host virtuali su un server web lighttpd su Debian Etch. Con mod_mysql_vhost, lighttpd può leggere la configurazione di vhost da un database MySQL. Attualmente, puoi archiviare il dominio e la radice del documento nel database MySQL, il che si traduce in host virtuali molto semplici. Se hai bisogno di più direttive per i tuoi vhost, dovresti configurarle nella sezione globale di lighttpd.conf, il che significa che sarebbero valide per tutti i vhost. Pertanto, mod_mysql_vhost è l'ideale se i tuoi vhost differiscono solo nel dominio e nella root del documento.
Non garantisco che questo funzionerà per te!
1 Installazione di MySQL 5.0
Per prima cosa installiamo MySQL 5.0 in questo modo:
apt-get install mysql-server mysql-client
Crea una password per l'utente root di MySQL (sostituisci yourrootsqlpassword con la password che desideri utilizzare):
mysqladmin -u root password yourrootsqlpassword
Quindi verifica con
netstat -tap | grep mysql
su quali indirizzi MySQL è in ascolto. Se l'output è simile a questo:
tcp 0 0 localhost.localdo:mysql *:* LISTEN 2713/mysqld
il che significa che MySQL è in ascolto solo su localhost.localdomain, quindi sei al sicuro con la password che hai impostato in precedenza. Ma se l'output è simile a questo:
tcp 0 0 *:mysql *:* LISTEN 2713/mysqld
dovresti anche impostare una password MySQL per il tuo nome host (il mio nome host è server1.example.com qui), perché altrimenti chiunque può accedere al tuo database e modificare i dati:
mysqladmin -h server1.example.com -u root password yourrootsqlpassword
2 Installazione di Lighttpd e mod_mysql_vhost
Puoi installare lighttpd (se non è già installato) e mod_mysql_vhost come segue:
apt-get install lighttpd lighttpd-mod-mysql-vhost
Per abilitare mod_mysql_vhost, apriamo /etc/lighttpd/lighttpd.conf e aggiungiamo/abilitiamo "mod_mysql_vhost", nella stanza 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" ) [...] |
Successivamente, riavviamo lighttpd:
/etc/init.d/lighttpd restart
3 Configurazione di mod_mysql_vhost
Ora accediamo a MySQL...
mysql -u root -p
... e crea il database lighttpd:
CREATE DATABASE lighttpd;
Quindi creiamo un utente del database (che chiamiamo anche lighttpd) con privilegi SELECT per il database lighttpd:
GRANT SELECT ON lighttpd.* TO [email protected] IDENTIFIED BY 'secret';
GRANT SELECT ON lighttpd.* TO [email protected] IDENTIFIED BY 'secret';
FLUSH PRIVILEGES;
(Sostituisci segreto con una password a tua scelta.)
Quindi creiamo la tabella dei domini nel database lighttpd e lasciamo MySQL:
USE lighttpd;
CREATE TABLE domains (
domain varchar(64) not null primary key,
docroot varchar(128) not null
);
quit;
Ora apriamo /etc/lighttpd/lighttpd.conf e aggiungiamo la seguente configurazione mod_mysql_vhost alla fine del file:
vi /etc/lighttpd/lighttpd.conf
[...] 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 |
(Sostituisci secret con la password che hai precedentemente impostato per l'utente MySQL lighttpd.)
Riavvia lighttpd:
/etc/init.d/lighttpd restart
Ora è il momento di configurare gli host virtuali...
4 Configurazione degli host virtuali
Ora configurerò due host virtuali, uno per www.example.com (con la radice del documento /var/www/www.example.com/web) e uno per www.example.org (con la radice del documento /var/www /www.example.org/web).
Per prima cosa, creiamo le radici dei documenti di entrambi i siti web (se non esistono già):
mkdir -p /var/www/www.example.com/web
mkdir -p /var/www/www.example.org/web
Quindi accediamo a MySQL...
mysql -u root -p
USE lighttpd;
... e crea i vhost come segue:
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/');
Ora possiamo lasciare la shell MySQL:
quit;
Ecco fatto, i vhost sono ora configurati e funzionanti e non è richiesto il riavvio di lighttpd.
Per verificare se i vhost funzionano come previsto, creiamo un file index.html in ogni root del documento, uno con la stringa "www.example.com" e l'altro con la stringa "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
e chiama http://www.example.com e http://www.example.org in un browser. http://www.example.com dovrebbe mostrare www.example.com e http://www.example.org dovrebbe mostrare www.example.org.
5 link
- mod_mysql_vhost:http://trac.lighttpd.net/trac/wiki/Docs#Optionsformod_mysql_vhost-Mysqlvirtualhostingmodule
- Lighttpd:http://www.lighttpd.net
- Debian:http://www.debian.org