External program not working

Hi!

I'm installed ejabberd fro default ubuntu repository on my home machine and default host rus-help

I also try to connect to server via psi and it's work fine

Now I want to make external authorization via drupal so I downloaded file from this site and putted in my drupal dir, changed owner and permission

now it looks like

ls -FlaG /home/rus/workspace/fstep/sites/all/modules/drupal_auth.php
-rwxrwxrwx 1 ejabberd 8335 2009-02-10 15:00 /home/rus/workspace/fstep/sites/all/modules/drupal_auth.php*

and I also changed /usr/share/ejabberd/ejabberd.cfg

%
% SHARED OPTIONS
%

% Override all settings
override_global.
override_local.
override_acls.

% Ports and services
{listen, [

       % Client to server
       {5222, ejabberd_c2s, [
               starttls, {certfile, "/etc/ejabberd/ejabberd.pem"}
       ]},

       % Server to server
       {5269, ejabberd_s2s_in, [
       ]},

       % HTTP service
       {5280, ejabberd_http, [
               web_admin
       ]}

]}.

% Use STARTTLS+Dialback for S2S connections
{s2s_use_starttls, true}.
{s2s_certfile, "/etc/ejabberd/ejabberd.pem"}.

% If SRV lookup fails, then port 5269 is used to communicate with remote server
{outgoing_s2s_port, 5269}.

% Webadmin access
{acl, admins, {user, "fstep", "rus-help"}}.
{access, configure, [{allow, admins}]}.

% Host config
{hosts, ["rus-help"]}.

%
% HOST:  rus-help
%
{host_config, "rus-help", [
       {auth_method, external},
       {extauth_program, "/home/rus/workspace/fstep/sites/all/modules/drupal_auth.php"}
]}.

and restarted server

unfortunately after server start working it's still uses own auto metod and not loaded
drupal_auth.php

Please help me !

Some ideas to try

Your configuration looks to be good, maybe the problem is in other place.

I downloaded the php file from http://yo.jabber.ru/bugzilla/show_bug.cgi?id=385
I configured ejabberd similar to you.
I do not have Drupal installed, so I am not sure if the script works correctly, but there are a few tips you can try.

1. When ejabberd starts, check the files ejabberd.log and sasl.log. Maybe you see an error like this:

sh: /etc/ejabberd/drupal_auth.php: /usr/local/bin/php: bad interpreter: The file does not exist

In my Debian I have php in a different location:

$ which php
/usr/bin/php

so I have to change in drupal_auth.php the first line:

#!/usr/bin/php

2. When ejabberd starts and no error is shown in its log files, check if the script is running:

$ ps -C drupal_auth.php
  PID TTY          TIME CMD
23182 ?        00:00:00 drupal_auth.php

3. Then I tried to login with an account 'test123', but of course I couldn't login because I didn't configure MySQL.
I tried to login with an account that existed in 'internal', but ejabberd didn't allow me to login.
This means ejabberd in my case was using external.

4. I wanted to see some log files of the script, so I changed those lines to a place easy to remember:

        var $debugfile  = "/tmp/pipe-debug.log";  /* Debug output */
        var $logging    = true;                                       /* Do we log requests ? */
        var $logfile    = "/tmp/pipe-log.log" ;   /* Log file ... */

But I don't see any log files in /tmp.

Syndicate content