人亦已歌 发表于 2023-2-2 20:21:46

PHP核心(三)apache专题之引入外部的虚拟主机配置文件

在默认状态,apache的虚拟主机配置文件是在httpd.conf文件中配置的,可是这样做有个问题。
如果我们想创建多个站点,那就需要不停的打开httpd.conf文件,往里面添加虚拟主机,这样做一来可能会因为误操作导致apache不能正常运行,二来把大量的站点配置放到apache的默认配置中也不合理。

所以,我们往往会将站点配置放在另外一个文件中,然后再httpd.conf中引入这个文件即可。

在phpstudy中已经为我们创建好了虚拟主机的配置文件,即vhost.conf文件,打开方法如下:



在该文件中可以配置虚拟站点信息。

下面我们就来说如何配置虚拟站点。

请看如下代码:


<VirtualHost _default_:80>
DocumentRoot "D:\wamp\PHPTutorial\WWW\test"
ServerName www.test.com 虚拟主机的域名
DirectoryIndex index.php 默认首页
<Directory "D:\wamp\PHPTutorial\WWW\test">
    Options -Indexes -FollowSymLinks +ExecCGI 允许展示目录结构,项目上线后删除该语句
    AllowOverride All 允许覆盖
    Order allow,deny执行顺序
    Allow from all 允许全部请求
    Require all granted 给与所有权限
</Directory>
</VirtualHost>



解释一下:
最外层的VirtualHost标签表示一个虚拟站点,_default_:80表示默认端口,DocumentRoot,表示站点根目录,Directory表示站点所在目录,一般将DocumentRoot和Directory设为一样的,Directory是对站点所在目录进行权限设置,一般保持默认即可。

其中:


Order allow,deny
Allow from all
第一句表示执行顺序,先允许,再拒绝deny。
第二句表示允许所有请求。由于没有写拒绝,所以最终结果是允许所有请求。

Order allow,deny
Allow from all
Deny from all
# 拒绝所有请求访问


Order allow,deny
Deny from all
Allow from all
#拒绝所有请求访问


<Directory "C:/PHP/Apache/htdocs">
   Order deny, allow
   Allow from 192.168.101.50
   Deny from 192.168
</Directory>
# 拒绝192.168开头,但除去(192.168.101.50)的IP的访问


<Directory "C:/PHP/Apache/htdocs">
    Order deny, allow
    Allow from 192.168.101.50
   Deny from all
</Directory>
# 只允许192.168.101.50访问


<Directory "C:/PHP/Apache/htdocs">
   Order allow,deny
   Allow from 192.168
   Deny from 192.168.101.50
</Directory>
# 只允许192.168开头的,但要去除192.168.101.50 的IP访问




了解以上含义后,我们将VirtualHost标签放入vhost.conf文件中,如下:



由于我们给虚拟主机设置的域名为www.test.com,这相当于在真实云环境中的域名绑定操作。如果我们仅仅是绑定了域名,那么通过该域名是不能访问到站点的,还需要进行域名的解析,即:将域名指向服务器对应的ip地址。

由于我们现在是本地测试环境,没有外网IP,本地的默认IP地址就是127.0.0.1,本地的默认域名就是localhost。
所以我们将www.test.com解析到127.0.0.1即可。
如何解析呢?



从phpstudy中打开host文件,或打开C:\Windows\System32\drivers\etc下的host文件。

在里面添加如下记录,表示将www.test.com解析到127.0.0.1,如果需要将多个域名解析到127.0.0.1,就在后面用空格隔开,继续写域名即可:
127.0.0.1 www.test.com




然后重启apache。
然后访问www.test.com



同样正常显示了test文件夹中index.php的内容。
如果需要配置多个虚拟站点,就在vhost.conf中添加多个VirtualHost标签对即可。

以上就是对apache专题之引入外部的虚拟主机配置文件的讲解。

fear317 发表于 2023-2-16 06:53:55

受益匪浅呀,我一定好好学习,好好把握剩下的大学时光

sxxyzy 发表于 2023-2-18 10:23:05

就应该这样,我想做个好的程序员但是我什么也不懂怎么办????#15

meidi 发表于 2023-2-20 04:38:18

我觉的一个学编程的人还是应该从能写开始,只有会写了才能再提高呀

cfs1982 发表于 2023-2-21 09:53:33

学习了但是我更加差哦

netbug 发表于 2023-2-22 21:08:23

姐姐,你倒是把题目看清楚阿!!!!!!!!111

hxy1980hxy 发表于 2023-2-24 19:25:17

真的很受启发,但是很多时候只是为了赶进度,只能拿最拿手的最快的办法来写了

whtaaa 发表于 2023-2-25 17:35:06

是啊,受益匪浅!!!

wuxiafuo 发表于 2023-2-28 14:53:57

感动感动

hyjzan 发表于 2023-3-2 13:03:15

心情有点重
页: [1] 2 3 4
查看完整版本: PHP核心(三)apache专题之引入外部的虚拟主机配置文件