更新时间:2023-09-05 来源:黑马程序员 浏览量:
在本地环境进行项目开发时,经常需要部署多个网站,每个网站可以用对应的域名来访问,可以通过Apache的虚拟主机功能来实现这样的效果。Apache虚拟主机的具体配置步骤如下。
(1)配置域名。由于申请真实域名比较麻烦,为了便于学习和测试,可以更改操作系统的hosts文件,实现将任意域名解析到指定IP地址。在操作系统中,hosts文件用于配置域名与IP地址之间的解析关系,当请求域名在hosts文件中存在解析记录时,可直接使用该记录,只有当不存在解析记录时,才通过DNS域名解析服务器进行解析。
以管理员身份运行命令行工具,输入如下命令打开hosts文件。
C: WINDOWS \system32> notepad drivers\etc\hosts
上述命令表示用记事本(notepad)打开hosts文件。将文件打开后,在文件的最底部添加如下一行内容。
127.0.0.1 laravel.test
经过上述配置后,就可以在浏览器上通过htp:/laraveltest来访问本机的Web服务器,这种方式只对本机有效。由于当前还没有配置虚拟主机,此时用htp:/laravel.test 访问的是Apache的默认主机。
(2)启用虚拟主机辅配置文件。在Apache的confextra目录中有一些辅配置文件,这些文件是hitpd.conf的扩展文件,用于将一部分配置抽取出来,以便于修改。打开hitpdleonf文件,找到如下所示的一行配置.删除前面的“#”即可启用虚拟主机辅配置文件。
#Include conf/extra/httpd-vhosta.conf
(3)配置虚拟主机。打开confextralhtpd-vhosts.conf 辅配置文件,可以看到Apache提供的默认配置,具体如下:
<VirtualHost *:80> ServerAdnin vebmasterêdunmy-host.exanpleacom DocunentRoot "c:/Apache24/docs/dungay-host.example.com" ServerName dummy-host.example,com ServerAlias snnw.dummy-host.exanple.com ErrorLog "1ogs/dummy-host.ekanple.com-error_log" customxlog "logs/dunay-hostresacple.con-access_log" comon </VirtualHost>
上述配置中,第l行的“*80”表示该主机通过80端口访问;ServerAdmin是管理员邮箱地址;DocumentRoot是该虚拟主机的文档目录;ServerName是虚拟主机的域名;ServerAlias用于配置多个域名别名(用空格分隔);Erorlog是错误日志;Customlog是访问日志,其后的common表示日志格式为通用格式。
上述默议配置本书中用不到,直接删除即可,也可以全部加上“#”注释起来,以便于参考。然后编写读者自己的虚拟主机配置,具体如下:
<VirtualHost ·:80> DocumentRoot "c:/web/apache2.4/htdocs" ServerNane localhost </VirtualHost> <VirtualHost*:80> DocumentRoot "c:/web/www/laravel/public" ServerNane laravel.test </VirtualHoat> <Directory "c:/web/www"> Options -indexes AllowOverride All Require local </Directory>
上述配置实现了两个虚拟主机,分别是localhost和laravel.test,并且这两个虚拟主机的站点目录指定在不同的路径下。第9~13行用于配置c/web/www路径的访问权限。其中,第10行用于关闭件列表功能;第1l行用于开启分布式配置文件,开启后会自动读取目录下的.htaccess文件中的配置;第12行用于配置目录访问权限,设为Require local表示只允许本地访问,若允许所有访问,可设为Require all granted,若拒绝所有访问,可设为Require all denied。
(4)编写测试文件。创建C:webwwwlaravelpublic目录,并在目录中编写一个内容为Laravel的index.html 网页。然后重启Apache服务使配置生效,使用浏览器进行访问测试,localhost和laravel.test 这两个虚拟主机的页面效果如图1-8所示。