有关Apache的虚拟站点也是耳闻已久,奈何本人比较懒,迟迟没有配置,但是昨天做项目碰到的很尴尬的问题,
让我不得不去配置。。。
一、配置的原因:
因为要把本地的项目放到服务器上。我本地的目录结构是:D:\phpStudy\www\admin
admin里面是我的laravel项目。而通过git上传之后,发现css,js文件都无法加载资源了。仔细一看,原来是因为
本地相对于服务器来说,文件目录多了个admin,所以两者不统一,要么服务器显示正常,本地扑街。。要么本地
正常,服务器扑街,,因此,我决定配置个虚拟站点,把项目直接放上去,模拟服务器的目录结果就OK了。
(1)css,js在服务器上无法加载的资源的问题:
1、打开F12,看一下报错信息,是路径错误还是提示返回的不是text/css,而是text/html
2、若是路径不对,则调路径,若是加载的问题,在引入的时候加上type="text/css"
3、css,js有时候会存在浏览器的缓存问题,所以可以清除浏览数据试试
二、配置的过程:
(1)在D:\phpStudy下新建文件夹web,代表我们的新站点文件,路径为:D:\phpStudy\web
(2)其次是进入C盘下的hosts文件,编辑我们的新主机名称:
在文件的最后加上一段代码:127.0.0.1 www.lijinfeng.com (LZ用的win7,目录结构如上)
(3)进入Apache的配置文件httpd-conf中:ctrl+F进行搜索
1、搜索:Include conf/extra/httpd-vhosts.conf 去掉前面的注释,这个意思就是启动虚拟机
(4)进入Apache的配置文件,找到:Apache\conf\extra\httpd-vhosts文件,编辑虚拟站点配置:
这就是我本地的虚拟站点配置:乱码是因为中文注释
1、首先是看到我用的80端口,DocumentRoot 对应你的文件目录,可能有人会好奇,明明我的
站点是D:\phpStydy\web,为什么这里却多了个public,这是因为laravel框架的原因,为了达到输入域名就直接访问laravel的public/index.php,所以这边这样写。
2、ServerName:这个对应你的主机名:在此填上你的主机名即可。
3、DirectoryIndex:这个代表你的默认访问页面,一般是index.html和index.php
4、下面是错误日志,还有权限控制,我并没有加上,因为没用上,权限控制请看
这里:http://blog.csdn.net/the_victory/article/details/51006167,这个博主写的不错
(5)重启Apache,浏览器输入:www.lijinfeng.com,你就会发现你可以愉快的访问这个站点了。
三、其他问题:
(1)常见报错:403 accescc forbidden。
这个问题的解决方案:1、检查配置,保证serverName没有错
2、apache记得每次修改之后都要重启
3、加上权限这块,我没有加(PS:apache2.2和apache2.4的写法不一样
要慎重)
4、找度娘。。
(2)配置成功之后,发现localhost不能访问了:
解决方案:那就再建一个localhost的虚拟站点,必须要有localhost,不然配置这个虚拟主机也就
没什么意思了。
1、在apache的httpd-vhosts中新增配置:
2、打开apache的配置文件,去掉ServerName localhost这一行,并重启
3、进入C盘的hosts文件,新增:127.0.0.1 localhost
4、访问你的localhost,你就会发现,你的localhost又回来了
四、其他
1、虚拟站点可以建好几个,在此只是建一个,做个例子
2、还有虚拟目录可以配置,这个网上一大堆,我这儿就不再啰嗦了
3、越来越发现不会的东西好多好多,有点方
与君共勉!