【问题标题】:XAMPP apache server not using the ports I desire, not certain whyXAMPP apache服务器没有使用我想要的端口,不知道为什么
【发布时间】:2012-10-15 01:38:29
【问题描述】:

所以,我一直在为一个必须能够通过虚拟主机维护多个域的学校项目设置这个 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.

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

【问题讨论】:

    标签: apache xampp port virtualhost


    【解决方案1】:

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

    drivers 下的 Host 看起来有点奇怪。我将我的声明为:

     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>
    

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

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

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

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

    【讨论】:

    • 抱歉,现在正在处理这个问题。为什么要注意目录中的双斜杠?为什么有它?出于好奇,我看不出它有什么帮助。
    • 对我有用的。这正是我设置和(非常)运行我的 apache 的方式。如果有人可以纠正我,请做。
    • 好的,我已经尝试过几次了。我目前遇到的问题是,在我看来,它似乎没有注意到我有虚拟主机。我可以直接访问 127.0.0.1:8080,你可以,它会带我到 xampp - 这就是我在我的 vhosts 和 httpd.conf 文件中指向的内容。有趣的是,我也无法使用主机中的地址访问该站点;但是回到主题,在我看来好像它没有正确加载虚拟主机,因为没有其他地址可以加载。
    【解决方案2】:

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

    【讨论】:

    • 这如何回答这个问题..?
    • 这很有帮助,虽然 XAMPP 可能会说它只监听端口 80,但您可以更轻松地排除故障,因为这并不意味着它实际上只监听端口 80。
    猜你喜欢
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 2014-06-05
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多