PHP 虚拟目录 虚拟主机 域名配置

时间:2022-10-28 12:06:35

虚拟目录配置:

就是说,我们放项目放在D盘,F盘,而不是默认的www文件夹下也可以访问。比如这里,我在

D:/PHP/work
放入的项目文件。

在httpd.conf加入:

(位置一般是在 这个标签下面)

判断是否存在dir_module 这个模块

<IfModule dir_module>  
#设置欢迎界面
DirectoryIndex index.php index.html index.htm
#配置别名,就是浏览器访问时用的。 localhost/ws
Alias /ws "D:/PHP/work"
<Directory "D:/PHP/work">
#权限,只针对当前的目录而言
Order allow,deny
#允许所有人访问
Allow from all
</Directory>
</IfModule>

重启apache
http://localhost/ws 就可以访问了。

2. 配置虚拟主机。

1: 还是httpd.conf这个文件。搜索“vhosts”

把include前的就#删掉。

include就是把那个文件包含进来。

2: 编辑 apache2.2.22\conf\extra\httpd-vhosts.conf.

在最下面添加:

<VirtualHost 127.0.0.1:80>  
#你的网站目录
DocumentRoot "D:/PHP/work"
#你网站的域名
ServerName www.gaotong2055.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
#权限设置
Order allow,deny
Allow from all
</VirtualHost>

3: 修改windows hosts文件

首先,我们要明白为什么访问localhost就可以访问到我们的apache主页。

解析域名的时候,首先是从本地的hosts文件开始的。

如果查不到,才会去DNS服务器查询(这个就不多说了)。

如果你在这里面写一行:127.0.0.1 www.baidu.com

百度你是肯定上不了。因为访问的是你自己的机器。

hosts 就是一个映射(域名和IP的对应,localhost也可以说是一个域名) localhost -> 127.0.0.1
找到C:\WINDOWS\system32\drivers\etc\hosts ,修改如下

不多解释,这就是为什么计算机认识localhost的原因。

[plain] view plain copy
127.0.0.1 localhost
127.0.0.1 www.gaotong2055.com

4、最后别忘了修改我们的DocumentRoot
还是httpd.conf 搜索:“DocumentRoot” 注释掉,修改为:

[plain] view plain copy

DocumentRoot “c:/wamp/www/”

DocumentRoot “D:/PHP/work”

现在输入:
www.gaotong2055.com , 就可以访问我们的网站了

PS:当然了,这个方法只适合自娱自乐了,只有在自己的机器上可以用www.gaotong2055.com来访问。

因为我们并没有注册域名什么的。 说白了,和用localhost访问是一样的。

=======配置虚拟主机其他文章=-========================

下面就是PHP 虚拟主机配置的详细步骤:

1.找到Apache的\conf目录下的httpd.conf文件,打开它,找到下面这两行:
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
把它改成下面这样:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

意思是启用虚拟主机的设置文件httpd-vhosts.conf,虚拟主机的设置都在这个文件下设置,不用去改httpd.conf,这样比较清晰。

2.找到Apache的\conf\extra目录下的httpd-vhost.conf这个文件。
打开它的时候里面已经含有像下面这样的内容:
–虚拟主机配置开始
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.localhost
DocumentRoot “C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.localhost”
ServerName dummy-host.localhost
ServerAlias www.dummy-host.localhost
ErrorLog “logs/dummy-host.localhost-error.log”
CustomLog “logs/dummy-host.localhost-access.log” common
</VirtualHost>

COPY上面这几行,关键是:把
DocumentRoot “”–虚拟主机的目录,即域名对应的根目录
ServerName dummy-host.localhost–你想要的域名。
还要在每个虚拟主机配置开始前<Directory “c:\test”>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory> :
<Directory “c:\test”> 虚拟主机的被授权的目录一般与DocumentRoot “”–虚拟主机的目录,即域名对应的根目录相同。Allow from all –这句是重点,只要allow别人才行访问上面定义的目录,否则在IE或firefox访问时会显示503错误,即禁止访问。

如果你不想在httpd-vhost.conf 里加 <Directory “c:\test”>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
那么你也可以这样做:
在httpd.conf里找到以下内容:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory> 这是Apache默认的设置,最后一行是这样的
Deny from all
意思是拒绝所有访问对根目录的访问,别人是访问不了你的网站的,
所以要改成
Allow from all

不过还是建议用第一种方法,即修改httpd-vhost.conf的内容,这样比较清楚,也比较安全。
这样apache的设置就完成了,不过还要做下面这一步。

3.还有关键的一步:
这一步不做,一定不行因为你本地的机器没有DNS解析。
找到C:\WINDOWS\system32\drivers\etc目录下的hosts文件
加上这样的记录
127.0.0.1 demoa–这个是你的域名,你要设置多少个虚拟主机,就要加多少行这样的记录。

OK,现在你可以设置N+1个域名了。

样例:

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.localhost
DocumentRoot /www/docs/dummy-host.localhost
ServerName dummy-host.localhost
ServerAlias www.dummy-host.localhost
ErrorLog logs/dummy-host.localhost-error_log
CustomLog logs/dummy-host.localhost-access_log common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.localhost
DocumentRoot /www/docs/dummy-host2.localhost
ServerName dummy-host2.localhost
ErrorLog logs/dummy-host2.localhost-error_log
CustomLog logs/dummy-host2.localhost-access_log common
</VirtualHost>


<Directory "D:\phpwork">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.localhost
DocumentRoot D:\phpwork
ServerName localhost
ErrorLog logs/dummy-host2.localhost-error_log
CustomLog logs/dummy-host2.localhost-access_log common
</VirtualHost>

<Directory "D:\phpwork\phpMyAdmin">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.localhost
DocumentRoot D:\phpwork\phpMyAdmin
ServerName phpMyAdmin.local
ErrorLog logs/dummy-host2.localhost-error_log
CustomLog logs/dummy-host2.localhost-access_log common
</VirtualHost>


<Directory "D:\phpwork\test">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.localhost
DocumentRoot D:\phpwork\test
ServerName test.local
ErrorLog logs/dummy-host2.localhost-error_log
CustomLog logs/dummy-host2.localhost-access_log common
</VirtualHost>PHP 虚拟主机配置方法还有很多途径,可根据自己的需求和自己擅长的领域来选择不同的配置方法。

3. 多域名配置。

就是一个主机IP , 有多个域名,每个域名要对应不同网站(注意:不是同一个网站)。

比如,我想在添加一个域名: www.gaotong.com 访问

[plain] view plain copy
D:/PHP/work2
这个项目。

方法1: 通过端口区分。

原理就是很据端口区分,apache是可以监听多端口的。这个方法就是在域名配置里面写个其它的端口。

方法2: 使用*配符 配置httpd-vhosts.conf

把原来的

域名1

<VirtualHost *:80>  
#你的网站目录
DocumentRoot "D:/PHP/work"
#你网站的域名
ServerName www.gaotong2055.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
Order allow,deny
Allow from all
</VirtualHost>

域名2

<VirtualHost *:80>  
#你的网站目录
DocumentRoot "D:/PHP/work2"
#你网站的域名
ServerName www.gaotong.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
Order allow,deny
Allow from all
</VirtualHost>