在Apache2.2中,配置“基于端口”和“基于域名”的虚拟主机的注意事项

系统操作&设置

  • 有时设置完重启Apache仍无法显示设置后的结果,则可能是浏览器缓存了页面,此时可以用ctrl+F5刷新当前页面及缓存
  • Apache启动方式有下列几种
启动方式弹出错误/警报解决方法
通过托盘Monitor启动“The requested operation has failed”一般是端口占用
以管理员身份通过命令行
在安装目录的bin下启动
httpd -k start或stop或restart
“[warning]… 127.0.0.1 for ServerName”不建议修复该警报
如果在httpd.conf中添加
ServerName 127.0.0.1,则报警消失,
但会导致Apache无法启动,表现为:
运行httpd -k start
无命令行反馈,而后运行
httpd -k stop提示Apache未曾启动。
通过服务面板启动
(不是任务管理器中的"服务")
“服务器无法启动,发生服务特定错误1”可能原因
(1)端口被占用
(2)在<VirtualHost>下如果添加了
"ErrorLog xxx",则会导致该错。
  • 主要有三个程序会占用80端口:迅雷、SQL和IIS。(建议卸载迅雷以免影响测试)如果发现有程序占用80端口,可以稍等一会程序可能会自动停止而释放80端口。
    • 查询哪个应用程序占用了80端口:在命令行输入netstat -aon|findstr "80",而后根据所得的PID在任务管理器中找到进程,如果是"System,PID=4",则应该考虑是否是IIS或SQL占用,前者通过在“程序与软件”中停用(就是取消勾选相应的IIS组件),后者需手动在“服务”中设置启动类型为“手动”。

配置文件设置

  • 四个关键的设置项:NameVirtualHostListen<VirtualHost>和hosts文件。
  • 如果需要为localhost单独配置一个页面,需配置<VirtualHost _default_:80>。其中80端口是必须的,这样可以限制该虚拟主机只使用80端口而不使用其他端口,否则,无法访问其他ip地址为127.0.0.1的“基于端口”的虚拟主机(因为被_default_截住了)。
  • 只有“基于域名”的虚拟主机需要配置NameVirtualHost和hosts文件,“基于端口”的虚拟主机不需要配置上述两个参数,但需要配置Listen 80,监听80端口。(因为Apache默认配置了Listen 80,所以“基于域名”的虚拟主机不用再配置Listen 80了)
  • hosts文件是用于配置域名解析服务(DNS)的,而域名解析与端口无关。
  • 如果需要配置“基于端口”的虚拟主机,如果在公网上没有属于自己的IP地址和域名备案(也就是说需要配置host文件指定IP和域名的对应关系),那么在配置<VirtualHost ____:___>时端口必须是80,否则会由于hosts文件无法传递端口信息而自动跳转到localhost:80对应的主机下的网站。这个问题的关键在于Apache并不是根据输入的域名去寻找主机,而是拿hosts返回的ip地址去找,而hosts返回的ip不带有端口信息,则Apahce会自动加上80端口,但是80端口配置的主机下并不存在我们所输入域名对应的网站,所以会出现无法访问“端口≠80的基于域名的虚拟主机”的问题。
基于端口的虚拟机没有框内的步骤
由于公网上没有自设的ip与域名的对应关系
因为hosts文件只能传递解析好的ip地址给Apache服务器( 不包括端口 ) ,而不能传递端口
Apache根据传入的ip地址, 发现没有端口指定, 于是自动加上80端口, 并查看 < Virtualhost > 下的 __:80 配置
在Host文件中添加ip与域名的对应关系
当访问的不是80端口的 "基于域名的虚拟主机" 时
基于域名(Name)的主机
需配置Namevirtualhost__:__与<Virtualhost __:__>两两相互对应
如: Namevirtualhost *: 80 然后 < Virtualhost *: 80 >
如果有其它配置了127.0.0.1 ( 或* ) 的虚拟主机, 则会默认跳转之, 否则是该主机不存在而无法访问
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值