-bash:ngrok:找不到命令

时间:2014-10-19 16:40:55

标签: ruby-on-rails bash heroku ngrok

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

-bash: ngrok: command not found.

有谁知道我的问题可能是什么?也有人能解释一下ngrok对部署到heroku的做法吗?如果heroku工作相同,我会这样做。我是新手使用API​​,所以我不清楚我为什么使用ngrok。

谢谢!

3 个答案:

答案 0 :(得分:34)

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

进行调用

答案 1 :(得分:16)

要从任何目录访问,我必须将二进制文件移动到$ 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对Heroku做了什么?",ngrok与Heroku完全不同,后者更复杂。 Ngrok允许您使用安全隧道通过Internet公开正在运行的本地服务器。 Heroku是一个用于Web应用程序的云托管平台。要使用ngrok,您只需运行本地服务器并通过ngrok公开它。通过ngrok连接到服务器的任何人实际上都在与运行本地计算机的服务器进行通信。使用Heroku,您的应用程序在云中的托管虚拟机上运行。这简直过分了,但简而言之,NGROk非常适合一些远程用户对您的服务器进行快速测试。它对于从虚拟化环境(即云ssh会话)内部传输文件/数据等也是有用的。

答案 2 :(得分: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