在php exec中使用gammu时出错

时间:2013-09-02 04:34:06

标签: php ubuntu gammu

我在ubuntu 11中成功安装了gammu,并使用命令行发送短信 echo "TEXTMESSAGE" | gammu sendsms TEXT mobilenumber

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

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

感谢您的帮助

3 个答案:

答案 0 :(得分:0)

您缺少.gammurc,默认设置无法检测到您的设备。 尝试运行gammu-detect。它应该说出

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

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

答案 1 :(得分:0)

刚刚解决了类似的麻烦。在我的情况下,gammu是在nagios用户下执行的,因此在我将它放入/ etc / gammurc之前无法找到配置文件。 根据Linux,MacOS X,BSD和其他类Unix系统上的gammu documentation,配置文件按以下顺序搜索:

  1. $ XDG_CONFIG_HOME /监务/配置
  2. 〜/的.config /监务/配置
  3. 〜/ .gammurc
  4. 的/ etc / gammurc
  5. 我的文件位于/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命令) 希望它会有用。

答案 2 :(得分:0)

您可以通过以下方式更改.gammurc的路径:

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

上移过

cp .gammurc / etc / gammurc

别忘了删除圆点。 我用它覆盆子Pi,gammu目录可能会改变你的环境