Я нашел код из стека через поток, чтобы выполнить команду register в чат-сервере ejabberd xmpp, используя php. (Создайте пользователя ejabberd с PHP)
Но когда я выполняю файл, я получил ошибку:
"sudo: неизвестный пользователь: ejabberd" "sudo: невозможно инициализировать плагин политики"
Я запускаю этот код на моей ubuntu (14.04 LTS 64-разрядной) машине. PHP-код, который я использую следующим образом:
<?php $username = 'tester'; $password = 'testerspassword'; $node = 'myserver.com'; exec('sudo -u ejabberd /usr/sbin/ejabberdctl register '.$username.' '.$node.' '.$password.' 2>&1',$output,$status); if($output == 0) { // Success! } else { // Failure, $output has the details echo '<pre>'; foreach($output as $o) { echo $o."\n"; } echo '</pre>'; } ?>
<?php $username = 'tester'; $password = 'testerpassword'; $node = 'localhost'; echo exec('sudo -u ejabberd /usr/sbin/ejabberdctl register '.$username.' '.$node.' '.$password.' 2>&1',$output,$status); die; if($output == 0) { // Success! echo "success"; } else { // Failure, $output has the details echo '<pre>'; foreach($output as $o) { echo $o."\n"; } echo '</pre>'; } ?>
Я использую localhost
в $node
, в $ node вы можете использовать свой IP-адрес в соответствии с IP-адресом, который вы настроили в файле configure.cfg.
У меня есть следующая ошибка при запуске вышеуказанного кода
no tty present and no askpass program specified ; TTY=unknown ;
поэтому ниже ссылка является решением для кода ниже
sudo в php exec ()
после выполнения вышеуказанного процесса связи
User tester@localhost successfully registered