Questa guida spiega come utilizzare mod_mysql_vhost per creare semplici host virtuali su un server web lighttpd su Ubuntu 12.10. 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 Nota preliminare
Poiché dobbiamo eseguire tutti i passaggi di questo tutorial con i privilegi di root, possiamo anteporre tutti i comandi in questo tutorial con la stringa sudo, oppure diventare root in questo momento digitando
sudo su
2 Installazione di MySQL 5
Per prima cosa installiamo MySQL 5 in questo modo:
apt-get install mysql-server mysql-client
Ti verrà chiesto di fornire una password per l'utente root di MySQL:questa password è valida per l'utente [protetto tramite posta elettronica] e [protetto tramite posta elettronica], quindi non è necessario specificare manualmente una password di root MySQL in seguito:
Nuova password per l'utente "root" di MySQL:<-- yourrootsqlpassword
Ripeti la password per l'utente "root" di MySQL:<-- yourrootsqlpassword
3 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_compress", "mod_redirect", "mod_mysql_vhost", # "mod_rewrite", ) [...] |
Successivamente, riavviamo lighttpd:
/etc/init.d/lighttpd restart
4 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...
5 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.
6 link
- mod_mysql_vhost:http://redmine.lighttpd.net/projects/1/wiki/Docs:ModMySQLVhost
- Lighttpd:http://www.lighttpd.net/
- Ubuntu:http://www.ubuntu.com/