目录更改后,Wamp卡在“Server Offline”上

时间:2013-07-07 13:42:21

标签: wamp wampserver httpd.conf

我想更改Wamp从中读取文件的文件夹,从wamp文件夹中的www文件夹更改到其他位置。

我尝试更改httpd.conf文件,并将原始www文件夹的每次出现替换为我的新文件夹。问题是,在我这样做并运行Wamp之后,它被卡在橙色图标上,并显示消息“服务器脱机”并且似乎没有真正启动。当我将httpd.conf文件更改回Wamp成功运行的文件时。

我做错了什么?如何更改www文件夹并仍然具有正常工作的Wamp?

2 个答案:

答案 0 :(得分:1)

最好为此目的创建Virtual Hosts。将wamps留在原处并为每个项目创建Virtual Hosts

如何:在WAMPServer中创建虚拟主机

在做任何事情之前,请确保APACHE和MYSQL正常工作!!!

在wamp目录结构之外创建一个新文件夹。此文件夹可以位于运行wamp的PC可见的任何磁盘驱动器上。因此,如果您在C:\上安装了WAMP,则可以在D:\或E:\ etc

上安装
C:\websites

在c:\ sites中为您要创建的每个网站创建一个子文件夹。    例如:

C:\websites\site1
C:\websites\site2

编辑文件C:\ wamp \ bin \ apache \ apachex.y.z \ conf \ extra \ httpd-vhosts.conf其中x,y和z是您实际安装的apache的版本号。

注意:如果您在2个或更多版本的apache之间切换,则必须依次对所有版本的apache进行此操作。

建议:我喜欢使用格式sitename.dev让我明白我正在处理我的本地站点开发副本,你可能更喜欢另一种表示法,没关系,单词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和任何其他参数。 这也允许您对配置进行SITE SPECIFIC更改。

注意:这将使wamp经理&#34; Put Online&#34;函数不再对这些新的vhost网站产生任何影响,因为每个网站的安全性现在都是vhost定义的一部分,所以请保留WAMP,OFFLINE。如果要将一个或多个站点联机,则必须在httpd-vhosts.conf文件中手动更改“允许命令”。

要检查子网,请执行以下操作: 启动命令窗口,然后运行

ipconfig

寻找线路&#34;默认网关&#34;在输出中,使用Allow命令中的第三个数字。

编辑您的httpd.conf文件并搜索这些行,它们位于文件的底部。

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

删除&#39;#&#39;在此行注释字符以包含新更改的vhost,这将导致apache注册它们的存在。

在编辑httpd.conf文件的同时搜索其中的这一部分

onlineoffline tag - don't remove
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Directory>

请勿更改这些内容!

在&lt; \ Directory&gt;之后添加以下内容标记以保护您的新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中进行修改。 您可以在需求发生变化时添加。例如,如果您希望允许子网上的任何人访问您的站点,您可以添加“允许来自192.168.0&#39;假设您在子网192.168.0上,请在此列表中使用&#39; ipconfig&#39;进行检查。

现在,为了让您的浏览器知道如何访问这些新域名,例如site1.dev和site2.dev,我们需要告诉Windows它们所在的IP地址。有一个名为HOSTS的文件是域名服务器(DNS)发明前几天的宿醉。这是一种为IP地址提供简单易记的名称的方法,这当然是DNS服务器现在为我们所做的事情。

编辑你的HOSTS文件,这可以在C:\ windows \ system32 \ drivers \ etc中找到,该文件没有扩展名。 Windows保护此文件,因此您必须是管理员才能保存对此文件的更改。

如果您使用的是VISTA或Windows7 / 8,您可能会认为您是管理员,但您不是! 因此,要编辑此文件,您必须以特定方式启动编辑器或记事本以获得管理员权限。要执行此操作,请找到您的编辑器图标并使用以下击键启动它: Shift +右键单击其图标,将显示一个菜单,单击项目&#34;以管理员身份运行&#34;,然后单击&#34;允许&#34;在将出现的挑战对话框上。

现在您已准备好编辑hosts文件,因此请将编辑器导航到c:\ windows \ system32 \ drivers \ etc \ hosts

将以下行添加到此文件

127.0.0.1   site1.dev
127.0.0.1   site2.dev

注意:您需要在此文件中为每个新虚拟主机添加一行。

为了让Apache获取这些更改,您必须反弹(停止并重新启动)apache。 这样做:Wampmanager - &gt; Apache - &gt;服务 - &gt;重启服务

您现在应该可以在浏览器中使用地址site1.dev来访问新网站。将您的网站代码复制到&#34; C:/ websites / xxxx&#34;文件夹,如果您已经编码了网站,或者将快速简单的index.php文件放入&#34; c:\ websites \ xxxx&#34;文件夹,以证明一切正常。

示例:

<!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)并且未找到该网站。 一个。检查hosts文件的更改。 湾重启&#34; DNS服务&#34;在Windows中运行。这会缓存您在浏览器中使用的所有doman名称,以便每次重新使用域名时浏览器都不必查询DNS服务器。这可能已经缓存了你失败的尝试,但重启很容易,应该解决问题,并且更快启动窗口,这也应该工作。 为此,请以管理员身份启动命令窗口(Shift +左键单击命令窗口图标)并运行这两个命令。

net stop "DNS Client"
net start "DNS Client"

注意:引号是必需的,因为服务名称中有空格。

答案 1 :(得分:0)

显然是因为我试图将我的Wamp目录更改为Google云端硬盘内的内容。这解决了我的问题:https://stackoverflow.com/a/14444634/458152