如何从php注册ejabberd用户?
我从stack follow中找到了一段代码,用于使用php在ejabberd xmpp聊天服务器中执行register命令。() 我还在ubuntulinuxserver12.0的/etc/sudoers文件中添加了“www-data-ALL=NOPASSWD:/usr/sbin/ejabberdctl”行 但是当我执行文件时,我得到了一个错误: “读取密码:无法打开/dev/tty:没有这样的设备或地址 主机密钥验证失败。“ 我使用的php代码如下所示:如何从php注册ejabberd用户?,php,linux,ubuntu,ejabberd,Php,Linux,Ubuntu,Ejabberd,我从stack follow中找到了一段代码,用于使用php在ejabberd xmpp聊天服务器中执行register命令。() 我还在ubuntulinuxserver12.0的/etc/sudoers文件中添加了“www-data-ALL=NOPASSWD:/usr/sbin/ejabberdctl”行 但是当我执行文件时,我得到了一个错误: “读取密码:无法打开/dev/tty:没有这样的设备或地址 主机密钥验证失败。“ 我使用的php代码如下所示: `<?php $usernam
`<?php
$username = 'tester';
$password = 'testerspassword';
$node = 'myserver.com';
exec('sudo /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>';
}
?>`
``
请帮帮我
谢谢您好,以下代码适用于我 只需更改上面代码中的一行
exec('sudo-u ejabberd ejabberdctl register'.$username'.$node'.$password'.2>&1',$output,$status);
部分sudo-u ejabberd
表示该命令应在拥有您的ejabberd
进程的用户内部执行。通常,这应该是一个无特权的用户,但可能您的用户调用方式不同,或者您甚至可能使用root。在后一种情况下,命令应类似于:
请注意,由于安全原因,运行外部网络(如internet)可访问的服务不应以root用户身份运行 你好,mani我在我的ubnutu 14.04 LTS机器上使用了上述代码,但它给了我以下错误“sudo:未知用户:ejabberd”“sudo:无法初始化策略插件”
exec('sudo -u root ejabberdctl register '.$username.' '.$node.' '.$password.' 2>&1',$output,$status);