【问题标题】:Apache VirtualHost IssuesApache 虚拟主机问题
【发布时间】:2015-10-06 19:04:57
【问题描述】:

我有两个 laravel 安装。一个在名为 "laravel" 的文件夹中,第二个在名为 "learningLaravel" 的文件夹中。它们都是同一个父文件夹中的兄弟姐妹。在我安装 "learningLaravel" 之前,我曾经通过 localhost/laravel/public 访问 "laravel" 中的站点,一切正常。

安装 "learningLaravel" 后,我决定在我的 WAMP 服务器上为其创建一个名为 "learningLaravel.dev" 的虚拟主机。我的 [windows/system32/drivers/etc/hosts] 文件如下所示:

127.0.0.1       localhost
127.0.0.1       localhost
// I added this entry. The first two entries above was already there
127.0.0.1       learninglaravel.dev

我将以下内容添加到我的 Apache "httpd-vhosts.conf"::

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www/learningLaravel/public"
    ServerName learningLaravel.dev
</VirtualHost>

现在我可以通过 learningLaravel.dev 访问 "learningLaravel"。但是当我想通过 localhost/laravel/public 访问 "laravel" 文件夹中的站点时,我收到一条消息 ::

Not Found
The requested URL /laravel/public was not found on this server.

我也尝试了 localhost,我得到了 ::

Not Found
The requested URL / was not found on this server.

我现在遇到的问题是任何以 localhost 开头的东西都不起作用,但是 learningLaravel.dev 起作用。

我需要做哪些改变?谢谢。

【问题讨论】:

  • &lt;VirtualHost learninglaravel.dev:80&gt; DocumentRoot "c:/wamp/www/learningLaravel/public" ServerName learningLaravel.dev &lt;/VirtualHost&gt;你能试试这个吗?
  • 我不确定是不是这样,但我相信当你刚刚拥有 laravel 时,它是唯一可用的“域”,因此总是显示的那个,但是因为您已经添加了另一个“域”并且没有(至少从给出的信息来看),没有将 laravel 添加到配置中,它无法再找到它,因为现在有两个域,并且只有一个已配置。
  • 127.0.1.1 learninglaravel.dev 将此添加到您的主机文件而不是您拥有的文件中,重新启动 apache,它应该可以工作
  • @SiimKallari 当我测试 learninglaravel.dev 时,我在浏览器中收到以下错误消息(禁止访问,您无权访问此服务器上的 /)
  • 从谷歌阅读如何设置虚拟主机,您需要授予允许访问所有 cfg 文件的权限

标签: php apache laravel virtualhost


【解决方案1】:

只需定义 2 个虚拟主机:

  • 第一个捕获所有没有自己的虚拟主机的域。在此示例中,它们是 domain1.devdomain2.devdomain3.devlocalhost
  • 第二台主机捕获域learninglaravel.dev

httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www/"
    ServerName localhost
    ServerAlias *.localhost
</VirtualHost>

<VirtualHost learninglaravel.dev:80>
    DocumentRoot "c:/wamp/www/learningLaravel/public"
    ServerName learninglaravel.dev
    ServerAlias *.learninglaravel.dev
</VirtualHost>

windows/system32/drivers/etc/hosts

127.0.0.1       learninglaravel.dev
# you don't need the following this is just for explanation:
127.0.0.1       domain1.dev
127.0.0.1       domain2.dev
127.0.0.1       domain3.dev

【讨论】:

  • 感谢您的回复。我添加了两个两个虚拟主机,“learninglaravel.dev”工作正常。但是“localhost/laravel/public”给了我以下消息“哎呀,好像出了点问题。”我没有更改我的 .../etc/hosts 文件。它保持不变。我认为我不必更改其中的任何内容,或者?另一个问题是为什么两个虚拟主机的 ServerName 都是相同的“*.localhost”
  • 在复制粘贴后忘记更改服务器名称 :)。 “哎呀”消息来自 laravel。这意味着您的虚拟主机配置现在是正确的,但是您的 laravel 配置中仍然存在一些问题。可能是因为 vhost 没有指向public/ 目录。也许需要一些.httaccess 配置或定义第三个主机laravel.dev 指向c:/wamp/www/Laravel/public(并将其添加到您的hosts 文件中)。至少 apache 现在工作正常。
  • 我已经在 /etc/hosts 文件中添加了“laravel.dev”,并且在 Apache httpd-vhosts.conf 文件中添加了一个条目,现在一切正常。感谢您的帮助。
猜你喜欢
  • 2011-05-20
  • 2012-11-16
  • 2012-10-29
  • 2016-06-30
  • 2011-07-31
  • 2010-11-08
  • 2011-05-05
  • 2011-03-19
  • 2011-07-22
相关资源
最近更新 更多