我成功地在ubuntu 11中安装了gammu,并使用命令行发送了文本消息echo "TEXTMESSAGE"
|gammu发送文本手机号码
我的问题是,当我在php脚本中使用exec函数时,我总是会出现以下错误:
Warning: No configuration file found!
Warning: No configuration read, using builtin defaults!
Error opening device, it doesn't exist.
感谢的帮助
您缺少.gammurc,默认情况下无法检测到您的设备。尝试运行gammu detect。它应该说一些类似的东西
[gammu]
device = /dev/ttyUSB0
name = Phone on USB serial port HUAWEI_Technology HUAWEI_Mobile
connection = at
如果不起作用,请运行gammu-config并手动设置端口和连接。
刚刚解决了类似的问题。在我的例子中,gammu是在nagios用户下执行的,所以在我把它放在/etc/gammurc中之前,它无法找到配置文件。根据Linux、MacOSX、BSD和其他类似Unix系统上的gammu文档,配置文件按以下顺序搜索:
- $XDG_CONFIG_HOME/gamu/CONFIG
- ~/.config/gammu/config
- ~/.gammurc
- /etc/gammurc
我的文件在/home/user/.gammurc中,但当我在nagios下执行它时,用户"~"是一个不同的目录,所以gammu找不到它。
现在权限:为了让您的用户访问/dev/ttyUSB0
(使用您的路径),您应该通过以下方式将nagios
(在您的情况下为www-data
或其他)用户添加到dialout
组:
sudo usermod -a -G dialout nagios
然后在gammu
上设置SUID位,以允许nagios
(在您的情况下为www-data
)代表根执行它:
sudo chmod 4755 /usr/bin/gammu
尝试代表root执行gammu
(可以使用su
命令)希望它有用。
您可以通过以下操作更改.gammurc的路径:
复制位于根目录上的文件(.gammurc),然后在/etc上通过它。
cp.gammurc/etc/gammurc
别忘了去掉圆点。我使用它树莓Pi,gammu的目录可能会在您的环境上更改