2016-10-25 3 views
1

Я пытаюсь выполнить команду клиента Asterisk с PHP, чтобы отобразить с помощью html. Я обычно делал это нормально. Когда сервер был перезагружен, я использовал 777 разрешений для файла «/var/run/asterisk/asterisk.ctl», а затем я мог запустить команду и отобразить ее с помощью PHP и HTML.Выполнение команды клиента Asterisk с PHP

Теперь я делаю все эти шаги, но когда я пытаюсь отобразить команду, ничего не отображается, и Asterisk не возвращает никакого сообщения. Команда, я пытаюсь выполнить с РНР:

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

переменных $ данных ничего не возвращает.

+1

Что-нибудь в консоли звездочки? например. в 'asterisk -r' –

+0

вы предоставили права на sudo без пароля на свой u-сервер вашего веб-сервера? если так, то судо, вероятно, скулит по поводу отсутствия терминала. И вы, вероятно, захотите перенаправить stderr, потому что '$ data' будет содержать только stdout. –

+0

Команды sudo обычно запрашивают пароль. Вы можете отредактировать файл sudoers (с visudo) и добавить правило, которое позволяет пользователю веб-сервера запускать команду без пароля. Например: www-data ALL = NOPASSWD:/path/to/script –

ответ

0

Я думаю, что сначала у вас есть чек, «что такое путь для вашей учетной записи Apache».

На самом деле это нелогично apache see/usr/sbin /. Так что вам нужно использовать полный путь к звездочке

Во-вторых, у вас есть чек - если ваш sudo (/ etc/sudoers) ДЕЙСТВИТЕЛЬНО разрешает запуск звездочки для пользователя apache (или никто, зависит от вашей установки).

0

Наконец-то я смог его решить. Он оставался проблемой разрешений. По-видимому, вы не можете использовать предварительную команду «sudo». Поэтому я удалил его, и консоль онлайн-пользователей снова появилась на PHP.

Благодарим за помощь!

Смежные вопросы