FY

找回密码
立即注册
搜索
发新帖

585

积分

0

好友

67

主题
发表于 2023-11-14 16:28:49 | 查看: 85| 回复: 0
1. Apache 默认关闭虚拟主机,需要在 Apache 的主配置文件 httpd.conf 中主动打开。
即 Apache24\conf\httpd.conf-Sublime Text
打开配置文件,搜索 VirtualHost,往下翻具体位置为516行 Include httpd-vhosts.conf。去掉注释将其开启。添加注释#开启虚拟主机
2.配置虚拟主机:在 Apache 的 conf\extra\httpd-vhosts.conf
打开conf\extra\httpd-vhosts.conf,清空虚拟主机信息及将相关路径。
配置虚拟主机
(1)增加虚拟主机主标记: VirtualHost 标记,代表虚拟主机;*:80中*表示本机IP,80表示监听的端口(如果主配冒端口有变,此外要跟着变化)
(2)配置主机信息: DocumentRoot 文档位置,ServerName 选用的主机名、域名。
(3)配置目录权限:Directory 指定目录;Require 设置权限;Directoryindex 设置默认首页文件等。
具体如下
httpd-vhosts. conf
  1. 24 #配置自己的虚拟主机
  2. 25 <VirtualHost*:80>
  3. 26 #指定文档位置:网站根目录
  4. 27 DocumentRoot"D:/server/Apache24/htdocs"
  5. 28 #确定主机名
  6. 29 ServerName        www.myweb.com
  7. 30
  8. 31 #权限管理
  9. 32 <Directory"D:/server/Apache24/htdocs">
  10. 33 #允许所有人访问
  11. 34 Require all granted
  12. 35 #Require local:本地访问
  13. 36 #Require all granted:全部访问
  14. 37 #Require all Denied:拒绝所有访问
  15. 38 #Require ip127.0.0.1:允许指定IP访问(内部访问)
  16. 39 #Require not ip 192.168.98.1 :禁止指定 IP 访问(防止指定攻击)
  17. 40 Require host localhost:允许使用 localhost 访问(私有主机)
  18. 41
  19. 42
  20. 43 #配置默认访问页面:首先默认 indexphp,如果找不到找index.html
  21. 44 DirectoryIndex index.php index.html
  22. 45 </Directory>
  23. 46
  24. 47</VirtualHost>
复制代码
实际操作:
返回并找到虚拟主机,保留其中一条路径,添加注释 # 配置虚拟主机:针对D:/server/web ,D 盘下 sever-的 web 目录无法访问,而进行配置。
需要用到以下几个东西
(1)DucumentRoot ‘’D:/server/web’’ 指定对应的位置,添加“ ‘’ ‘’ ”引号以表示其为路径,且需要一个别名,使别人能够访问,例如www.baidu.com等。
(2)ServerName  www.myweb.com
(3)权限配置,添加注释
#权限配置
<Directory ‘’D:/server/web’’ >
#允许所有人访问
Require All granted
#设置默认首页
DirectoryIndex index.php
<Directory>
以保证安全和友好性;在实际开发中需要设置更多的权限以实现更多的控制,针对文件夹甚至是子文件夹。
注意:
一旦开启虚拟主机, Apache 默认的 localhost 访问就会失效,如果要进行虚拟主机配置且不是指向原来的文档位置 htdocs,那么需要重新配置一个 localhost 指向 htdocs 文件夹。
在上述操作中,即主配置文件中的 ServerName 失效,若要使其重新生效,就要在上述实际操作中进行重新配置:
DucumentRoot ‘’D:/server/Apache24/htdocs’’
ServerName  localhost
#权限配置
<Directory ‘’D:/server/Apache24/htdocs’’ >
#允许所有人访问
Require All Granted
#设置默认首页
DirectoryIndex index.php  incex.html
<Directory>
重启 Apache,让配置生效(所有配置修改都需要重启 Apache )
与此同时可以进行测试,
查看是否出错:
输入 cd.. cd.. cd..Apache24/bin/httpd-t 来测试语法。并访问127.0.0.1 、localhost和 www.myweb.con
3.虚拟主机的配置只是服务器的更新,要想让客户(浏览器)能够访问到,就必须配置 DNS ;开发时可以利用本地 DNS (hosts文件)来实现域名解析。
快捷键 win+R,调出并输入 drivers ,打开 etc;找到对应的 host 文件,配置127.0.0.1  localhost 即将 www.myweb.con 解析到本地。
此时不必重启Apache,修改的域名与服务器没有关系。
在 server/web 下创建文件 index.php,输入 echo—_’hhaha ’;保存后再次访问,即可访问到;localhost 显示 it works 打开对应的是 Apache24/Index/Index.php,刷新后访问到变成 hello world。浏览器有缓存,所以完成虚拟主机的配置时,有时候看到的是修改前原来的数据,所以需要刷新或清除对应的缓存。
小结
1. 虚拟主机是在一台真实主机上配置多个网站对外提供多种服务,从而节省主机成本。
2. 虚拟主机分为两种:基于 IP 的虚拟主机和基于域名的虚拟主机。
3. 基于域名的虚拟主机配置逻辑
(1)主配置文件开启虚拟主机
(2)虚拟主机配置文件配置虚拟主机
主机名:ServerName
档位置:DocumentRoot
目录权限:Directory
(3)重启 Apache 使得配置生效
(4)修改 DNS 实现外部访问
本地访问:修改 hosts 文件。
外部访问:修改 DNS
4.如果在有多个虚拟主机的情况下,是基于 IP 来进行访问的;如在以上操作中,访问127.0.0.1/index.php系统通过主机名进行区分,此时区分不出,则刷新后系统会自动匹配第一个。
  1. <VirtualHost _default_:80>
  2. #网站根目录
  3. DocumentRoot "D:\phpStudy\PHPTutorial\WWW\tp6\public"
  4. #访问权限目录
  5.   <Directory "D:\phpStudy\PHPTutorial\WWW\tp6\public">
  6.     Options -Indexes -FollowSymLinks +ExecCGI
  7. #是否使用.htaccess文件
  8.     AllowOverride All
  9.     Order allow,deny
  10.     Allow from all
  11. #错误日志
  12. ErrorLog "D:\phpStudy\PHPTutorial\WWW\tp6\logs\error.log"
  13. #成功日志
  14. CustomLog "D:\phpStudy\PHPTutorial\WWW\tp6\logs\access.log"  combined
  15. #访问目录权限
  16.     Require all granted
  17.   </Directory>
  18. </VirtualHost>
复制代码


您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|fatsky

GMT+8, 2024-5-19 00:29 , Processed in 0.040231 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表