16

我正在尝试将 Twilio API 集成到我的 Rails 应用程序中。我发现的教程建议使用 ngrok 将我的应用程序放到互联网上(而不是在本地主机上工作)。我已经安装并压缩了 ngrok,当我尝试从它所在的目录中调用它时,我得到:

-bash: ngrok: command not found.

有谁知道我的问题可能是什么?也有人可以解释 ngrok 与部署到 heroku 的区别吗?如果 heroku 也能正常工作,我会那样做。不过,我是使用 API 的新手,所以我不清楚为什么要使用 ngrok。

谢谢!

4

4 回答 4

34

如果二进制文件不在环境变量 $PATH 中存储的文件夹之一中,则必须至少提供当前位置的相对路径。因此,如果您与二进制文件位于同一文件夹中,则必须使用./ngrok

于 2014-10-19T16:45:45.890 回答
18

要从任何目录访问,我必须将二进制文件移动到 $PATH

mv ngrok /usr/local/bin 

为了从任何地方调用可执行文件。

更新:brew install ngrok不再有效,因为:

Error: No available formula with the name "ngrok"
Upstream sunsetted 1.x in March 2016 and 2.x is not open-source.

所以你需要从https://ngrok.com/download下载二进制文件

至于问题“ngrok vs Heroku 做了什么?”,ngrok 与 Heroku 完全不同,后者更复杂。Ngrok 允许您使用安全隧道通过 Internet 公开正在运行的本地服务器。Heroku 是一个用于 Web 应用程序的云托管平台。要使用 ngrok,您只需运行本地服务器并通过 ngrok 公开它。通过 ngrok 连接到您的服务器的任何人实际上都在与运行您的本地计算机的服务器通信。使用 Heroku,您的应用程序在云中的托管虚拟机上运行。这是一种过度简化,但简而言之,NGRok 非常适合一些远程用户对您的服务器进行非常快速的测试。它对于从虚拟化环境(即云 ssh 会话)内部传输文件/数据等也很有用。

于 2015-11-29T13:16:56.493 回答
0

命令已更改为:ngrok http 80

来自 ngrok 的示例:

ngrok http 80                    # secure public URL for port 80 web server
ngrok http -subdomain=baz 8080   # port 8080 available at baz.ngrok.io
ngrok http foo.dev:80            # tunnel to host:port instead of localhost
ngrok tcp 22                     # tunnel arbitrary TCP traffic to port 22
ngrok tls -hostname=foo.com 443  # TLS traffic for foo.com to port 443
ngrok start foo bar baz          # start tunnels from the configuration file
于 2016-04-13T22:53:09.047 回答
0

下面的技巧为我做了工作

我已经从以下站点下载了 ngrok: https ://ngrok.com/download

解压文件夹并将带有扩展名的 ngrok 文件(Unix 可执行文件)放在 /usr/local/bin文件夹中。

于 2022-01-14T19:52:35.147 回答