我在文件夹中有多个网站,我需要经常来回切换。每次我都必须转到httpd.conf文件来查找它们,并更改DocumentRoot和Directory行。我想知道是否有更快的方法来做这件事,也许是通过cmd提示符?或者是我可以创建的php inc文件。
谢谢。
发布于 2014-02-11 22:16:55
你最好把你所有的站点都设置为Virtual Hosts。它们总是可用的,除了url之外,你不需要改变任何东西就可以单独访问它们。
HowTo:在WAMP中创建虚拟主机
在执行任何操作之前,请先确保APACHE和MYSQL工作正常!
在wamp目录结构之外创建一个新文件夹。例如
C:\websites\www但这可以在运行wamp的PC可见的任何磁盘驱动器上。
在c:\websites中为要创建的每个站点创建子文件夹。例如:
C:\websites\www\site1
C:\websites\www\site2编辑文件C:\wamp\bin\apache\apachex.y.z\conf\extra\httpd-vhosts.conf,其中x、y和z是您实际安装的apache的版本号。
注意:如果你要在2个或更多版本的apache之间切换,你必须依次在你的所有apache版本上进行切换。
建议:我喜欢使用sitename.dev格式来让我明白,我正在处理一个站点的本地主机开发副本,你可能更喜欢另一个符号,那好吧,在这种情况下,单词dev没有实际定义的含义,这只是我命名活动站点的开发版本的方式。
注意:删除或最好还是注释掉(使用第1列中的#)此文件中已存在的行。它们只是一些例子。
示例内容:
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
## must be first so the the wamp menu page loads when you use just localhost as the domain name
## Also NEVER change the security to anything other than Allow from 127.0.0.1 localhost ::1
## Then a drive by Ip address hack should return a 403 denied access
<VirtualHost *:80>
DocumentRoot "C:/wamp/www"
ServerName localhost
ServerAlias localhost
**Using Apache 2.2 syntax**
<Directory "C:/wamp/www">
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 localhost ::1
## For every ip in the subnet, just use the first 3 numbers of the subnet
## Check you actual subnet for the actual values to use here
Allow from 192.168.0
</Directory>
**Using Apache 2.4 syntax**
<Directory "C:/wamp/www">
Require local
## And possibly allow access from you local network
## Check you subnet for the actual values to use here
Require ip 192.168.0
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/websites/www/site1"
ServerName site1.dev
ServerAlias www.site1.dev
Options Indexes FollowSymLinks
**Using Apache 2.2 syntax**
<Directory "C:/websites/www/site1">
AllowOverride All
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 localhost ::1
#If you want to allow access from your internal network
# For specific ip addresses add one line per ip address
#Allow from 192.168.0.nnn
# For every ip in the subnet, just use the first 3 numbers of the subnet
#Allow from 192.168.0
# If you want to allow access to everyone
#Allow from all
</Directory>
**Using Apache 2.4 syntax**
<Directory "C:/websites/www/site1">
AllowOverride All
Require local
#If you want to allow access from your internal network
# For specific ip addresses add one line per ip address
#Require ip 192.168.0.nnn
# For every ip in the subnet, just use the first 3 numbers of the subnet
#Require ip 192.168.0
# If you want to allow access to everyone
#Require all granted
</Directory>
</VirtualHost>根据需要添加任意多个,以便每个站点都有一个,并根据需要更改DocumentRoot、ServerName和任何其他参数。
这还允许您对配置进行特定于站点的更改。
注意:这将使WAMP管理器“在线”功能不再对这些新的vhost站点产生任何影响,因为每个站点的安全性现在都是vhost定义的一部分,所以让wamp离线。
如果要将一个或多个站点放到网上,则必须手动更改httpd-vhosts.conf文件中的允许命令。
要检查您的子网,请执行以下操作:启动命令窗口,然后运行
>ipconfig在输出中查找行"Default Gateway“,并在Allow命令中使用第三个数字。
编辑您的httpd.conf文件并搜索这些行,它们位于文件底部附近。
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf删除此行上的“#”注释字符以包括新更改的vhosts,这将导致apache注册它们的存在。例如
# Virtual hosts
Include conf/extra/httpd-vhosts.conf在仍在编辑httpd.conf文件的同时搜索
# onlineoffline tag - don't remove
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>不要更改这些行!
在<\Directory>标记后添加以下内容,以保护新的C:\websites文件夹。
<Directory "C:/websites/">
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>这是为了在您的新目录结构上设置安全性,以便只允许从127.0.0.1 (localhost)访问这些新站点,除非从特定的VHOST中进行修改。附注:您的内部网络可能类似于192.168.x.y,请先检查您的系统!
现在,为了让你的浏览器知道如何访问这些新的域名,即site1.dev和site2.dev,我们需要告诉windows它们所在的IP地址。有一个名为HOSTS的文件,它是域名服务器(DNS)发明之前的遗留问题。这是一种给IP地址起一个好记的名字的方法,这当然是DNS服务器现在为我们所有人做的。
编辑您的HOSTS文件,该文件位于C:\windows\system32\drivers\etc中,该文件没有扩展名。
Windows保护此文件,因此您必须是管理员才能保存对此文件所做的更改。
如果您使用的是VISTA或Windows7/8,您可能认为自己是管理员,但您不是!
因此,要编辑此文件,您必须以特定方式启动编辑器或记事本,以获得管理员权限。为此,找到您的编辑器图标,并使用以下击键启动它:
Shift +右键单击其图标,这将显示一个菜单,单击项目"Run as Administrator",然后在将出现的质询对话框中单击"Allow“。
现在,您可以编辑hosts文件了,请将编辑器导航到c:\windows\system32\drivers\etc\hosts
将以下行添加到此文件中
127.0.0.1站点1.dev 127.0.0.1站点2.dev
注意:您需要在此文件中为每个新的虚拟主机添加一行。
一旦你保存了这些更改,你需要让windows刷新它的‘域名- ipaddress交叉引用’缓存。
为此,以管理员身份启动命令窗口(按住Shift键并在命令窗口图标上单击鼠标左键),然后运行这两个命令。
>net stop "DNS Client"
>net start "DNS Client"注意:引号是必需的,因为服务名称中有一个空格。
为了让apache接受这些更改,您必须跳转(重新启动) Apache。
执行此操作的方式: Wamp管理器-> Apache ->服务->重新启动服务
您现在应该能够在浏览器中使用地址site1.dev来访问您的新站点。如果你已经有了一个网站代码,将你的网站代码复制到"C:/websites/xxxx“文件夹中,或者在"c:\websites\xxxx”文件夹中放置一个快速而简单的index.php文件来验证所有的工作。示例:
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>SITE1</title>
</head>
<body>
<?php
echo '<div style="background-color:red;color;white;text-align:center;font-size:18px">HELLO FROM Site1</div>';
?>
</body>
</html>故障排除:
如果您使用了新域名( site1.dev ),但未找到该站点。a.检查主机文件的更改。b.重启在windows中运行的DNS服务。这将缓存您在浏览器中使用的所有域名,以便浏览器不必在您每次重新使用域名时都查询DNS服务器。这可能已经缓存了你失败的尝试,但重新启动很容易,应该可以解决问题,而且比重新启动windows更快,这也应该是可行的。
https://stackoverflow.com/questions/21680019
复制相似问题