通过 LAN 上的 IP 地址访问虚拟主机

Access vhost via ip address on lan

我是 运行 WAMP,我的项目使用 CodeIgniter,我的虚拟主机上有这个:

<VirtualHost *:80>
    ServerAdmin admin@yahoo.com
    DocumentRoot "C:/wamp/www/myproject/assets"
    ServerName myproject.dev
    ErrorLog "logs/myproject.dev-error.log"
    CustomLog "logs/myproject.dev-access.log" common
</VirtualHost>

现在要访问它,我在 windows/system32/drivers/etc/hosts 上添加了这一行:

127.0.0.1 myproject.dev

现在对于网络上的其他计算机,我必须编辑每台计算机的 hosts 文件,以便它们可以访问我的虚拟主机。 (是的,当然我必须使用我的 ip 地址代替 127.0.0.1 用于其他计算机)

现在我的问题是,有没有办法让他们像这样只使用我在浏览器地址栏上的 ip 地址就可以访问我的项目?

http://192.168.1.112/myproject

我的意思是有 100 个用户将访问该项目,如果我编辑每个人的主机文件,那将是一个很大的麻烦。比如向 .htaccess 或 CodeIgniter 的 routes 添加内容,或向 <virtualHost>

添加内容

注意: 顺便说一句,当我们仍然不使用 Codeigniter(纯 PHP 代码)时,这不是问题。但是因为Codeigniter的结构,我们不能再做了。

您能否只添加一个指向您的 IP 地址的 DNS 条目并将其设置为 apache 响应的 ServerName?

或者,您可以根据此处所述的 IP 地址和端口进行虚拟托管:

http://httpd.apache.org/docs/2.2/vhosts/ip-based.html

总而言之,您应该能够做到:

<VirtualHost 192.168.1.112:8000>
  ServerAdmin admin@yahoo.com
  DocumentRoot "C:/wamp/www/myproject/assets"
  ServerName myproject.dev
  ErrorLog "logs/myproject.dev-error.log"
  CustomLog "logs/myproject.dev-access.log" common
</VirtualHost>

并让人们通过

访问它
http://192.168.1.112:8000/myproject

但是,如果您使用基于 IP 的虚拟主机,请不要忘记为端口 8000(或您选择的任何端口)添加一个 Listen 指令

在 wamp 服务器中创建一个名为 /myproject 的别名并将文档根目录指向 'C:/wamp/www/myproject/assets'

可能会奏效

通过在 wamp 服务器系统托盘图标中选择 'Put Online',确保您已将 wamp 服务器状态设置为在线。