当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > Apache虚拟主机快速搭建攻略

Linux服务器
Linux下配置NTP架设本地时间服务器
RedHatLinux9架设FTP服务器方法
Linux邮件服务器常见错误报告列表
高手进阶:配置Domino服务器详细步骤
Apache下服务器虚拟主机设置方法介绍
Linux攻略DNS服务器安装配置方法详细介绍
Apache服务器攻略用户认证简单配置方案集
Linux系统下SVN服务器的搭建过程详解
FreeBSD下构建安全的Web服务器
vsftp配置大全---超完整版
Linux系统无盘工作站架设实例
LINUX学习笔记:DNS服务器设置篇
搭建Linux邮件网关与邮件系统
RHEL4系统Sendmail邮件服务器的架设
Linux系统服务器站点流量限制的方案
linux下的sendmail的配置
怎么用Rsh/Tar快速克隆Linux服务器
Cisco网络设备搭建VPN服务器的全过程
详细解析配置Telnet服务与Ftp服务
RedHatLinuxAS4LAMP网站搭建实例

Linux服务器 中的 Apache虚拟主机快速搭建攻略


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 129 ::
收藏到网摘: n/a

在单个机器上的虚拟主机通常不只运行一个web站点,虚拟主机可以是基于ip的,也就是说你要为每个web站点配置一个不同的ip地址,虚拟主机也可以是基于名称的,即在每个ip地址上对应着多个域名,你还可以在不同的端口上运行你的web页面,如8080或8090,事实上它们运行在相同的物理服务器上,最终用户察觉不到,本专题描述在OpenSuse10.2服务器上的配置步骤。

首先我想说的是,这不是配置Apache服务器唯一的方法,有许多方法可以实现这个目标,但我选择的是这个方法,我不能保证这个方法能在你的服务器或发行版上很好地运转。

我们将在独立的位置(目录)下配置四种不同的web页面,并使用不同的起始页(index.html)验证原理。

简单网络结构图

步骤1:创建index页面

Suse通常将web页面存储在/srv/www/htdocs目录下,我们将使用同一个目录,但为每个虚拟主机单独创建一个子目录:

mkdir/srv/www/htdocs/server_port80

mkdir/srv/www/htdocs/server_port8090

mkdir/srv/www/htdocs/server_www

mkdir/srv/www/htdocs/server_www1

然后你就可以将内容存储在这个目录下,首先我们创建一个包含服务器类型信息的index.html文件,文件内容如下:

<VirtualHost192.168.33.101:80>ServerAdminwebmaster@myserver.comThise-mailaddressisbeingprotectedfromspambots,youneedJavaScriptenabledtoviewit

ServerNameserver.myserver.com

DocumentRoot/srv/www/htdocs/server_port80

ErrorLog/var/log/apache2/server_port80.log

CustomLog/var/log/apache2/access_port80.logcombined

HostnameLookupsOff

UseCanonicalNameOff

ServerSignatureOn

ScriptAlias/cgi-bin/"/srv/www/htdocs/server_port80/cgi-bin/"

<Directory"/srv/www/htdocs/server_port80/cgi-bin">

AllowOverrideNone

Options+ExecCGI-Includes

Orderallow,deny

Allowfromall

</Directory>

<Directory"/srv/www/htdocs/server_port80">

OptionsIndexesFollowSymLinks

AllowOverrideNone

Orderallow,deny

Allowfromall

</Directory>

</VirtualHost>

将内容修改为你想要的,然后在每个子目录下保存一个修改过的index文件。

如果你想在不同的端口上运行你的web页面,使用下面的配置文件:

<VirtualHost192.168.33.101:8090>
ServerAdminwebmaster@myserver.comThise-mailaddressisbeingprotectedfromspambots,youneedJavaScriptenabledtoviewit
ServerNameserver.myserver.com
DocumentRoot/srv/www/htdocs/server_port8090
ErrorLog/var/log/apache2/server_port8090.log
CustomLog/var/log/apache2/access_port8090.logcombined
HostnameLookupsOff
UseCanonicalNameOff
ServerSignatureOn
ScriptAlias/cgi-bin/"/srv/www/htdocs/server_port8090/cgi-bin/"
<Directory"/srv/www/htdocs/server_port8090/cgi-bin">
AllowOverrideNone
Options+ExecCGI-Includes
Orderallow,deny
Allowfromall
</Directory>
<Directory"/srv/www/htdocs/server_port8090">
OptionsIndexesFollowSymLinks
AllowOverrideNone
Orderallow,deny
Allowfromall
</Directory>
</VirtualHost>

正常情况下,web服务器监听80端口,如果你想修改这个端口或添加一个端口如8090,你必须hacklisten.conf文件,详细信息请参考步骤4。

步骤3:配置一个基于名称的虚拟主机

使用类似步骤2中的方法利用默认模板创建一个新的配置文件:

cd/etc/apache2/vhosts.d

cpvhost.templatevhost-www.conf

下面这两行是需要你修改的:

ServerName使用在URL看到的域名

UseCanonicalNameOn

注释:在Apache上开启了UseCanonicalName后,它将使用ServerName和Port构造服务器的规范名称,这个名称用于所有自身参考URLs,以及CGIs中SERVER_NAME和SERVER_PORT的值。

如果你的服务器有多个ip地址或你想使用不同的端口,请修改下面这一行:

VirtualHost192.168.33.101:80

整个文件看起来应该象:

<VirtualHost192.168.33.101:80>
ServerAdminwebmaster@myserver.comThise-mailaddressisbeingprotectedfromspambots,youneedJavaScriptenabledtoviewit
ServerNamewww.myserver.com
DocumentRoot/srv/www/htdocs/server_www
ErrorLog/var/log/apache2/server_www.log
CustomLog/var/log/apache2/access_www.logcombined
HostnameLookupsOff
UseCanonicalNameOn
ServerSignatureOn
ScriptAlias/cgi-bin/"/srv/www/htdocs/server_www/cgi-bin/"
<Directory"/srv/www/htdocs/server_www/cgi-bin">
AllowOverrideNone
Options+ExecCGI-Includes
Orderallow,deny
Allowfromall
</Directory>
<Directory"/srv/www/htdocs/server_www">
OptionsIndexesFollowSymLinks
AllowOverrideNone
Orderallow,deny
Allowfromall
</Directory>
</VirtualHost>

步骤4:hacklisten.conf文件

下面的文件允许你绑定ip地址和/或端口到Apache,请修改下面这些行:

Listen添加运行web页面的端口,可以添加多个。

NameVirtualHost这个指令告诉Apache在哪个ip地址,(可选的)哪个端口上监听客户端包含在HTTP头中的域名请求,第一个参数可以是一个完全限定域名,但是推荐使用ip地址,第二个参数是端口(可选的),默认情况下,使用的是80端口,通过Listen指令配置。

这个文件的内容看起来象:

Listen80Listen8090

<IfDefineSSL>

<IfDefine!NOSSL>

<IfModulemod_ssl.c>

Listen443

</IfModule>

</IfDefine>

</IfDefine>

NameVirtualHost192.168.33.101:80

要对你的配置进行故障诊断,你应该在Linux终端运行下面的命令:

tail–f/var/log/messages

在修改了配置文件后别忘了使用下面的命令重启apache(观察错误):

serviceapache2restart

/etc/init.d/apache2restart

上一页[1][2][3][4]