使用mod_mysql_vhost在Lighttpd(Ubuntu 12.04)上创建简单的虚拟主机

本指南解释了如何使用mod_mysql_vhost创建简单 在Ubuntu 12.04的lighttpd Web服务器上的虚拟主机。与 mod_mysql_vhost,...

使用mod_mysql_vhost创建简单的虚拟主机在Lighttpd(Ubuntu 12.04)

本指南介绍如何使用mod_mysql_vhost在Ubuntu 12.04上的lighttpd Web服务器上创建简单的虚拟主机。 使用mod_mysql_vhost,lighttpd可以从MySQL数据库读取vhost配置。 目前,您可以将域和文档根存储在MySQL数据库中,从而导致非常简单的虚拟主机。 如果您需要更多的vh​​osts指令,那么您必须在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.comhttp://www.example.orghttp://www.example.com应显示www.example.comhttp://www.example.org应显示www.example.org