如何从云端执行 shell_exec 命令到我的本地主机

How to execute a shell_exec command from the cloud to my localhost

我正在制作一个短信发送网站,我使用 Gammu 作为我的本地短信网关,它在我的本地主机上工作正常,基于我正在使用的 php 代码是:

echo shell_exec('"C:\Gammu\bin\gammu.exe" --sendsms TEXT +'.$row["mobilenum"].' -text '.$message.'');

现在,当我开始将网站放在云端时,我该如何执行这个?我正在为我的 SMS 服务器使用 window。

还有其他方法可以 link 云和本地主机只执行 gammu 命令吗?

在云服务器上调用 shell_exec() 到 gammu.exe 将无法工作,因为您没有 phone 连接。

您需要通过 HTTP 向可以执行此操作的服务发出请求,而不是从您的云托管网站调用 shell_exec()。

最简单的方法是使用 Twillio.com

或者,您也可以在您的本地网络上公开一个简单的 HTTP API,云服务器可以访问 POST。

您需要在本地 Gammu 服务器上使用静态 IP,并在防火墙中打开相应的端口。

例如:

POST http://100.22.33.11/sms?number=82736164617&text=Hello%20World

或在 JS 中

$.post('http://100.22.33.11/sms',{
  number: '82736164617',
  text: 'Hello World'
})

当然,您还想添加一些身份验证(通过 SSL),以避免成为开放的 SMS 代理 :)