我想将 Wamp 从中读取文件的文件夹从www
wamp 文件夹内的文件夹更改为其他位置。
我尝试更改httpd.conf
文件并将每次出现的原始www
文件夹替换为我的新文件夹。问题是,在我这样做并运行 Wamp 之后,它卡在带有“服务器脱机”消息的橙色图标上,并且似乎并没有真正启动。当我将httpd.conf
文件改回原来的文件时,Wamp 设法成功运行。
我究竟做错了什么?如何更改www
文件夹并仍然有工作的 Wamp?
我想将 Wamp 从中读取文件的文件夹从www
wamp 文件夹内的文件夹更改为其他位置。
我尝试更改httpd.conf
文件并将每次出现的原始www
文件夹替换为我的新文件夹。问题是,在我这样做并运行 Wamp 之后,它卡在带有“服务器脱机”消息的橙色图标上,并且似乎并没有真正启动。当我将httpd.conf
文件改回原来的文件时,Wamp 设法成功运行。
我究竟做错了什么?如何更改www
文件夹并仍然有工作的 Wamp?
最好Virtual Hosts
为此目的而创建。将 wamps 的东西留在原处,并Virtual Hosts
为您的每个项目创建一个。
HowTo:在 WAMPServer 中创建虚拟主机
在执行任何此操作之前,请先确保 Apache 和 MYSQL 正常工作!!!
在 wamp 目录结构之外创建一个新文件夹。此文件夹可以位于运行 wamp 的 PC 可见的任何磁盘驱动器上。因此,如果您在 C:\ 上安装 WAMP,则可能在 D:\ 或 E:\ 等
C:\websites
在 c:\websites 中为您要创建的每个站点创建一个子文件夹。例如:
C:\websites\site1
C:\websites\site2
编辑文件 C:\wamp\bin\apache\apachex.yz\conf\extra\httpd-vhosts.conf 其中 x,y 和 z 是您实际安装的 apache 的版本号。
注意:如果您在 2 个或更多版本的 apache 之间切换,则必须依次对您的所有 apache 版本执行此操作。
建议:我喜欢使用 sitename.dev 格式,让我清楚地看到我正在处理我的 localhost 开发站点副本,您可能更喜欢另一种表示法,没关系,在这种情况下,单词 dev 没有实际定义的含义,这只是我命名实时站点的开发版本的方式。
删除此文件中已存在的行。它们只是例子。
NameVirtualHost *:80
## must be first so the the wamp menu page loads when you use just localhost as the domain name
<VirtualHost *:80>
DocumentRoot "C:/wamp/www"
ServerName localhost
ServerAlias localhost
<Directory "C:/wamp/www">
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from localhost
Allow from ::1
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/websites/site1"
ServerName site1.dev
ServerAlias www.site1.dev
Options Indexes FollowSymLinks
<Directory "C:/websites/www/site1">
AllowOverride All
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from localhost
Allow from ::1
</Directory>
</VirtualHost>
根据需要添加任意数量的站点,以便您的每个站点都有一个,并根据需要更改 DocumentRoot、ServerName 和任何其他参数。这也允许您对配置进行特定于站点的更改。
注意:这将使 wamp 管理器的“上线”功能不再对这些新的虚拟主机站点产生任何影响,因为每个站点的安全性现在都是虚拟主机定义的一部分,所以离开 WAMP,离线。如果您想将一个或多个站点联机,您将必须在 httpd-vhosts.conf 文件中手动更改允许命令。
要检查您的子网,请执行以下操作:启动命令窗口,然后运行
ipconfig
在输出中查找“默认网关”行,并在允许命令中使用第三个数字。
编辑您的 httpd.conf 文件并搜索这些行,它们位于文件底部附近。
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
删除此行上的“#”注释字符以包含您新更改的虚拟主机,这将导致 apache 注册它们的存在。
在编辑你的 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
Allow from localhost
Allow from ::1
</Directory>
这是为了在您的新目录结构上设置安全性,以便仅允许从 127.0.0.1 (localhost) 访问这些新站点,除非从特定 VHOST 中进行修改。您可以根据需求的变化添加此内容。例如,如果您希望您子网上的任何人都可以访问您的站点,您可以在此列表中添加“Allow from 192.168.0”,假设您在子网 192.168.0 上,请使用“ipconfig”进行检查。
现在为了让您的浏览器知道如何访问这些新域名,即site1.dev 和site2.dev,我们需要告诉windows 它们所在的IP 地址。有一个名为 HOSTS 的文件是域名服务器 (DNS) 发明之前的遗留问题。这是一种为 IP 地址提供易于记忆的名称的方法,这当然是 DNS 服务器现在为我们所做的一切。
编辑您的 HOSTS 文件,这可以在 C:\windows\system32\drivers\etc 中找到,该文件没有扩展名。Windows 保护此文件,因此您必须是管理员才能保存对此文件的更改。
如果您使用的是 VISTA 或 Windows7/8,您可能认为您是管理员,但您不是!!!!因此,要编辑此文件,您必须以特定方式启动编辑器或记事本以获得管理员权限。为此,请找到您的编辑器图标并使用以下按键启动它: Shift + 右键单击其图标,这将显示一个菜单,单击“以管理员身份运行”项,然后在挑战对话框中单击“允许”出现。
现在您已准备好编辑主机文件,因此将编辑器导航到 c:\windows\system32\drivers\etc\hosts
将以下行添加到此文件
127.0.0.1 site1.dev
127.0.0.1 site2.dev
为了让 Apache 接受这些更改,您必须反弹(停止并重新启动)apache。通过以下方式执行此操作:Wampmanager -> Apache -> 服务 -> 重新启动服务
您现在应该可以在浏览器中使用地址 site1.dev 来访问您的新站点。如果您已经有一个站点编码,请将您的站点代码复制到“C:/websites/xxxx”文件夹中,或者将一个快速简单的 index.php 文件放入“c:\websites\xxxx”文件夹以证明一切正常。
例子:
<!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 ) 并且没有找到该站点。一种。检查主机文件的更改。湾。重新启动在 Windows 中运行的“DNS 服务”。这会缓存您在浏览器中使用的所有域名,这样浏览器就不必在每次重复使用域名时查询 DNS 服务器。这可能已经缓存了您失败的尝试,但重新启动很容易,应该可以解决问题,并且比重新启动 Windows 更快,这也应该可以工作。为此,以管理员身份启动命令窗口(Shift + 左键单击命令窗口图标)并运行这 2 个命令。
net stop "DNS Client"
net start "DNS Client"
显然这是因为我试图将我的 Wamp 目录更改为 Google Drive 中的某个目录。这解决了我的问题:https ://stackoverflow.com/a/14444634/458152