【问题标题】:apache virtual host for wamp/www localhost doesnt workwamp/www localhost 的 apache 虚拟主机不起作用
【发布时间】:2015-11-06 20:56:15
【问题描述】:

我已经在 localhost 上为网站设置了一个虚拟主机,因此它将被定向到 blog.local.dev 而不是 local.dev/blog 并且它工作正常,但是当我尝试对 wamp 做同样的事情时/www localhost 目录似乎是一个问题。它显示带有我所有项目列表的 wamp 网站,但是当我单击我的项目时,它说我无权访问它(403 Forbidden)。

这是我的主人

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

127.0.0.1       localhost
127.0.0.1       local.dev
127.0.0.1       blog.local.dev

她是我的 httpd-vhosts.conf

# 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>

<VirtualHost *:80>
    ServerAdmin rofl@roflmao.org
    DocumentRoot "C:/wamp/www"
    ServerName local.dev
    ErrorLog "C:/wamp/www/error.log"
    CustomLog "C:/wamp/www/access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin rofl@roflmao.org
    DocumentRoot "C:/wamp/www/blog/public"
    ServerName blog.local.dev
    ErrorLog "C:/wamp/www/blog/logs/error.log"
    CustomLog "C:/wamp/www/blog/logs/access.log" common
</VirtualHost>

希望有人可以帮助我。

【问题讨论】:

  • 在你的 apache 配置文件中寻找 Order Deny,Allow 或类似的东西。如果找到了,则应添加 Allow from localhostAllow from 127.0.0.1(如果它们不存在)。
  • 不确定它是否会在这种情况下发挥作用,但 Apache 将始终使用与请求匹配的第一个 VirtualHost,这有时不是您所期望的。包含有效和无效请求的完整 URL 可能会有所帮助。

标签: php apache virtualhost permission-denied hosts


【解决方案1】:

对不起,没有英文

在 apache 的 httpd.conf 文件中取消注释这一行

IncludeOptional "c:/wamp/vhosts/*"

在 c:\wamp\vhosts 创建一个名为 anyname.conf 的文件并添加它

#for localhost
<VirtualHost *:80>
    DocumentRoot "c:/wamp/www/"
    ServerName localhost
</VirtualHost>

#for yourpage.localhost
<VirtualHost *:80>
    DocumentRoot "c:/wamp/www/yourfolder"
    ServerName yourpage.localhost
</VirtualHost>

通过这种方式,您无需编辑 windows hosts 文件,因为您的自定义本地站点将是 localhost 的子域,并且 wamp 将自行管理

编辑: 您可以使用 'lvh.me' 而不是 'localhost',因为 localhost 不是真正的域,但 lvh.me 是的,它会将自身及其所有子域解析为 127.0.0.1 (test.lvh.me => test .127.0.0.1) 并且适用于所有主流浏览器(Chrome、Firefox、Opera、Safari、IEx)

【讨论】:

    【解决方案2】:

    听起来你无论如何都试图做错事。听起来您试图为您的项目列表设置一个虚拟主机,而不是为每个项目设置一个虚拟主机。

    每个项目分别设置一个虚拟主机并检查相关项目中的.htaccess,以及您的apache配置文件。

    【讨论】:

      【解决方案3】:

      查看您的配置文件,local.dev 似乎只是列出了文件夹 C:/wamp/www 的内容。

      当您单击blog 时,您尝试访问:C:/wamp/www/blog,它没有任何index.php,如果您关闭了索引,则会给您一个 403。

      文件夹C:/wamp/www/blog/publicindex.php

      当你点击一个项目(比如blog)时,你并没有真正访问虚拟主机blog.local.dev,而是local.dev/blog

      我对你的理解正确吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-05-09
        • 2014-08-29
        • 2011-03-08
        • 2022-01-12
        • 2015-10-23
        • 1970-01-01
        相关资源
        最近更新 更多