?
①创建站点目录
②开启httpd-vhosts.conf配置功能
? ? 找到Apache的\conf目录下的httpd.conf文件,打开它,找到下面这两行:
class="php" name="code"># Virtual hosts #Include conf/extra/httpd-vhosts.conf 把它改成下面这样: # Virtual hosts Include conf/extra/httpd-vhosts.conf
? ? 意思是启用虚拟主机的设置文件httpd-vhosts.conf,虚拟主机的设置都在这个文件下设置
③配置Apache虚拟主机的配置文件,创建一个虚拟主机;
? ? 文件位于Apache目录下,conf/extra/httpd-vhosts,打开配置文件后,复制一段之前的站点配置代码---虚拟主机配置,粘贴到最后
#自定义虚拟主机 <VirtualHost *:80> #配置站点管理员邮箱,当站点报500服务器错误时时,会在页面提示错误信息, #并列出管理员邮箱 ServerAdmin webmaster@dummy-host2.example.com #站点文档根目录 DocumentRoot "C:\site" #站点绑定的域名 ServerName www.1006.com #站点别名ServerAlias 1006.com(一般是不带www的域名) #错误日志的存储位置,logs目录在Apache目录下,不在站点根目录 ErrorLog "logs/1006-error.log" #正常访问日志的存储位置,也在Apache目录下。最后的common是日志的记录规则名称, #在Apache的组配置文件httpd.conf定义记录规则 CustomLog "logs/1006-access.log" common </VirtualHost>
?④重启Apache
⑤修改hosts文件,将配置文件里声明的2个域名进行绑定解析
? ? hosts文件位置:C:\Windows\System32\drivers\etc\hosts,快捷操作win+R弹出运行对话框,输drivers即可找到etc目录
? ? 编辑hosts:输入127.0.0.1 www.1006.com 1006.com(可以将两个域名写在一行,站点域名写在前,站点别名写在后面)
⑥检验
? ?在cmd里通过ping命令来测试域名是否绑定成功
? ?检验IP是否指向本机cdm输入:ping ip
? ?ping 是Windows系列自带的一个可执行命令。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。应用格式:Ping IP地址
现在浏览器输入自定义的ip,便会看到index of /,表示列出站点目录。
此时说明虚拟主机配置完成。
⑦将代码文件复制到站点目录
? ?复制ThinkPHP目录和index.php入口文件到站点根目录。通过浏览器进行访问新域名,此时会看到欢迎使用ThinkPHP!界面
? ?并且会在站点目录里自动创建Application目录,因为入口文件index.php里定义了应用目录,所以引文件时不需要引入Application目录
// 定义应用目录,后期自动生成的文件都会放到里面 define('APP_PATH','./Application/');
?
?
?分享下其他文章:
先说配置虚拟主机的流程:
1.先打开httpd.conf文件,打开httpd-vhosts.conf
# Virtual hosts Include conf/extra/httpd-vhosts.conf
2.然后打开httpd-vhosts.conf文件,配置一个虚拟主机
<VirtualHost *:80> DocumentRoot "D:/amp/www/wechat" ServerName www.wechat.com </VirtualHost>
3.打开hosts文件,添加域名
127.0.0.1 www.wechat.com
4.重启Apache,这时虚拟主机的域名www.wechat.com可以正常访问,
但是我的localhost就不能访问了。报错如下:
解决过程:
我的思路是,添加一个名为localhost的虚拟主机不就可以了?
1.打开httpd-vhosts.conf文件,配置一个名为localhost的虚拟主机:
<VirtualHost *:80>
ServerName localhost
DocumentRoot "D:/amp/www"
</VirtualHost>
2.打开hosts文件,添加域名
注意:这一步,做或者不做,都没有影响,亲测通过。
#127.0.0.1 localhost
3.重启Apache,期待的结果并没有出现,哎,都累得半死了,还是不能访问localhost,虽然其他虚拟域名都可以正常访问,
?可是我就是想鱼和熊掌兼得,继续查找问题
?
问题解决:
最后我比对了我原来的配置代码,发现,在httpd.conf文件中有一行代码是需要注释掉的
#ServerName localhost:80
就是这一行代码,把我折腾的够呛,把 ServerName 这一行代码注释掉就可以了
也许你的httpd.conf文件中并不是localhost:80 这个值,可能是 ?ServerName ?a.com:80 ; 都一样,直接注释掉
以后无论开启或者关闭虚拟主机,localhost都可以正常访问。
?
?
其他文章2:
首先,我们要明白为什么访问localhost就可以访问到我们的apache主页。
解析域名的时候,首先是从本地的hosts文件开始的。
如果查不到,才会去DNS服务器查询。
解析:
在Windows操作系统C:\WINDOWS\system32\drivers\etc目录下的hosts文件,存放着一些主机名和IP地址的映射表。通常,客户机需要进行域名解析时,系统会先读取该文件,在其中查找对应域名的IP地址。若查找失败,则将域名解析任务提交给该主机所配置的首选DNS服务器进行查询。默认情况下,该文件必须包含的一条“127.0.0.1 localhost”记录。
如果你在这里面写一行:127.0.0.1 www.baidu.com
百度你是肯定上不了。因为访问的是你自己的机器。
hosts 就是一个映射(域名和IP的对应,localhost也可以说是一个域名) localhost -> 127.0.0.1?
找到C:\WINDOWS\system32\drivers\etc\hosts ,修改如下
不多解释,这就是为什么计算机认识localhost的原因。
?
.