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]

Reply via email to