編集実際には、設定ファイルのパスを関数のパラメーターとして使用して問題を解決できます
sm.ReadConfig(Filename="/home/myuser/.gammurc")
Python用のGammuライブラリを使用しています。私のアイデアは、SMS を送信できる Python スクリプトを作成し、後でスクリプト PHP から呼び出すことでした。
これがpythonスクリプトのコードです。
#!/usr/bin/env python
import gammu
import sys
sm = gammu.StateMachine()
sm.ReadConfig()
if len(sys.argv) != 3:
print 'Uso: sms.py MENSAJE DESTINATARIO'
sys.exit(1)
rawtext = sys.argv[1]
spttext = rawtext.split("*e*")
text = " ".join(spttext)
sm.Init()
message = {
'Text': text,
'SMSC': {'Location': 1},
'Number': sys.argv[2],
}
if (sm.SendSMS(message)):
print "OK"
ターミナルからこのスクリプトを使用すると正常に動作しますが、問題は、exec() を使用して PHP からスクリプトを呼び出すと、ReadConfig() 関数を実行しているときに Gammu ライブラリからエラーが発生することです。
gammu.ERR_CANTOPENFILE: {'Text': u'Can not open specified file.', 'Code': 28, 'Where': 'FindGammuRC via ReadConfig'}
「sudo adduser www-data dialout」コマンドを実行して、Web サーバーに gammu を使用する許可を既に与えましたが、他に何が問題なのかわかりません。
これは、PHP からスクリプトを呼び出す方法です。
$rcmd="python /home/my_user/Escritorio/pythonSMS/sms.py -V 2>&1";
exec($rcmd, $output);
助けやアドバイスを探しています、ありがとう。