使用Laravel Homestead的Vagrant港口转发80至8000

 手机用户2502860565 发布于 2023-01-07 05:32

我的问题:

我只能通过端口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

但是,如果我添加: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使用localhost时,我显然会停止该服务.

"流浪汉"表明:

在此输入图像描述

我的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

noeldiaz.. 8

您应该继续使用1024以上的端口,因为它们是非特权端口,但是如果您确实希望可以在Homestead VM上作为端口80运行,只要您没有任何东西保留在主机上的那个端口上.只是尝试了它,它有效,有一些陷阱.首先,在以下位置更改.rb文件中的该行:

config.vm.network"forwarded_port",guest:80,host:8000

config.vm.network"forwarded_port",guest:80,host:80

当您在保存后启动VM时,您将收到来自流浪者的警告:

==>默认:您正在尝试转发到特权端口(端口<= 1024).最

==>默认值:操作系统将此限制为仅限特权进程(通常

==>默认:作为管理用户运行的进程).这是一个警告,以防万一

==>默认:端口转发不起作用.如果出现任何问题,请尝试一下

==>默认值:端口高于1024.

==>默认:转发端口......

default: 80 => 80 (adapter 1)

但它对我有用.现在,要真正到达VM,我必须使用它的私有IP而不是localhost名称:

http://192.168.10.10/

但果然我的网站就在那里,一切正常.如果您决定保留它,则可以将该IP地址添加到hosts文件中,以便为其提供一个很好的短名称.

希望这可以帮助.

2 个回答
  • 您应该继续使用1024以上的端口,因为它们是非特权端口,但是如果您确实希望可以在Homestead VM上作为端口80运行,只要您没有任何东西保留在主机上的那个端口上.只是尝试了它,它有效,有一些陷阱.首先,在以下位置更改.rb文件中的该行:

    config.vm.network"forwarded_port",guest:80,host:8000

    config.vm.network"forwarded_port",guest:80,host:80

    当您在保存后启动VM时,您将收到来自流浪者的警告:

    ==>默认:您正在尝试转发到特权端口(端口<= 1024).最

    ==>默认值:操作系统将此限制为仅限特权进程(通常

    ==>默认:作为管理用户运行的进程).这是一个警告,以防万一

    ==>默认:端口转发不起作用.如果出现任何问题,请尝试一下

    ==>默认值:端口高于1024.

    ==>默认:转发端口......

    default: 80 => 80 (adapter 1)
    

    但它对我有用.现在,要真正到达VM,我必须使用它的私有IP而不是localhost名称:

    http://192.168.10.10/
    

    但果然我的网站就在那里,一切正常.如果您决定保留它,则可以将该IP地址添加到hosts文件中,以便为其提供一个很好的短名称.

    希望这可以帮助.

    2023-01-07 06:04 回答
  • 我看到有一个公认的答案,但这个替代方案也可以帮助某人.如果我理解正确你真的不喜欢端口"8000"!

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

    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
        /*other config stuff here */
        config.vm.network :private_network, ip: "192.168.33.22"
    

    这样,您可以简单地使用该IP地址,或编辑主机文件以将本地域映射到该IP.

    看看Vagrant docs:Vagrant Private Networks

    顺便说一下,您不应该关闭IIS本地服务器,因为它在完全不同的IP范围上运行.我在本地运行Apache,同时也访问VM服务器.如果需要,这允许您在本地使用作曲家(拉入laravel)等工具.

    2023-01-07 06:06 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有