2

我在 ubuntu 11 中成功安装了 gammu,并使用命令行发送短信。
echo "TEXTMESSAGE"| gammu 发送短信 TEXT手机号码

我的问题是,当我在我的 php 脚本中使用 exec 函数时,我总是遇到以下错误:

Warning: No configuration file found!
Warning: No configuration read, using builtin defaults!
Error opening device, it doesn't exist.

谢谢您的帮助

4

3 回答 3

0

您缺少 .gammurc 并且默认设置无法检测到您的设备。尝试运行 gammu-detect。它应该说一些类似的东西

[gammu]
device = /dev/ttyUSB0
name = Phone on USB serial port HUAWEI_Technology HUAWEI_Mobile
connection = at

如果这不起作用,请运行 gammu-config 并手动设置端口和连接。

于 2013-12-13T13:13:33.727 回答
0

您可以通过执行以下操作更改 .gammurc 的路径:

复制位于根目录的文件 (.gammurc) 并将其粘贴到 /etc。

cp .gammurc /etc/gammurc

不要忘记删除点。我用的是树莓派,gammu 的目录可能会根据你的环境而改变

于 2015-02-13T11:44:43.947 回答
0

刚刚解决了类似的问题。在我的例子中,gammu 是在 nagios 用户下执行的,所以在我将它放在 /etc/gammurc.xml 之前它无法找到配置文件。根据Linux、MacOS X、BSD 和其他类 Unix 系统上的gammu 文档,配置文件按以下顺序搜索:

  1. $XDG_CONFIG_HOME/gammu/config
  2. ~/.config/gammu/config
  3. ~/.gammurc
  4. /etc/gammurc

我的文件在 /home/user/.gammurc 中,但是当我在 nagios 下执行它时,用户“~”是一个不同的目录,所以 gammu 无法找到它。

现在权限:为了让您的用户访问/dev/ttyUSB0(使用您的路径),您应该添加nagios(在您的情况下www-data或其他任何情况下)用户以dialout这种方式进行分组:

sudo usermod -a -G dialout nagios

然后设置 SUID 位gammu以允许nagioswww-data在您的情况下)代表根执行它:

sudo chmod 4755 /usr/bin/gammu

尝试gammu代表root执行(您可以使用su命令)希望它会有用。

于 2014-01-21T10:59:30.307 回答