所以我使用Wampserver进行开发,我设法将服务器设置为开发目的(它与Dreamweaver一起使用,PHP工作等)但是当访问localhost时,我收到404错误。
我几乎没有更改设置,除了将其设置为使用该vhosts文件,然后我在系统32的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>
答案 0 :(得分:0)
删除示例虚拟主机,假设您没有使用它们。您还需要“localhost”的虚拟主机,它必须是第一个虚拟主机。之后,您可以包含其他自定义虚拟主机。
#
# 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。
答案 1 :(得分:0)
错误404表示您尚未授予对这些虚拟主机的访问权限,因此Apache正在将您踢出去。
您需要向虚拟主机提供一些信息,以告知Apache哪些位置可以访问每个VHOST
您还需要将localhost设置为虚拟主机,并且因为第一个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>
Require local
表示只允许从运行WAMPServer的PC进行访问。
如果稍后您想允许内部网络上的其他PC看到Apache服务器,您可以添加到这样的服务器,例如。
Require local
Require ip 192.168.1
假设您在子网192.168.1.?
,这将允许连接到您的路由器(有线或无线)的任何PC访问服务器。
你应该避免这些,除非你真的希望世界访问你的网站
Require all granted
或Apache 2.2语法,它仍适用于Apache 2.4
Order Deny,Allow
Allow from all