使用mod_mysql_vhost创建简单的虚拟主机在Lighttpd(Ubuntu 12.04)
本指南介绍如何使用mod_mysql_vhost在Ubuntu 12.04上的lighttpd Web服务器上创建简单的虚拟主机。 使用mod_mysql_vhost,lighttpd可以从MySQL数据库读取vhost配置。 目前,您可以将域和文档根存储在MySQL数据库中,从而导致非常简单的虚拟主机。 如果您需要更多的vhosts指令,那么您必须在lighttpd.conf的全局部分中进行配置,这意味着它们对所有vhosts都有效。 因此,如果您的vhosts在域和文档根目录中有所不同,那么mod_mysql_vhost是非常理想的。
我不会保证这将为您工作!
1初步说明
因为我们必须使用root权限运行本教程的所有步骤,所以我们可以使用字符串sudo
在本教程中添加所有命令,也可以通过键入来成为root
sudo su
2安装MySQL 5.0
首先我们像这样安装MySQL 5:
apt-get install mysql-server mysql-client
您将被要求为MySQL root用户提供密码 - 此密码对用户root @ localhost
以及root@server1.example.com有效
,因此我们不必在以后手动指定MySQL根密码:
MySQL“root”用户的新密码:
< - yourrootsqlpassword
重复MySQL“root”用户的密码:
< - yourrootsqlpassword
3安装Lighttpd和mod_mysql_vhost
您可以安装lighttpd(如果尚未安装)和mod_mysql_vhost,如下所示:
apt-get install lighttpd lighttpd-mod-mysql-vhost
要启用mod_mysql_vhost,我们打开/etc/lighttpd/lighttpd.conf
并在server.modules
节中添加/启用“mod_mysql_vhost”
:
vi /etc/lighttpd/lighttpd.conf
server.modules = ( "mod_access", "mod_alias", "mod_compress", "mod_redirect", "mod_mysql_vhost", # "mod_rewrite", ) [...] |
之后,我们重新启动lighttpd:
/etc/init.d/lighttpd restart
4配置mod_mysql_vhost
现在我们登录到MySQL ...
mysql -u root -p
...并创建数据库lighttpd
:
CREATE DATABASE lighttpd;
接下来,我们使用lighttpd
数据库的SELECT
权限创建一个数据库用户(我们名为lighttpd
):
GRANT SELECT ON lighttpd.* TO lighttpd@localhost IDENTIFIED BY 'secret';
GRANT SELECT ON lighttpd.* TO lighttpd@localhost.localdomain IDENTIFIED BY 'secret';
FLUSH PRIVILEGES;
(用您选择的密码替换密码。)
然后我们在lighttpd
数据库中创建域
表,并离开MySQL:
USE lighttpd;
CREATE TABLE domains (
domain varchar(64) not null primary key,
docroot varchar(128) not null
);
quit;
现在我们打开/etc/lighttpd/lighttpd.conf
,并在文件末尾添加以下mod_mysql_vhost配置:
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 |
(使用以前为lighttpd
MySQL用户设置的密码替换密码。)
重启lighttpd:
/etc/init.d/lighttpd restart
现在是配置虚拟主机的时候了...
5配置虚拟主机
我现在将配置两个虚拟主机,一个用于www.example.com
(文档根目录为/var/www/www.example.com/web
),另一个用于www.example.org
(文件根/ var / www /www.example.org/web
)。
首先,我们创建两个网站的文档根(如果它们不存在):
mkdir -p /var/www/www.example.com/web
mkdir -p /var/www/www.example.org/web
然后我们登录到MySQL ...
mysql -u root -p
USE lighttpd;
...并创建vhosts如下:
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/');
我们现在可以离开MySQL shell:
quit;
就是这样,vhosts现在被配置和工作,并且不需要lighttpd重新启动。
要检查vhosts是否正常工作,我们在每个文档根目录中创建一个index.html
文件,其中一个字符串为“www.example.com”,另一个为“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
并在浏览器中调用http://www.example.com
和http://www.example.org
。 http://www.example.com
应显示www.example.com
, http://www.example.org
应显示www.example.org
。
6链接
- mod_mysql_vhost: http : //redmine.lighttpd.net/projects/1/wiki/Docs : ModMySQLVhost
- Lighttpd: http : //www.lighttpd.net/
- Ubuntu: http : //www.ubuntu.com/