[英]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.