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

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

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


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