今天在尝试使用apache环境做本地调试时突发奇想能不能用修改host文件,新建虚拟域名直接访问本地目录。感觉调试起来更真实。
首先来配置虚拟域名
一、打开apache配置文件
路径:E:\wamp\bin\apache\apache2.4.9\conf\httpd.conf
或者点击桌面右下角wamp图标 按下图方式也可以快速找到
Apache配置虚拟主机的坑 本地wampserver调试环境 局域网访问
二、然后在配置文件内搜索httpd-vhosts.conf
去掉这一行的#注释 保存。
Apache配置虚拟主机的坑 本地wampserver调试环境 局域网访问
三、打开拓展配置文件httpd-vhosts.conf
路径:E:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf
会看到提供给您的两个例子
直接复制例子代码修改成如下示例 (其实就修改了ServerName和DocumentRoot) 保存。
* 这里要注意一下DocumentRoot设置时候 E:\wamp\www\mysite 不要加斜杠 \ 否则你重启wamp的时候就会失败 下面类似设置也是如此!!!
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.localhost
DocumentRoot "E:\wamp\www\mysite"
ServerName mysite.loca
ServerAlias mysite.loca
ErrorLog "logs/dummy-host.localhost-error.log"
CustomLog "logs/dummy-host.localhost-access.log" common
</VirtualHost>
四、修改host文件添加映射
路径:C:\Windows\System32\drivers\etc\hosts
添加映射: 127.0.0.1 mysite.loca
保存hosts 重启wamp 打开浏览器直接输入mysite.loca 测试
你就发现可以正常打开浏览了
但是坑来了,你再像以前用浏览器打开localhost的时候发现403报错无法正常访问了,直接上解决方法
五、再次打开拓展配置文件httpd-vhosts.conf
然后添加如下代码
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.localhost
DocumentRoot "E:\wamp\www"
ServerName localhost
ServerAlias localhost
ErrorLog "logs/dummy-host.localhost-error.log"
CustomLog "logs/dummy-host.localhost-access.log" common
</VirtualHost>
保存 重启wamp 再去打开浏览器测试下localhost路径,发现也没问题了
接着我们再用同一局域网内的手机通过内网ip访问一下,发现我去又无法打开了
直接上解决方法
六、首先保证你原先的配置文件已经打开局域网访问的权限
如果原先没有打开
1)那么先查看下apache的版本
Apache配置虚拟主机的坑 本地wampserver调试环境 局域网访问
2)如果是2.4以下版本
那么在httpd.conf搜索Deny from all 修改成 Allow From All
3)如果是2.4以上的版本
那么在httpd.conf搜索Require local 修改成 Require all granted
七、再次打开拓展配置文件httpd-vhosts.conf(我保证最后一次)
然后添加如下代码
1、保证你的apache能正常启动,然后打开httpd.conf那个配置文件,检查一下Listen服务器端口,默认监听端口为80,不是就改成80
2、配置服务器根目录权限
<Directory "c:/www/">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Allow from all
</Directory>
注意“c:/www/”为你网站根目录。重点是Allow from all,否则访问不进去
3、配置虚拟主机
<VirtualHost 192.168.11.108>
ServerName 192.168.11.108
DocumentRoot "c:/www/test/"
</VirtualHost>
注意VirtualHost 与ServerName一致,除非你有DNS主机。这个ip是我本机的,你要改成你机器的ip,如果不会查IP另追问,DocumentRoot 为你网站的存放目录,你要发布的网页就在这个目录下,注意要在服务器根目录下,否则要另外配置权限。
4、重启apache服务。
5、在apache重启成功后,在你本机,用浏览器访问你的页面。我这里就是192.168.11.108/index.php,你要改成你的ip地址,成功,则发布完成,其他人也可以这么访问网页了(还在探索中。。。)