【问题标题】:accessing a local virtual host from outside LAN as virtual host like http://sitename instead of http://systemname/sitename从外部 LAN 访问本地虚拟主机作为虚拟主机,例如 http://sitename 而不是 http://systemname/sitename
【发布时间】:2010-11-03 06:35:18
【问题描述】:

我正在开发一个由两个人管理的网站。一个是我,另一个是设计者跨局域网从不同机器访问。

配置:php、apache、windows xp、mysql。

文档根目录:d:\www\xampp\htdocs。所有项目都在此作为子文件夹。

我已经设置了虚拟主机,这样我就不会以http://localhost/foldername 身份访问所有项目,而是以http://foldername 身份访问所有项目。

但是对于在另一个系统中的设计师,他必须像http://computername/foldername一样访问

例如,让我在一个项目工资单中工作。我将以http://payroll 访问它,但我的设计师将以http://computername/payroll 访问它。

我想要做的是我希望设计师以我访问的方式访问。那是http://payroll

以便在设计器系统中,当服务器名称为 payroll 时,我希望将其定向到我的机器,然后定向到项目文件夹。所以如果他给了http://payroll,那么我系统中的应用程序应该为他运行。

我已在设计器系统中设置主机文件以指向我的机器。所以这项工作已经完成,当他提供工资单时,我的http://localhost 出现了。

我应该怎么做才能让设计师像http://payroll一样从他的系统中访问我的项目?

【问题讨论】:

    标签: apache virtualhost


    【解决方案1】:

    设计者必须将每个sitename 的IP 地址添加到他的hosts file 中,因为没有它,他的浏览器将不知道在哪里查找该站点。它可能看起来像这样:

    12.34.56.78 sitename1
    12.34.56.78 sitename2
    12.34.56.78 repeat.for.each.sitename
    ...
    

    如果您的 VirtualHosts 没有绑定到特定的 IP 地址,这可能就足够了。这行不通:

    NameVirtualHost 127.0.0.1:80
    
    <VirtualHost 127.0.0.1:80>
        ServerName sitename1
        ...
    </VirtualHost>
    

    应该是:

    NameVirtualHost *:80
    
    <VirtualHost *:80>
        ServerName sitename1
        ...
    </VirtualHost>
    

    这样,只要 apache 看到主机名为 sitename 的请求,它就会为名为 sitename 的站点提供服务,不管它是否来自同一台计算机。

    【讨论】:

    • 对我来说显示禁止访问,但其他计算机可以访问。
    • 我有我的主机文件,如 127.0.0.1 站点名称 1,它表示禁止访问,因为其他用户在其主机文件中提供了我的 IP。像这样,如果我只给我的 192.168.1.20 站点名称1,那么它就可以工作。但是所有其他显示禁止访问的虚拟主机...所以如果我的 ip 更改了,那么我想我应该更改我的主机文件并用新的 ip 替换 ip,其他的也一样。没有别的办法吗?
    • 当我将所有 127.0.0.1 替换为 conf 文件中所有实例的 ip 时,它可以工作。并且需要做更多的更改以使其按我的预期工作。反正。谢谢。
    • 是的。有效。但是...如果我在localhost/some 有另一个项目,那也将重定向到payroll...
    【解决方案2】:

    他可以放入他的\windows\system32\drivers\etc\hosts文件:

    
    1.2.3.4 payroll
    

    其中 1.2.3.4 应替换为系统的 IP 号。

    Apache sites-enabled\000-default 文件应以:

    
    <VirtualHost *:80>
            # from http://www.iliveinperego.com/2008/05/automatic-vhost-with-apache/
            RewriteEngine on
            RewriteCond %{HTTP_HOST} ^(.+)$
            RewriteRule ^(.+)$ /%1$1
      ...
    </VirtualHost>
    

    【讨论】:

    • 是的,它可以工作,但我的网站位于根文件夹的子文件夹中,我希望该子文件夹项目运行而不是根文件夹
    • 抱歉,我误会你说你已经为此修复了 Apache 设置。我会尽快更新答案。
    • 重写对你没有用吗?这就是我设置系统的方式,所以我知道它可以工作。
    • 什么是...启用 Apache 站点的\000-默认文件...该文件位于何处?
    • /etc/apache2/sites-enabled/000-default 在 Debian 上。不了解 Windows,但如果您搜索启用了站点的站点,您应该能够找到它。
    猜你喜欢
    • 2011-02-12
    • 2016-09-19
    • 1970-01-01
    • 2020-07-17
    • 2012-02-16
    • 2018-06-26
    • 2018-09-03
    • 1970-01-01
    • 2017-12-09
    相关资源
    最近更新 更多