2016-10-25 8 views
1

PHPでアスタリスククライアントコマンドを実行しようとしていますが、htmlで表示しています。私はそれを普通にやっていました。サーバーが再起動されたとき、私は777のアクセス権を "/var/run/asterisk/asterisk.ctl"ファイルに与えて、コマンドを実行してPHPとHTMLで表示することができました。PHPでアスタリスククライアントコマンドを実行

ここではすべての手順を実行しますが、コマンドを表示しようとすると何も表示されず、アスタリスクはメッセージを返しません。私はPHPで実行しようとするコマンドは次のとおりです。何も返さない

exec('sudo asterisk -rx "sip show peers"',$data); 

変数$データ。

+1

アスタリスクコンソールには何もありませんか?例えば。 'asterisk -r'の中で –

+0

あなたのウェブサーバーのuidにパスワードなしのsudo権限を与えましたか?もしそうなら、sudoはおそらくターミナルの欠如について泣いているでしょう。 '$ data'はstdoutだけを含んでいるので、stderrをリダイレクトしたいと思うでしょう。 –

+0

sudoコマンドは通常、パスワードを要求します。 sudoersファイル(visudo)を編集し、Webサーバーユーザーがパスワードなしでコマンドを実行できるようにするルールを追加することができます。例: www-data ALL = NOPASSWD:/ path/to/script –

答えて

0

まず、あなたのチェックは「あなたのApacheアカウントのパスは何ですか」と思っています。

実際には/ usr/sbin /を参照してください。アスタリスクへのフルパスを使用する必要があります

あなたのsudo(/ etc/sudoers)が本当にapache(または誰もあなたの設定に依存します)ユーザのためにアスタリスクを実行できる場合、チェックしてください。

0

最後に私はそれを解決できました。それは許可の問題のままでした。明らかに、プリコマンド "sudo"を使うことはできません。だから私はそれを削除し、オンラインユーザーコンソールはPHPで再現されました。

ありがとうございました!