| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3199 人关注过本帖
标题:关于ejabberd调用php的问题(实现用户系统完美对接)
只看楼主 加入收藏
ninggang
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:637
专家分:0
注 册:2006-11-1
结帖率:40%
收藏
 问题点数:0 回复次数:1 
关于ejabberd调用php的问题(实现用户系统完美对接)
大家好!
    目前我在做ejabberd外置登录校验功能。
    目的:用户注册只需要在web项目对应的数据库插入用户记录,而不用到ejabberd的数据库插入用户记录。
         当我用户登录时,ejabberd通过外置登录校验的脚本来进行校验(脚本可以用erlang、php等。考虑到简单我用的是php)。
 具体实施步骤:
A:打开ejabberd.cfg,注释掉{auth_method, internal}. %%{auth_method, internal}.
  该步骤已经生效。目前通过潘迪安客户端或smack开源包登录,所有用户均不能登录。(开始在windows环境测试始终注释掉后用户还是可以登录,在linux环境做,用户就不能登录了!)
B:在linux环境安装libxml2和搭建php环境
  php安装目录:/usr/bin/php/bin/php;其中php是主目录,下面有bin、etc、include、lib、man,5个目录。bin下面包括pear、peardev、pecl 、phar 、phar.phar 、php 、 php-cgi  、php-config 、 phpize,bin目录下php是可执行文件。
  该步骤已经成功,通过编写的简单php程序,已经可以调用成功!调用命令如下:/usr/bin/php/bin/php -f /tmp/helloworld.php
C:修改ejabberd.cfg,打开外置校验功能,将校验的php脚本指向我已经写好的php
{auth_method, external}.
{extauth_program, "/tmp/ejabberd-login-guanwang.php"}.
说明:ejabberd-login-guanwang.php开始我写的很简单,程序逻辑就是进入后立马写日志到文件,通过日志文件是否有数据验证是否被ejabberd调用
程序源码如下
#!/usr/bin/php/bin/php
<?php
@rem 这部分代码只是做测试,验证是否php被调用。将日志写到指定文件里-begin
function writeFile($filename, $content)
{
if($filename)
{
$fp=@fopen($filename, "w");
if($fp)
{
fwrite($fp, $content);
fclose($fp);
}
return true;
}
else
return false;
}

writeFile("/tmp/extauth.log", "my birth day....");
@rem 这部分代码只是做测试,验证已经调过来了。将日志写到指定文件里-end
?>
现在问题来了:我ejabberd重启后,用潘迪安登录校验,在到/tmp/extauth.log看,没有任何日志输出,但是我将该文件的头“#!/usr/bin/php/bin/php ”去掉后,在通过“/usr/bin/php/bin/php -f /tmp/ejabberd-login-guanwang.php”手工调用后,有日志产生,说明程序是没有问题的!

我怀疑问题有以下原因:
1).ejabberd本身就没有调用php。这个我再想办法,找到ejabberd本身服务器提供的日志来查下原因。目前日志还没有找到,后续会搞出ejabberd的日志!
2).php环境搭建的原因
我虽然自己手工调度没有问题,但是会不会与ejabberd结合就有问题了呢?
我安装的php的路径是/usr/bin/php/bin/php;其中php是主目录,下面有bin、etc、include、lib、man,5个目录。bin下面包括pear、peardev、pecl 、phar 、phar.phar 、php 、 php-cgi  、php-config 、 phpize,bin目录下php是可执行文件。
ejabberd这里应该是通过php-cli模式来调用的(不依赖web服务器),而ejabberd-login-guanwang.php文件的头是#!/usr/bin/php/bin/php ,会不会是这个问题呢?
请大伙支招,谢谢!
搜索更多相关主题的帖子: 迪安 用户登录 php 
2013-05-18 14:22
ninggang
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:637
专家分:0
注 册:2006-11-1
收藏
得分:0 
顶下。

大家一起努力,共同打造未来!!
2013-05-19 11:52
快速回复:关于ejabberd调用php的问题(实现用户系统完美对接)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020608 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved