如何配置apache虚拟主机

article/2025/9/1 23:38:57

如何配置apache虚拟主机

实验目标:在apache实现基于域名的虚拟主机 

实验用的XAMPP版本为1.7.7,内含apache版本为2.2.21 

 

实验前准备:

1. 为了测试不同的域名,在Windows/System32/drivers/etc/下觅得hosts文件,在其中添加实验用的域名若干,如 -

127.0.0.1   test1.net

127.0.0.1   test2.net

如此,则在浏览器中输入该俩域名时,Windows将其解析为127.0.0.1本地地址。即,在浏览器中访问localhost, test1.net, test2.net均可访问XAMPP的欢迎页。

 

2. 在apache目录下建立目录,以放置您不同的网站。为保护XAMPP原有的htdocs中的欢迎页内容,实验另外建立了与htdocs平级的htdocs1目录,在其下建立了test1.net, test2.net两个子目录用以放置实验用的网站。如下 -

apache/htdocs1/test1.net - 放置test1.net网站内容

apache/htdocs1/test2.net - 放置test2.net网站内容

 在这两个目录中各新建hello world一网页 index.html,内容 -


< HTML >
< HEAD ></ HEAD >
< BODY >
< H1 >hello~, 这是[对应的网站名,用以区别].net </ H1 ></ BODY >
</ HTML >  

 

实验步骤:

1. 找到apache/conf/httpd.conf, 将其中的

ServerAdmin

ServerName

DocumentRoot

注释掉。

 

2. 在httpd.conf中,找到行

Include "conf/extra/httpd-vhosts.conf"

如被注释则解注。该文件记载了虚拟主机的参数。[以前虚拟主机参数是直接填写在httpd.conf中的,为了更好地组织文件,将其分离出去,类似于某些编程语言一样。因此httpd.conf中include它,即相当于把它的内容填在了httpd.conf中。]

 

3. 这个httpd-vhosts.conf文件格式基本如下 - 

复制代码
#blah-blah
NameVirtualHost *:80

#blah-blah
#blah-blah
< VirtualHost  *:80 >
    ServerAdmin XXXXXXXX
    DocumentRoot "XXXXXXXX"
    ServerName XXXXXXX
    ServerAlias XXXXXX
    ErrorLog "logs/XXXXXX-error.log"
    CustomLog "logs/XXXXXXX-error.log" combined   
</ VirtualHost > 
复制代码

需要修改的,就是<VirtualHost>中的参数了。这个可以参见apache官方文档。根据实验域名,可以增加两个<VirtualHost>:

 

复制代码
< VirtualHost  *:80 >
    ServerAdmin adm@test1.net
    DocumentRoot "C:/xampp/htdocs1/test1.net"
    ServerName test1.net
    ServerAlias www.test1.net
    ErrorLog "logs/test1-error.log"
    CustomLog "logs/test1-access.log" combined
    
     < Directory  "C:/xampp/htdocs1/test1.net" >
    order allow,deny
    allow from all
     </ Directory >    
</ VirtualHost >

< VirtualHost  *:80 >
    ServerAdmin adm@test2.net
    DocumentRoot "C:/xampp/htdocs1/test2.net"
    ServerName test2.net
    ServerAlias www.test2.net
    ErrorLog "logs/test1-error.log"
    CustomLog "logs/test1-access.log" combined
    
     < Directory  "C:/xampp/htdocs1/test2.net" >
    order allow,deny
    allow from all
     </ Directory >    
</ VirtualHost >
复制代码

注意,如果不在各VirtualHost中定义Directory的可访问性,你将遇到的是Access Forbidden!就连原来的localhost也是。

 

4. 由于之前注释掉了httpd.conf中的ServerName, DocumentRoot等,为了仍然能以localhost访问原XAMPP欢迎页,就在增加一个VirtualHost,如下 - 

复制代码
< VirtualHost  *:80 >
    ServerAdmin adm@localhost
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
    
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" combined
    
     < Directory  "C:/xampp/htdocs" >
    order allow,deny
    allow from all
     </ Directory >    
</ VirtualHost >
复制代码

 为了避免出错,把它放置在第一个Virtualhost位置。

 

至此,apache基于域名的虚拟主机配置完成。可以通过http://localhost访问XAMPP欢迎页,通过http://test1.net和http://test2.net访问各自的主页。 


#
# Virtual Hosts
#


# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.


#
# Use name-based virtual hosting.
#
NameVirtualHost *:80


#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#


<VirtualHost *:80>
    ServerAdmin kongdaoxian@gmail.com
    DocumentRoot "E:/skydao/apache2/htdocs"
    ServerName localhost
    ServerAlias www.skydao.com
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" combined
    
    <Directory "E:/skydao/apache2/htdocs">
    order allow,deny
    allow from all
    </Directory>    
</VirtualHost>


<VirtualHost *:80>
    ServerAdmin kongdaoxian@gmail.com
    DocumentRoot "E:/skydao/apache2/htdocs/project1"
    ServerName project1.com
    ServerAlias www.project1.com
    ErrorLog "logs/project1-error.log"
    CustomLog "logs/project1-access.log" combined
    
    <Directory "E:/skydao/apache2/htdocs/project1">
    order allow,deny
    allow from all
    </Directory>    
</VirtualHost>


<VirtualHost *:80>
    ServerAdmin kongdaoxian@gmail.com
    DocumentRoot "E:/skydao/apache2/htdocs/zendTest/public"
    ServerName zendTest.com
    ServerAlias www.zendTest.com
    DirectoryIndex index.php
    <Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
    </Directory>    
</VirtualHost>


<VirtualHost *:80>
    ServerAdmin kongdaoxian@gmail.com
    DocumentRoot "E:/skydao/apache2/htdocs/testRewrite"
    ServerName testRewrite.com
    ServerAlias www.testRewrite.com
    # DirectoryIndex index.php
    <Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
    </Directory>    
</VirtualHost>


<VirtualHost *:80>
    ServerAdmin kongdaoxian@gmail.com
    DocumentRoot "E:/skydao/apache2/htdocs/test"
    ServerName test.com
    ServerAlias www.test.com
    ErrorLog "logs/zendTest-error.log"
    CustomLog "logs/zendTest-access.log" combined
    
    <Directory "E:/skydao/apache2/htdocs/test">
    order allow,deny
    allow from all
    </Directory>    
</VirtualHost>


http://chatgpt.dhexx.cn/article/8bI6x8nw.shtml

相关文章

Apache 虚拟主机

文章目录 一、访问主机服务的本质1.1Apache访问控制1.2Apache保持连接1.3配置httpd-default.conf 二、httpd支持的虚拟主机类型2.1、基于域名2.2、基于IP地址2.3、基于端口 三、基于域名访问虚拟主机3.1安装Apache3.2虚拟主机提供域名解析3.3基于IP地址访问虚拟主机3.4基于端口…

Apache配置虚拟主机

1.安装apache服武器 yum install httpd -y ##apache软件 yum install httpd-manual ##apache的手册 systemctl start httpd systemctl enable httpd firewall-cmd --list-all ##列出火墙信息 firewall-cmd --permanent --add-servicehttp ##永久允许…

Apache虚拟主机配置详细教程

文章目录 Apache 虚拟主机企业应用部署一个端口不同域名调试worker工作模式进行压力测试权限设置Apache 配置文件详解Apache Rewrite 规则讲解Apache配置文件权限操作 总结 Apache 虚拟主机企业应用 企业真实环境中&#xff0c;一台WEB服务器发布单个网站会非常浪费资源&#x…

Apache虚拟主机的三种实现方式

Apache虚拟主机的三种实现方式 一、Apache简介二、Apache的特性三、Apache虚拟主机介绍四、安装Apache步骤1.安装httpd软件包2.放行防火墙服务3.查看httpd进程4.创建测试网站文件 五、三种虚拟主机的配置方法1.基于域名的虚拟主机①创建网页文件②创建服务配置文件③查看web1.c…

Apache配置虚拟主机三种方式(保姆级教学)

由于本人很笨&#xff0c;第一次学步骤比较多。想学的可以耐下心来看、来学。 实验环境&#xff1a;ContOS 7&#xff0c;Apache服务器 在ContOS中可以运行一下代码直接下载 [rootlocalhost ~]# yum install -y httpd 下载完可以查看下载的内容 [rootlocalhost ~]# rpm -q…

Apache的虚拟主机

一&#xff1a;web的虚拟主机 虚拟web主机指的是在同一台服务器中运行多个web站点&#xff0c;其中的每个网站并不单独占用整个服务器&#xff0c;因此被称为“虚拟”web主机&#xff0c;通过虚拟web主机服务可以充分利用服务器的硬件资源&#xff0c;从而降低网站构建与运行成…

excel一直显示“操作系统当前的配置不能运行此应用程序”

问题描述 我的系统win10&#xff0c;操作x64,安装office2019&#xff0c;由于学习中不经常使用到excel时隔半年我今天打开excel一直显示“操作系统当前的配置不能运行此应用程序 ”&#xff0c;好家伙给我整不会了&#xff0c;不慌让我们打开百度&#xff01;百度半天都没有解…

由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题

我们用 VS 2005 编写非托管的程序, 在一台未安装 .net 开发环境的机器上运行会出现 "由于应用程序的配置不正确&#xff0c;应用程序未能启动&#xff0c;重新安装应用程序可能会纠正这个问题"。 开始时还以为必须要安装 .net Framework 2.0 &#xff0c; 然后安装…

由于应用程序配置不正确,程序未能启动”--原因及解决方法

由于应用程序配置不正确,程序未能启动”--原因及解决方法 http://moogge.spaces.live.com/blog/cns!ab9b00d806d52aed!245.entry 问题描述:当运行由VC 2005 编译的程序时,出现错误消息“由于应用程序配置不正确,程序未能启动.重新安装应用程序可能会纠正这个错误”解决方法…

一种解决运行程序报“应用程序配置不正确”的问题

在我们开发工程中&#xff0c;可能有些情况下&#xff0c;不能在本机进行调试。这个时候我们一般会使用VM&#xff08;vmware)建立一个虚拟机环境&#xff0c;然后把编译过的程序放在该虚拟机环境下执行调试。可是在某些情况下&#xff0c;不管我们编译的是debug还是release版本…

C# .NET 解决提示“由于应用程序配置不正确,应用程序未能启动..”的错误

C# 应用程序开发时&#xff0c;修改程序代码后&#xff0c;调试运行程序 莫名其妙弹出这个报错。 百度找解药呀&#xff0c;&#xff0c;找了好多方法&#xff0c;&#xff0c;都是 " 项目--->配置属性---->链接器---->清单文件--->生成清单-->设置为&q…

Win11应用程序启动提示配置不正确解决方法

Win11应用程序启动提示配置不正确解决方法分享。近期有不少的用户遇到了在启动应用程序的时候&#xff0c;出现错误提示的问题。出现的错误提示是应用配置不正确&#xff0c;那么这个错误提示问题要怎么去进行解决&#xff0c;一起看看具体的解决方法吧。 解决方法&#xff1a;…

“应用程序配置不正确, 程序无法启动”解决方法

最近在XP 32位系统上用VS2008开发的MFC Application程序在没有安装VS2008的Win7系统上双击运行以后出现了“应用程序配置不正确, 程序无法启动”的bug。经过半天时间的研究整理出三种方案可以用来解决该问题。 方法一:对于不需要运行时函数支持的工程可以采用该方法。 (1)…

nmap参数

nmap参数&#xff08;转&#xff09; 进行ping扫描&#xff0c;打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测): nmap -sP 192.168.1.0/24 仅列出指定网络上的每台主机&#xff0c;不发送任何报文到目标主机: nmap -sL 192.168.1.0/24 探测目标主…

主动扫描技术nmap详解

主动扫描与被扫描目标有一个互动的过程&#xff0c;目标是可能知道自己在被扫描的&#xff1b;主动扫描一般都是针对目标发送特制的数据包&#xff0c;然后根据目标主机的反应来获得一些信息&#xff0c;帮助我们过滤无意义的主机&#xff0c;建立目标的网络拓扑&#xff0c;主…

nmap 扫描数据分析

本案22端口为开放端口&#xff0c;110为未开放端口 Wireshark上使用下面的表达式 ip.addr192.168.104.127 and ip.addr192.168.104.61 and tcp.port22 ip.addr192.168.104.127 and ip.addr192.168.104.61 and tcp.port110 命令一、 nmap -sS SYN-->SYN ACK-->RST …

Nmap专题

Nmap专题笔记 介绍网络扫描相关概念和Nmap的作用。介绍Nmap相关概念、演示简单的安装过程。列举Nmap的主要参数&#xff0c;介绍相关参数。实例演示Nmap的常用扫描技巧。介绍使用Nmap的脚本扫描。 建议学习方法 1.熟记Nmap的主要参数命令。 2.学习OSI七层模型的相关知识&…

Nmap扫描

基本快速扫描 Nmap 默认发送一个arp的ping数据包来探测目标主机在1-10000范围内所开放的端口。 nmap 10.130.1.43 快速扫描多个目标 nmap <target ip1 address> <target ip2 address> nmap 10.130.1.28 10.130.1.43 详细描述输出扫描 简单扫描并对返回的结果详细描…

Nmap入门

Nmap入门 Nmap介绍 nmap是用来探测网络、目标主机的操作系统&#xff0c;安全审计的工具&#xff0c;可以用来快速扫描。nmap也有图形界面。 特点&#xff1a; 主机测试端口扫描版本检测支持探测脚本的编写 kali虚拟机中本来就有nmap&#xff0c;所以安装好kali之后直接在…

网络安全nmap扫描端口命令详解linux网络探测

简介&#xff1a; nmap是一个网络连接端扫描软件&#xff0c;用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端&#xff0c;并且推断计算机运行哪个操作系统&#xff08;这是亦称 fingerprinting&#xff09;。它是网络管理员必用的软件之一&#xff0c;以及用…