在我自己的服务器上安装TextBelt

我想将一个开源的cURL SMS API TextBelt安装到我自己的Amazon EC2 Web服务器上,并用它来发送文本消息。 但是,我不确定如何正确地去做这件事。

我用git将所有的文件克隆到一个名为/var/www/textbelt 。 然后,我使用npm来安装package.json文件中列出的所有依赖项,并根据此答案中提供的说明创build了符号链接。 我看到在“scripts”文件夹中有一个bash脚本start.sh ,所以我cd到它并跑sh start.sh 。 然后我得到以下消息:

 nohup: appending output to '/home/ec2-user/nohup.out' 

当然,我检查了日志,看到这个:

 ^[[0;31mError: Cannot find module '/var/www/textbelt/scripts/app.js' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:906:3 

出于某种原因, start.sh错误地引用了app.jspath。 我通过将app.js更改为../app.js来解决此../app.js ,然后再次尝试。 这是我的完整输出:

 ^[[0;42m hotnode ^[[m ^[[0;32mnode process restarted^[[m ^[[0;31mconnect.multipart() will be removed in connect 3.0 ^[[m ^[[0;31mvisit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives ^[[m ^[[0;31mconnect.limit() will be removed in connect 3.0 ^[[m Listening on 9090 ^[[0;31m ^[[m ^[[0;31mevents.js:72 ^[[m ^[[0;31m throw er; // Unhandled 'error' event ^[[m ^[[0;31m ^[[m ^[[0;31m ^[[m ^[[0;31m ^[[m ^[[0;31m ^[[m ^[[0;31m ^[[m ^[[0;31m ^[[m ^[[0;31m ^[[m ^[[0;31m ^[[m ^[[0;31m ^[[m ^[[0;31m ^[[m ^[[0;31m ^[[m ^[[0;31m ^[[m ^[[0;31m ^[[m ^[[0;31m ^[[m ^[[0;31m^^[[m ^[[0;31m ^[[m ^[[0;31mError: Redis connection to localhost:6379 failed - connect ECONNREFUSED at RedisClient.on_error (/var/www/textbelt/node_modules/redis-url/node_modules/redis/index.js:196:24) at Socket.<anonymous> (/var/www/textbelt/node_modules/redis-url/node_modules/redis/index.js:106:14) at Socket.emit (events.js:95:17) at net.js:440:14 at process._tickCallback (node.js:419:13) ^[[m 

谷歌search“Redis连接到…失败”后,我发现这个答案,这意味着解决scheme是通过键入redis-server来启动Redis redis-server 。 但是,我得到以下错误:

 -bash: redis-server: command not found 

这表明redis安装不正确。 然而,看着我的node_modules文件夹后,我看到里面确实有一个redis-url文件夹,(我假设)意味着依赖项已经正确安装了? 我必须做一个服务器范围的安装或者什么?

我有点卡在这里。

总的来说,我不知道我是否正朝着正确的方向前进。 什么是安装和启动TextBelt API以正确运行的正确方法。

更新:好的,所以我想,我还必须分别安装redis服务器。 重新启动一切,日志现在看起来不错:

 ^[[0;42m hotnode ^[[m ^[[0;32mnode process restarted^[[m ^[[0;31mconnect.multipart() will be removed in connect 3.0 ^[[m ^[[0;31mvisit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives ^[[m ^[[0;31mconnect.limit() will be removed in connect 3.0 ^[[m Listening on 9090 

不过,我相信需要进一步的configuration来实际发送短信。 例如,我尝试使用cURL使用我的服务器发送消息,就像我想http://textbelt.com :

 $ curl http://my.ip/text \ -d number=5551234567 \ -d "message=I sent this message for free with textbelt.com" 

但是这不起作用(我得到的是我的404未find页面的HTML)。 有一件事要注意的是,我目前在/var/www/textbelt文件夹,但是web文档根目录在/var/www/html/ 。 我不认为我必须实际将文件夹移动到文档根目录,这是正确的吗? 我该如何继续?

原来,答案比我想象的要简单得多。 我的安装没有任何问题,但端口9090未在我的防火墙中打开。 打开这个端口立即解决了这个问题。