Not having sh in the chroot was the problem. thanks. I using femail, with php-fpm which has to be configured in php-fpm.conf
the jail needs /etc/resolv.conf and /bin/sh and /bin/femail php/php-fpm left no log or error message that I could find as to what the problem was. I realize it is php/php-fpm who did not do proper error checking and generating a message, and not an OpenBSD problem. Is there any document, that gives hints about what should be done to construct a proper chroot'ed system, and how to track down problems? I could not find one. -----Original Message----- From: owner-m...@openbsd.org [mailto:owner-m...@openbsd.org] On Behalf Of Otto Moerbeek Sent: Friday, November 4, 2016 2:38 PM To: Peter Fraser <p...@thinkage.ca> Cc: 'misc@openbsd.org' <misc@openbsd.org> Subject: Re: php system using httpd and php-fpm On Fri, Nov 04, 2016 at 05:29:54PM +0000, Peter Fraser wrote: > I actually wanted to call php's mail function which I could not get to > work, I think I have tracked to problem down to exec not working the > details follow using a test web page datetest.php > > > > newweb:/var/www/htdocs/web # cat datetest.php cat datetest.php > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> > > <HTML> > <HEAD> > <title>Date Test</title> > </HEAD> > <p> > <?php > ini_set('display_errors', 'On'); > error_reporting(E_ALL | E_STRICT); > if(function_exists('exec')) { > echo "exec is enabled"; > } else { > echo "exec is disabled"; > } > echo '<br>Date Test<br>'; > exec('/bin/date',$output); > print_r($output); > echo '<br>End Date test'; > ?> > </p> > </HTML> > newweb:/var/www/htdocs/web # php-7.0 -f datetest.php > php-7.0 -f datetest.php > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> > > <HTML> > <HEAD> > <title>Date Test</title> > </HEAD> > <p> > exec is enabled<br>Date Test<br>Array ( > [0] => Fri Nov 4 13:16:35 EDT 2016 > ) > <br>End Date test</p> > </HTML> > newweb:/var/www/htdocs/web # # date has been copied under /var/www/bin > for testing # date has been copied under /var/www/bin > newweb:/var/www/htdocs/web # ls -l /var/www/bin ls -l /var/www/bin > total 4216 > ---------- 1 root bin 249392 Jul 26 14:48 bgpctl > -rwxr-xr-x 1 root daemon 119216 Nov 3 13:18 cat -r-xr-xr-x 1 root > daemon 140112 Nov 4 12:52 date > -rwxr-xr-x 1 root bin 271856 Jul 25 20:37 femail > -rwxr-xr-x 1 root daemon 470096 Nov 3 12:49 ksh > -rwxr-xr-x 1 root daemon 9816 Nov 3 12:51 logger > -rwxrwxrwx 1 root daemon 27 Nov 3 15:56 mailtest > -rwxr-xr-x 1 root bin 204240 Jul 26 14:48 ping > ---------- 1 root bin 207920 Jul 26 14:48 ping6 > ---------- 2 root bin 179760 Jul 26 14:48 traceroute > ---------- 2 root bin 179760 Jul 26 14:48 traceroute6 > newweb:/var/www/htdocs/web # chroot -u www /var/www /bin/date chroot > -u www /var/www /bin/date Fri Nov 4 17:18:34 GMT 2016 > > I believe this shows that the php web page is correct and that 'date' > does exist in the chroot, > > but when I invoke web page from a browser I get. > > exec is enabled > Date Test > Array ( ) > End Date test > > What am I doing wrong. For exec to work you also need /bin/sh -Otto