Thanks, Brian.
The following php script works fine to start up the polipo web proxy cache program. /etc/polipo/standard.conf contains some standard config file settings. The command line parameters proxyPort, socksParentProxy, pidFile, and logFile are additional config settings passed to the polipo executable.
<?php
//
$exec_command = 'polipo -c /etc/polipo/standard.conf proxyPort=8123 socksParentProxy=localhost:9050 pidFile=/var/lib/polipo/9050.pid logFile=/var/log/polipo/9050.log ';
$exec_output = '';
$exec_result_string = @exec($exec_command, $exec_output, $exec_result_int);
$exec_output_lines = count($exec_output);
if (@openlog('', LOG_NDELAY | LOG_PID | LOG_PERROR, LOG_LOCAL0)) {
$log_datetime = date('Y-m-d H:i:s');
@syslog(LOG_INFO, "polipo started on port 8123 at " . $log_datetime);
@closelog();
}
?>
The following php script does not work. It hangs and has to be interrupted. If I run the same command from the shell as root it works fine. I have tried changing the foreground = yes to foreground = no and removing the & character at the end of the $exec_command but neither works.
<?php
//
$exec_command = '/usr/local/bin/stunnel /etc/stunnel/test.conf &';
$exec_output = '';
$exec_result_string = @exec($exec_command, $exec_output, $exec_result_int);
$exec_output_lines = count($exec_output);
if (@openlog('', LOG_NDELAY | LOG_PID | LOG_PERROR, LOG_LOCAL0)) {
$log_datetime = date('Y-m-d H:i:s');
@syslog(LOG_INFO, "stunnel started at " . $log_datetime);
@closelog();
}
?>
/etc/stunnel/test.conf is as follows:
setuid = apache
setgid = apache
pid = /var/lib/stunnel/test.pid
output = /var/log/stunnel/test.log
foreground = yes
syslog = yes
[stunnelTest]
accept = 7199
connect = 8123
client = no
transparent = no
On Mon, May 5, 2008 at 11:15 AM, Brian Hatch <bri@stunnel.org> wrote:
Around 2008-05-02 12:19 -0700, Wesley Kenzie implored:
> I am having problems launching stunnel from a php "exec" command. I would
> like to have it launch as a server daemon and then have the exec command
> return control to the php script. The best I have been able to do is launch
> it in foreground with a command like "/usr/local/bin/stunnel
> /etc/stunnel/test.conf &" but control never returns to the php script.
>
> I do not want to use inetd mode, and would prefer to specify command line
> arguments, but I see they are no longer available in version 4.
Can you show code that works for other excutables, but not stunnel,
plus your configuration file?
Stunnel will stop when it has no more input to send to the remote
end. It could be that stunnel is hanging because its input isn't
closed, so it assumes it's not 'done' yet.
--
Brian Hatch Deja moo (n)
Systems and - The feeling that you've
Security Engineer heard that bull before.
http://www.ifokr.org/bri/
Every message PGP signed
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQFIH06zVkMj8/ymYEsRAjNmAKCeECb09c13cV9rz3Yx1SMf4W49KQCcDWBb
+q2h5JnGr6jmfHuvG8F7q0U=
=OOxW
-----END PGP SIGNATURE-----