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

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 132 ::
收藏到网摘: 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]