2

所以,我一直在为一个必须能够通过虚拟主机维护多个域的学校项目设置这个 HTTP 服务器。使用 XAMPP 我设置了我的服务器,我认为我已经正确地完成了它,但也许没有。

我有很多无法监听端口的问题,为了解决我使用的这个问题(在 apache/conf/ 下的 httpd.conf 中)

    Listen 0.0.0.0:8080
    ServerName localhost:8080

如果我使用 80/81/8080/321/任何没有前缀 0.0.0.0 的组合,它会告诉我端口无法被监听或其他什么(抱歉,我的语法有点生疏)。

我像这样设置了我的第一个虚拟主机(在 apache/conf/extra/httpd-vhosts.conf 下):

NameVirtualHost *:8080

<VirtualHost *:8080>
    DocumentRoot    "H:/xampp2/xampp/htdocs"
    ServerName      localhost:8080

    <Directory "H:/xampp2/xampp/htdocs">
        Option Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

我认为这看起来一切都很好,我不相信我已经修改了其他任何东西。对我来说,我希望这意味着我的 Apache 服务器将使用端口 8080 作为服务器?但是,当我在 XAMPP 中启动 Apache 时,它​​非常清楚地说明了

 Apache started [Port 80]

为什么会是 80 端口?

同时, localhost:8080 不会将我导航到文档,但 localhost:80 或 localhost 会。我想这只是意味着它仍在端口 80 上。我尝试过重置我的计算机和 XAMPP。

如果您需要更多信息,请告诉我。我尝试了以下指南,例如:http ://ailoo.net/2008/07/set-up-multiple-virtual-hosts-on-xampp-for-windows/

干杯。

哦,我还编辑了我的 Windows HOSTS 文件;它看起来像这样:

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

编辑:新错误......现在当我初始化时得到这个,似乎并没有影响它:

 ERROR: Status Check Failure [3]
 This program must be run from your XAMPP root directory.

据我所知,它是从根目录运行的。

4

2 回答 2

8

好的,我在这方面也不先进。然而,在玩了很多 XAMPP 并遵循了一些不同的指南之后,我开始工作了。

驱动程序下的主机似乎有点奇怪。我宣布我的为:

 127.0.0.1:8080    test.localhost.com
 127.0.0.1:8080    test2.localhost.com

备份 Xampp,然后将全新安装解压缩到 C: - 仅仅因为状态检查失败听起来像是坏消息。

!记得从xampp目录运行setup_xampp.bat并安装apache服务!

然后在你的 httpd.conf 下添加:

ServerRoot C:\xampp\apache
Listen 7070
Listen 8080
Listen 9090

Apache 一开始可能不喜欢这样,但是嗯。

ServerRoot 可能已经在 Listen 位置上方声明,因此请仔细检查。

之后前往 C:\xampp\apache\conf\extra。

编辑 httpd-vhosts.conf。

在基于名称的虚拟主机部分下添加:

NameVirtualHost *:7070
NameVirtualHost *:8080
NameVirtualHost *:9090

下面会有几个虚拟主机的例子。添加:

<VirtualHost *:7070>
    DocumentRoot    "C:/xampp/www/YOURWEBSITEDIR1"
    ServerName      test.localhost.com
    <Directory "C://xampp/www/YOURWEBSITEDIR1">
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:9090>
    DocumentRoot    "C:/xampp/www/YOURWEBSITEDIR2"
    ServerName      test2.localhost.com
    <Directory "C://xampp/www/YOURWEBSITEDIR2">
        Allow from all
    </Directory>
</VirtualHost>

不是 Directory 标签中的双斜杠。现在确保每个目录下都有一个 index.html。重新启动 apache(停止,启动)。

我无法导航到 test.localhost.com URL,可能是因为它们在 HOSTs 配置中非常错误。虽然我可以连接到 127.0.0.1:7070、127.0.0.1:9090 并从那里访问网页。

127.0.0.1:8080 也将我连接到本地主机用来连接你的 xampp 欢迎面板。

希望这会有所帮助,祝你好运!

于 2012-10-25T00:06:44.337 回答
0

我很确定说“在端口 80 上侦听”是硬编码到 XAMPP 中的,无论您使用什么端口。因此,您的代码应该可以正常工作。
在我的 .conf 文件中,它只是说“listen 80”而不是 Listen 0.0.0.0:8080
Cheers。

于 2013-08-12T08:25:13.503 回答