Fred wrote: > At 16:59 27/01/2008 -0600, Darrick Hartman (lists) wrote: >> As Lonnie mentioned in an earlier email, php-cli is compiled. php-cgi is >> currently installed as /usr/bin/php. If you're building from the build >> environment, copy the file from sapi/cli/php to php-cli (put it on your >> key disk if you want for now). >> >> I confirmed (using your test.php) that it works as you would expect and >> differently than the php(-cgi) > > Unfortunately, the CLI version compiled by AstLinux is not the real CLI > version, because it preprends HTML even when called with the "-q switch on > the shebang line, which is a no-no since Asterisk will call the script > directly from the dialplan through AGI, and might be confused if it gets > anything besides authorized responses (0 or 1, I believe): > > ======== CentOS 5.1 ============== > [EMAIL PROTECTED] astlinux-trunk]# /usr/bin/php -v > PHP 5.1.6 (cli) (built: Sep 20 2007 10:16:10) > > [EMAIL PROTECTED] tmp]# cat test.php > #!/usr/bin/php -q > <?php > echo "SET CALLERID \"Derf <123>\"\n"; > ?> > > [EMAIL PROTECTED] tmp]# /tmp/test.php > SET CALLERID "Derf <123>" > > [EMAIL PROTECTED] astlinux-trunk]# cp build_i586/php-5.2.5/sapi/cli/php > /srv/www/lighttpd/php-cli > > ======== AstLinux trunk 1561 ======== > pbx tmp # wget http://192.168.0.3/php-cli > pbx tmp # chmod 755 php-cli > > pbx tmp # cat /tmp/test.php > #/tmp/php-cli -q > <?php > echo "SET CALLERID \"Derf <123>\"\n"; > ?> > > pbx tmp # ./test.php > X-Powered-By: PHP/5.2.5 > Content-type: text/html > > pbx tmp # /tmp/php-cli -q test.php > SET CALLERID "Derf <123>" > ======== /etc/asterisk/extensions.conf ==== > [inside] > exten => 9999,1,Verbose(Name=${CALLERID(name)} number=${CALLERID(num)}) > exten => 9999,n,AGI(/tmp/test.php) > exten => 9999,n,Verbose(Name=${CALLERID(name)} number=${CALLERID(num)}) > ======== Calling in ==== > pbx*CLI> > -- Executing [EMAIL PROTECTED]:1] Verbose("SIP/2000-081da3a0", > "Name=Fred > number=2000") in new stack > Name=Fred number=2000 > -- Executing [EMAIL PROTECTED]:2] AGI("SIP/2000-081da3a0", > "/tmp/test.php") > in new stack > -- Launched AGI Script /tmp/test.php > -- AGI Script /tmp/test.php completed, returning 0 > -- Executing [EMAIL PROTECTED]:3] Verbose("SIP/2000-081da3a0", > "Name=Derf > number=456") in new stack > Name=Derf number=456 > == Auto fallthrough, channel 'SIP/2000-081da3a0' status is 'UNKNOWN' > pbx*CLI> > =================================== > > In this particular example, it does work, but I've read in the > documentation that prepending HTML is asking for trouble. Since AGI uses > STDIN/STDOUT to make Asterisk communicate with external programs, the > communication is pretty basic. > > If you are the maintainer or php5.mk, maybe you can get some help in eg. > comp.lang.php about how to compile it so AstLinux provides really the same > CLI version as regular Linux distros. Sorry, I don't have the skills to > help you :-/
Fred, I tested for the behavior you describe in a chroot after building php in the build environment. The cli/php behaves the way you want/expect it to. Let me build a full image and see if the same behavior is seen. It is the "real" php/cli. It's possible that there's a file handler somewhere that's seeing that the file is a .php and using the cgi version even though you're explicitly calling the cli version in your script. What if you change the extension of test.php to test.bla instead? Darrick -- Darrick Hartman DJH Solutions, LLC http://www.djhsolutions.com ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Astlinux-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/astlinux-users Donations to support AstLinux are graciously accepted via PayPal to [EMAIL PROTECTED]
