【发布时间】:2019-06-06 08:44:05
【问题描述】:
自从我开始开发 Web 应用程序以来,我总是发现检查外部服务请求并使用“现实”场景测试我的应用程序非常烦人。我们有哪些解决方案可以将我的本地开发环境暴露给外部服务?
我正在使用 Laravel Homestead 和/或 PHP 开发服务器
【问题讨论】:
标签: php laravel localhost environment homestead
自从我开始开发 Web 应用程序以来,我总是发现检查外部服务请求并使用“现实”场景测试我的应用程序非常烦人。我们有哪些解决方案可以将我的本地开发环境暴露给外部服务?
我正在使用 Laravel Homestead 和/或 PHP 开发服务器
【问题讨论】:
标签: php laravel localhost environment homestead
在寻找明确答案之前,我找到了一个以高效、免费的方式解决所有这些问题的解决方案,这就是Ngrok,这是由Alan Shreve 创建的产品——它曾与微软和微软等巨头合作过特维利奥。 Alan 写了关于 Ngrok 的创建和article on his blog,他将产品描述为:
“Ngrok 是一个隧道反向代理,它建立从公共端点到本地运行的网络服务的安全隧道,同时捕获所有流量以供检查和重放。它是 GitHub 上的一个开源项目。”
好吧,既然您对该工具以及我发现它的原因有所了解,让我们演示如何公开本地环境以允许第三方服务通过 Webhook 向本地环境提交请求,这非常简单,两种解决方案我要介绍的已经过测试并适用于以下场景:
要做到这一点,只需按照以下步骤操作:
对于前两种情况,只需运行以下命令
ngrok http <host>:<port>
例如:ngrok http 127.0.0.0.1:666
对于第三种情况(如果您使用域访问家园,例如:homestead.test,您必须重写主机头。但不要担心,要实现它只需将上面的命令增加到类似的东西)
ngrok http <homestead_host_ip>:<port> -host-header=<homestead_domain>
示例:ngrok http 192.168.10.10:80 -host-header=homestead.test
瞧,现在只需将 Ngrok 在 Webhook 中生成的 URL 指向您想要测试并享受这个美妙的解决方案。
【讨论】: