Iis 流浪者港口,通过Laravel Homestead转运80至8000

Iis 流浪者港口,通过Laravel Homestead转运80至8000,iis,laravel,vagrant,virtualbox,portforwarding,Iis,Laravel,Vagrant,Virtualbox,Portforwarding,我的问题: 我只能通过端口8000访问我的站点,但不能通过端口80访问,这让我觉得它并没有像它所说的那样将80重定向到8000。我只想在我的浏览器中键入local.kujif.com,它就会加载该站点,默认情况下我读取的是端口80。我使用curl检查它,它返回: curl 'http://local.kujif.com' curl: (7) Failed connect to local.kujif.com:80; No error 但是,如果我在url中添加:8000,那么它就可以工作;它返

我的问题:

我只能通过端口8000访问我的站点,但不能通过端口80访问,这让我觉得它并没有像它所说的那样将80重定向到8000。我只想在我的浏览器中键入local.kujif.com,它就会加载该站点,默认情况下我读取的是端口80。我使用curl检查它,它返回:

curl 'http://local.kujif.com'
curl: (7) Failed connect to local.kujif.com:80; No error
但是,如果我在url中添加:8000,那么它就可以工作;它返回我的index.php,它只打印“test”:

curl 'http://local.kujif.com:8000'
test
我的详细信息:

我正在使用Laravel Homestead和Vagrant与Oracle VM VirtualBox

在Homestead.rb中,它具有端口转发功能。我根本没有编辑它:

config.vm.network "forwarded_port", guest: 80, host: 8000
config.vm.network "forwarded_port", guest: 3306, host: 33060
config.vm.network "forwarded_port", guest: 5432, host: 54320
我还为我的工作安装了Microsoft IIS。当我需要vagrant使用本地主机时,我显然会停止该服务

《流浪者行动》显示:

My Homestead.yaml文件:

---
ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: /Users/Tyler/.ssh/id_rsa.pub

keys:
    - /Users/Tyler/.ssh/id_rsa

folders:
    - map: C:\DEV\Linux
      to: /var/www/

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public
    - map: local.kujif.com
      to: /var/www/kujif

variables:
    - key: APP_ENV
      value: local

我不确定混乱是什么-这是它应该工作的方式

VM上的web服务器侦听端口80。Vagrant/VirtualBox将该端口从80(在虚拟机上)转发到8000(在本地主机上),以便您可以在
http://localhost:8000

VM域名上的端口80将不可用-该域名可能解析为
localhost

尝试以下操作:
dig local.kujif.com
(或
nslookup
或甚至
ping
-我不知道Windows上有哪些工具可用)以找出该名称解析到的IP地址。您可能会发现它是
127.0.0.1
(localhost)

您可以尝试使用homestead文件中设置的IP地址:
http://192.168.10.10/
-这可能有效,但这取决于VM中的网络配置方式


理想情况下,您需要在虚拟机中将网络设置为“桥接”-这将使虚拟机(在您的网络中)与网络上的任何其他设备一样。VM中的其他网络选项(抱歉,我不熟悉VirtualBox中的选项)将使用VM外部无法访问的自己的网络设置VM-这就是为什么使用端口转发公开VM上的网络服务。

您应该继续使用1024以上的端口,因为它们是非特权端口,但是,如果您愿意,您可以在Homestead VM上作为端口80运行,只要主机上没有任何保留该端口的内容。只是尝试了一下,效果很好,有一些问题。首先,将.rb文件中的该行从:

config.vm.network“forwarded_port”,来宾:80,主机:8000

config.vm.network“forwarded_port”,来宾:80,主机:80

当您在保存后启动虚拟机时,您将收到来自vagrant的警告:

==>默认值:您正在尝试转发到特权端口(端口默认值:操作系统仅将此限制为特权进程(通常为

==>默认值:以管理用户身份运行的进程)。这是一个警告,以防

==>默认:端口转发不工作。如果出现任何问题,请尝试

==>默认值:端口大于1024

==>默认值:转发端口

default: 80 => 80 (adapter 1)
但这对我来说很有效。现在,要真正访问虚拟机,我必须使用它的私有IP而不是本地主机名:

http://192.168.10.10/
但我的网站确实存在,而且一切正常。如果你决定保留它,你可以将该IP地址添加到你的主机文件中,给它一个很好的短名称


希望这能有所帮助。

我知道有一个公认的答案,但这个替代方案也可能对某人有所帮助。 如果我理解正确的话,你真的不喜欢“8000”端口

您是否尝试过设置专用网络

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    /*other config stuff here */
    config.vm.network :private_network, ip: "192.168.33.22"
通过这种方式,您可以简单地使用该IP地址,或者编辑主机文件以将本地域映射到该IP

看一看流浪医生:


顺便说一句,您不需要关闭IIS本地服务器,因为它运行在完全不同的IP范围内。我让Apache在本地运行,同时也访问VM服务器。这允许您使用composer之类的工具(拉入laravel)如果需要的话,在你的本地网站上。

hmm我下班后会试试这些东西,谢谢。难道我不应该只在浏览器中键入local.kujif.com,然后加载我的本地网站,而不必每次添加:8000?这取决于
local.kujif.com
解析为什么IP地址。如果它是
127.0.0.1
,那么它与键入
http://localhost
,这将需要端口8000。是的,它解析为127.0.0.1,这是在我的主机文件中设置的方式。我选中了我的VM框,有两个主机连接到不同的IP。我尝试ping了IP,两个都工作,所以我尝试更改主机文件,将local.kujif.com解析为这些IP和ne中的每一个它成功了。如果我能让它使用其中一个虚拟机IP,它会绕过需要:8000吗?是的,它应该。在这一点上,您可能会深入了解虚拟机的配置,我必须承认我对VirtualBox不太熟悉(我更熟悉VMWare ESXi).嘿,但我真的很感谢到目前为止的帮助,这是我可以使用的。谢谢!这应该是公认的答案。将域路径映射到主机文件中配置的本地IP,允许我访问我的homestead box上托管的多个项目。