ejabberd — Как зарегистрировать пользователя на ejabbered, используя php код

Я нашел код из стека через поток для выполнения команды register на сервере чата ejabberd xmpp с использованием php. (Создать пользователя ejabberd из PHP)

Но когда я выполняю файл, я получаю сообщение об ошибке:

«sudo: неизвестный пользователь: ejabberd» «sudo: не удалось инициализировать плагин политики»

Я запускаю этот код на моей машине с Ubuntu (14.04 LTS 64-bit)
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>';
}
?>

3

Решение

<?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в узле $ вы можете использовать свой IP-адрес в соответствии с IP-адресом, который вы настроили в своем файле configure.cfg.

У меня следующая ошибка при запуске вышеуказанного кода

no tty present and no askpass program specified ; TTY=unknown ;

поэтому ссылка ниже является решением для кода ниже

sudo в php exec ()

после выполнения вышеуказанного процесса ссылки

User tester@localhost successfully registered
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]