Драсьте!
Пытаюсь взаимодействовать с ejabberd: с помощью php выполняю bash-скрипт, в котором учавствует sudo.
Есть скрипт jab.sh:
#!/bin/bash
echo "id by bash: `id`"
echo "id by sudo: `sudo id`"
sudo /opt/ejabberd-2.1.8/bin/ejabberdctl statusЕсть так же php-скрипт jab.php:
<?php
$output = shell_exec('id');
echo "<pre>id by php: $output</pre>";
$output = shell_exec('./jab.sh');
echo "<pre>$output</pre>";
?>
При выполнение из консоли:
[root@zeus httpd]# sudo -u apache -g apache ./jab.sh
id by bash: uid=77(apache) gid=77(apache) groups=77(apache)
id by sudo: uid=0(root) gid=0(root) groups=0(root),512(Domain Admins)
The node ejabberd@localhost is started with status: started
ejabberd 2.1.7 is running in that node
[root@zeus httpd]# sudo -u apache -g apache php ./jab.php
<pre>id by php: uid=77(apache) gid=77(apache) groups=77(apache)
</pre><pre>id by bash: uid=77(apache) gid=77(apache) groups=77(apache)
id by sudo: uid=0(root) gid=0(root) groups=0(root),512(Domain Admins)
The node ejabberd@localhost is started with status: started
ejabberd 2.1.7 is running in that node
</pre>[root@zeus httpd]#
А когда открываю в браузере jab.php вижу следующее:
id by php: uid=77(apache) gid=77(apache) groups=77(apache)
id by bash: uid=77(apache) gid=77(apache) groups=77(apache)
id by sudo: uid=0(root) gid=0(root) groups=0(root),512(Domain Admins)
Failed RPC connection to the node ejabberd@localhost: nodedown
Commands to start an ejabberd node:
start Start an ejabberd node in server mode
debug Attach an interactive Erlang shell to a running ejabberd node
live Start an ejabberd node in live (interactive) mode
Почему из консоли скрипты выполняются нормально, а когда они вызываются httpd нет?