apache2.2 虚拟主机配置详解,apache2.2详解
一、修改httpd.conf
打开appserv的安装目录,找到httpd.conf文件,分别去掉下面两行文字前面的#号。
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
去掉#意思是启用apache的虚拟主机功能。
#Include conf/extra/httpd-vhosts.conf
去掉这一行的#意思是从conf/extra/httpd-vhosts.conf这个文件导入虚拟主机配置
二、修改httpd-vhosts.conf
打开该文件,看到以下类似内容。虚拟主机的配置也是参照以下内容配置。下面对该内容进行讲解
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@dummy-host.www.phpStudy.net DocumentRoot "C:/Program Files/Apache2/docs/dummy-host.www.phpStudy.net" ServerName dummy-host.www.phpStudy.net ServerAlias www.dummy-host.www.phpStudy.net ErrorLog "logs/dummy-host.www.phpStudy.net-error.log" CustomLog "logs/dummy-host.www.phpStudy.net-access.log" common </VirtualHost>
NameVirtualHost *:80
注意1:NameVirtualHost 指定虚拟主机所使用的IP地址或域名,但是最好是IP地址。使用基于域名的虚拟主机时,NameVirtualHost是必要的指令。NameVirtualHost可以定义多个。 注意2:所有符合NameVirtualHost或
ServerAdmin 管理员邮箱
DocumentRoot 网站目录 (注意:如果网站目录中的路径有空格,请在路径两端加上双引号)
ServerName 要绑定的域名(必填)
ServerAlias 要绑定的虚拟主机的别名。(可选,如果多个域名,中间以空格分隔,如果没有,则去掉该行)
支持*,?两种通配符,比如 *.abc.com,表示任意一个abc.com的二级域名都可访问。
CustomLog 用户日志文件(可选,如果不需要,则去掉该行)
ErrorLog 错误日志(可选,如果不需要,则去掉该行)
基于IP地址的虚拟主机
<VirtualHost 172.20.30.40> DocumentRoot /www/example1 ServerName www.example.com </VirtualHost>
<VirtualHost 172.20.30.50 192.168.0.10:80> DocumentRoot /www/example2 ServerName www.example.org </VirtualHost>
每个虚拟主机可定义多个IP,之间用空格隔开
各种虚拟主机的混用
Listen 80 Listen 81 NameVirtualHost 172.20.30.40 <VirtualHost 172.20.30.40> DocumentRoot /www/example1 ServerName www.example.com </VirtualHost> <VirtualHost 172.20.30.40> DocumentRoot /www/example2 ServerName www.example.org </VirtualHost> NameVirtualHost 172.20.30.40:81 <VirtualHost 172.20.30.40:81> DocumentRoot /www/example3 ServerName www.example3.net </VirtualHost> # IP-based <VirtualHost 172.20.30.50> DocumentRoot /www/example4 ServerName www.example4.edu </VirtualHost> <VirtualHost 172.20.30.60:81 172.20.30.40:81> DocumentRoot /www/example5 ServerName www.example5.gov </VirtualHost>
虚拟主机混用时的问题
一、虚拟主机混用可以这样理解:一行NameVirtualHost指令定义的所有虚拟主机为一组;该组与一个基于IP的虚拟主机平级。即把一行NameVirtualHost定义的整个组看作是一个基于IP的虚拟主机。 二、虚拟主机指定的端口必须是Listen定义的。如果虚拟主机没有指定端口,则认为是80端口。如果NameVirtualHost * 这样定义,是指所有地址的所有已定义端口。 三、更具体的地址定义优先。比如NameVirtualHost指令定义了*:80,而某个基于IP的虚拟主机定义为192.168.0.1:80,那么此时如有对192.168.0.1:80的请求,那请求会被优先指向192.168.0.1:80定义的虚拟主机。所以为了避免混乱,不要定义相互有交叉或包含的地址区间。 四、一个虚拟主机,可以同时为基于域名和基于IP的。如上一例中最后一个虚拟主机。这样符合两种定义的请求都会被指同一个虚拟主机。有时要区别内外网对虚拟主机的访问时可以这样,因为来自内网的请求可能和来自外网的请求可能不一样,但是它们需要指向同一个虚拟主机。
使用"_default_"虚拟主机
这个虚拟主机可以理解成基于IP的虚拟主机
<VirtualHost _default_:*> DocumentRoot /www/default </VirtualHost>
这个虚拟主机将接管与其它虚拟主机IP和端口不匹配的请求。不过如此一来,主服务器将不会处理任何请求。因此把主服务器配置成一个虚拟主机是必要的。
本地机器代理在其它机器上运行的虚拟主机
<VirtualHost 158.29.33.248> ProxyPreserveHost On ProxyPass /foo/no ! ProxyPass /foo http://192.168.111.2 ProxyPassReverse /foo http://192.168.111.2 ServerName hostname.example.com </VirtualHost>
一、首先这是一个基于IP的虚拟主机,它接收并处理对IP地址158.29.33.248的请求。 二、ProxyPass /foo http://192.168.111.2 将把对http://158.29.33.248/foo的请求转换为一个代理请求,该请求指向http://192.168.111.2。 三、ProxyPass /foo/no ! 不代理针对/foo/no的请求。这个必须放在正常代理指令之前。 四、ProxyPreserveHost On 意思是传送原始请求的Host信息给被代理的机器。 五、ProxyPassReverse /foo http://192.168.111.2 可以保证请求URL在其它机器上被重定向后,本机处理时也可以保持一致。具体看手册关于反向代理的部分。 六、基于域名的虚拟主机也是同样的道理。不管是什么类型的虚拟主机,它只是处理归它处理的请求而已。
配置实例
需求1:
这是一个基于IP的虚拟主机使用实例
一个项目数据应用,为了防止由于域名解析问题导致不能正常访问,因此采用IP的方式访问接口。比如:http://61.122.3.6:8080/ 这样的方式。虚拟主机的配置如下:
1、在httpd.conf中Listen 80下面增加一行,内容为:Listen 8080,即监听8080端口
2、配置虚拟主机配置
#NameVirtualHost 61.122.3.6:8080 这一行可以不需要。经测试,基于IP地址的虚拟主机可不用设置NameVirtualHost项。 <VirtualHost 61.122.3.6:8080> ServerAdmin webmaster@dummy-host.www.phpStudy.net DocumentRoot "d:/web/openj" </VirtualHost>

在PHP中设置会话cookie参数可以通过session_set_cookie_params()函数实现。1)使用该函数设置参数,如过期时间、路径、域名、安全标志等;2)调用session_start()使参数生效;3)根据需求动态调整参数,如用户登录状态;4)注意设置secure和httponly标志以提升安全性。

在PHP中使用会话的主要目的是维护用户在不同页面之间的状态。1)会话通过session_start()函数启动,创建唯一会话ID并存储在用户cookie中。2)会话数据保存在服务器上,允许在不同请求间传递数据,如登录状态和购物车内容。

如何在子域名间共享会话?通过设置通用域名的会话cookie实现。1.在服务器端设置会话cookie的域为.example.com。2.选择合适的会话存储方式,如内存、数据库或分布式缓存。3.通过cookie传递会话ID,服务器根据ID检索和更新会话数据。

HTTPS通过加密数据传输、防止中间人攻击和提供身份验证,显着提升了会话的安全性。 1)加密数据传输:HTTPS使用SSL/TLS协议加密数据,确保数据在传输过程中不被窃取或篡改。 2)防止中间人攻击:通过SSL/TLS握手过程,客户端验证服务器证书,确保连接合法性。 3)提供身份验证:HTTPS确保连接的是合法服务器,保护数据完整性和机密性。

PHP仍然流行的原因是其易用性、灵活性和强大的生态系统。1)易用性和简单语法使其成为初学者的首选。2)与web开发紧密结合,处理HTTP请求和数据库交互出色。3)庞大的生态系统提供了丰富的工具和库。4)活跃的社区和开源性质使其适应新需求和技术趋势。

PHP和Python都是高层次的编程语言,广泛应用于Web开发、数据处理和自动化任务。1.PHP常用于构建动态网站和内容管理系统,而Python常用于构建Web框架和数据科学。2.PHP使用echo输出内容,Python使用print。3.两者都支持面向对象编程,但语法和关键字不同。4.PHP支持弱类型转换,Python则更严格。5.PHP性能优化包括使用OPcache和异步编程,Python则使用cProfile和异步编程。

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

PHP起源于1994年,由RasmusLerdorf开发,最初用于跟踪网站访问者,逐渐演变为服务器端脚本语言,广泛应用于网页开发。Python由GuidovanRossum于1980年代末开发,1991年首次发布,强调代码可读性和简洁性,适用于科学计算、数据分析等领域。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

WebStorm Mac版
好用的JavaScript开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

记事本++7.3.1
好用且免费的代码编辑器