Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache Wampserver在切换到使用vHost后显示404错误_Apache_Wampserver - Fatal编程技术网

Apache Wampserver在切换到使用vHost后显示404错误

Apache Wampserver在切换到使用vHost后显示404错误,apache,wampserver,Apache,Wampserver,因此,我使用Wampserver进行开发,并设法将服务器设置为与Dreamweaver、PHP等一起使用的开发目的。但在访问localhost时,我遇到了404错误 我几乎没有更改设置,只是将其设置为使用vhosts文件,然后我在system32的hosts文件中创建了一些新主机,所有这些都可以正常工作 然而,localhost/phpmyadmin确实可以工作,所以我真的很困惑为什么它不会加载任何东西。我还尝试加载一个站点文件夹localhost/Rufus,它也返回了404。我有所有的目录,

因此,我使用Wampserver进行开发,并设法将服务器设置为与Dreamweaver、PHP等一起使用的开发目的。但在访问localhost时,我遇到了404错误

我几乎没有更改设置,只是将其设置为使用vhosts文件,然后我在system32的hosts文件中创建了一些新主机,所有这些都可以正常工作

然而,localhost/phpmyadmin确实可以工作,所以我真的很困惑为什么它不会加载任何东西。我还尝试加载一个站点文件夹localhost/Rufus,它也返回了404。我有所有的目录,我需要指向www文件夹,我的所有文件都保存在那里

在别人说之前,不是Skype或IIS,因为它们都关闭了,Wampserver正在我检查的端口80上运行

我的vhosts文件:

# Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

<Directory C:\Users\Tom\sites\wamp\www>
Order Deny,Allow   
Allow from all 
</Directory>

<VirtualHost *:80>   
DocumentRoot "C:\Users\Tom\sites\wamp\www\Rufus" 
ServerName rufus.stone 
</VirtualHost>

如果不使用示例虚拟主机,请删除它们。“localhost”还需要一个虚拟主机,它必须是第一个虚拟主机。之后,您可以包含其他自定义vhost

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "C:\Users\Tom\sites\wamp\www"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:\Users\Tom\sites\wamp\www\Rufus" 
    ServerName rufus.stone
</VirtualHost>
如果出现“权限被拒绝”错误,请尝试将我取出的指令放入httpd.conf:

<Directory "C:\Users\Tom\sites\wamp\www">
    Order Deny,Allow
    Allow from all
</Directory>
它将在一个类似的指令下运行,该指令包括根上所有人的拒绝


确保在对这些文件进行更改时始终重新启动Apache

错误404表示您尚未授予对这些虚拟主机的访问权限,因此Apache将您踢出

您需要在虚拟主机中包含一些信息,以告知Apache允许访问每个VHOST的位置

您还需要将localhost设置为虚拟主机,因为第一个VHOST是默认VHOST,所以它实际上应该是您定义的第一个VHOST,并且应该始终限制为仅允许从本地计算机进行访问

所以,看看这是否更有效

# Virtual Hosts
#

<VirtualHost *:80>
    DocumentRoot "C:\Users\Tom\sites\wamp\www"
    ServerName localhost
    <Directory "C:\Users\Tom\sites\wamp\www">
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:\Users\Tom\sites\wamp\www\Rufus" 
    ServerName rufus.stone
    <Directory "C:\Users\Tom\sites\wamp\www\Rufus>
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>
假设您位于子网192.168.1上,则会发生此情况。?将允许任何连接到路由器的PC通过有线或wifi访问服务器

你应该避免这些,除非你真的想让世界访问你的网站

Require all granted
或者Apache2.2语法,它仍然在Apache2.4上工作

Order Deny,Allow   
Allow from all 

在编辑中显示您的虚拟主机配置文件。甚至不确定这是否是问题所在。当我在Dreamweaver中按f12键时,它似乎起作用,但打开localhost或localhost/我创建的任何文件夹都不起作用。不过,在使用vhost之前,它确实起了作用。
Order Deny,Allow   
Allow from all