8

我正在尝试在我的本地主机(XAMPP)上创建一个虚拟主机。尝试了所有组合,但我总是加载 htdocs 而不是特定文件夹

这是hosts文件:

127.0.0.1 localhost
::1 localhost
127.0.0.1 devsnappy

这里是httpd-vhosts.conf

NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot E:/xampp/htdocs/snappy/public
    ServerName devsnappy
    <Directory "E:/xampp/htdocs/snappy/public">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

有什么建议么?

4

4 回答 4

11

对于阅读本文但没有解决方案可以帮助您的任何人,这对我有帮助。

只需在您的 httpd.conf 中取消注释此 Include 行:

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

这样,您在 etc/extra/ httpd-vhosts.conf中所做的更改就会可用!

之后不要忘记重新启动 Apache 服务器!

于 2017-01-17T14:43:11.970 回答
6

这是将 vhost 添加到 xampp的指南

似乎您错过了主机文件的某些内容。

例如,假设您有另一个用于 ClientB 的网站。您将在 hosts 文件中添加 127.0.0.1 clientB.local >,并且 C:\xampp\apache\conf\extra\httpd-vhosts.conf 如下所示:

NameVirtualHost *
  <VirtualHost *>
    DocumentRoot "C:\xampp\htdocs"
    ServerName localhost
  </VirtualHost>
  <VirtualHost *>
    DocumentRoot "C:\Documents and Settings\Me\My Documents\clientA\website"
    ServerName clientA.local
  <Directory "C:\Documents and Settings\Me\My Documents\clientA\website">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>
<VirtualHost *>
    DocumentRoot "C:\Documents and Settings\Me\My Documents\clientB\website"
    ServerName clientB.local
  <Directory "C:\Documents and Settings\Me\My Documents\clientB\website">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

重启httpd

于 2013-07-16T09:26:13.823 回答
2

哦,在 Apache 2.4.9 中让它工作对我来说真的很痛苦。我找到了很多教程,但我无法让它工作。

我的解决方案适用于 APACHE 2.4 及更高版本。我已经使用 Apache 2.4.9 对其进行了测试

您需要编辑两个文件。请在进行更改之前备份这两个文件。如果您写错任何内容,即使您卸载 xampp 然后再次安装 xampp,您的本地主机也将无法工作。

步骤1:

编辑此文件

C:\Windows\System32\drivers\etc\hosts

使用记事本中的“以管理员身份运行”打开此文件(非常重要)。您可以通过以下方式执行此操作

开始菜单>记事本>右键单击>以管理员身份运行>打开文件

在此文件末尾添加这两行

127.0.0.1       testsite.dev
127.0.0.1       www.testsite.dev

你去 testsite.dev 或 www.testsite.dev ,它现在会尝试从你的本地机器而不是从网络访问

第2步:

E:\xampp\apache\conf\extra\httpd-vhosts.conf

您可以正常编辑此文件,无需以“以管理员身份运行”运行此文件在此文件末尾添加以下行

NameVirtualHost *:80
<VirtualHost *:80> 
    DocumentRoot "E:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin admin@.testsite.dev
    DocumentRoot "E:/xampp/htdocs/htc"
    ServerName testsite.dev
    ServerAlias www.testsite.dev
</VirtualHost>

我将我的xampp设置在E盘,所以当你从这里复制时,请确保根据你的xampp安装进行更改。最后一部分有点有趣。我指出这个药水

<VirtualHost *:80>
    ServerAdmin admin@.testsite.dev
    DocumentRoot "E:/xampp/htdocs/htc"
    ServerName testsite.dev
    ServerAlias www.testsite.dev
</VirtualHost>

您在哪里可以找到此代码?在 Internet 中,您可以在很多地方找到它,但可能对您不起作用,因为该代码会与您的 Apache 版本不同。那么解决方案是什么?

在文件末尾,您会看到已经有一些注释行向您展示了如何设置虚拟主机的演示,只需复制这些行并进行必要的更改,它就会为您工作。我附上了截图以便更好地理解

http://postimg.org/image/5pug9f42p/

于 2014-12-10T10:19:25.960 回答
1
  1. 不要使用 .DEV,注册表现在归 Google 所有,它会强制您的 Chrome 使用 SSL (443)。试试 .app 或 .lan。

  2. 确保您的浏览器未加载 HTTPS(端口 443),而 Apache 仅在 80 端口上获取连接,例如 <VirtualHost *:80>。

于 2020-12-05T07:45:26.253 回答