繁体   English   中英

如何从php注册ejabberd用户?

[英]how to register ejabberd user from php?

我从堆栈中找到了一个代码,用于使用 php 在 ejabberd xmpp 聊天服务器中执行注册命令。 从 PHP 创建 ejabberd 用户

我还在 ubuntu linux 服务器 12.0 的“/etc/sudoers”文件中添加“www-data ALL= NOPASSWD:/usr/sbin/ejabberdctl”行

但是当我执行文件时出现错误:

“read_passphrase: can't open /dev/tty: No such device or address 主机密钥验证失败。”

我使用的 php 代码如下:

`<?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。 在后一种情况下,命令应该是这样的:

exec('sudo -u root ejabberdctl register '.$username.' '.$node.' '.$password.' 2>&1',$output,$status);

请注意,出于安全原因,不应以 root 身份运行可访问外部网络(例如 Internet)的服务!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM