PHP 4.0 Bug #7503 Updated: scripts run from CGI output "#!/usr/local/bin/php -q" line

From: Date: Tue, 21 Nov 2000 16:44:27 +0000
Subject: PHP 4.0 Bug #7503 Updated: scripts run from CGI output "#!/usr/local/bin/php -q" line
Groups: php.dev 
Request: Send a blank email to php-dev+get-38836@lists.php.net to get a copy of this message
ID: 7503 Updated by: jason Reported By: colin@easydns.com Status: Open Bug Type: Performance problem Assigned To: Comments: I think it would be good for you to try CVS, but you might not see a difference. I have been having problems reproducing this bug, it seems to work fine for me on 4.0.3pl1 as well as CVS. Here is better gdb instructions: break 699 run /usr/local/bin/test.phx next next next send the output ... I just want to see what line number it jumps to next...it is supposed to proceed to line 701 where it will prune commented code. Previous Comments: --------------------------------------------------------------------------- [2000-11-21 10:13:53] colin@easydns.com Oopos, I posted the configure line for the apache version running on the same box. The standalone's config line is the same without the apxs: ./configure --with-mysql=/usr/local/mysql --enable-track-vars --disable-debug --disable-magic-quotes --enable-ftp --with-gettext --with-xml --with-dom --enable-wddx --with-curl --with-pgsql --with-zlib --enable-versioning --with-openssl --with-snmp --with-sablot --with-mcrypt As for the gdb suggestion: [cmv@vincent cmv]$ gdb /usr/local/bin/php GNU gdb 19991004 Copyright 1998 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux"... (gdb) break 699 Breakpoint 1 at 0x80619c4: file cgi_main.c, line 699. (gdb) run /usr/local/bin/test.phx Starting program: /usr/local/bin/php /usr/local/bin/test.phx Breakpoint 1, main (argc=2, argv=0xbffffac4) at cgi_main.c:699 699 } else if (file_handle.handle.fp && file_handle.handle.fp!=stdin) { (gdb) bt #0 main (argc=2, argv=0xbffffac4) at cgi_main.c:699 I'm no gdb expert, so if I'm doing this wrong, let me know. Jason, if you want me to email you my php binary, let me know (send me a direct email to the address above). I see that stas has no probs with the latest CVS, so I may just grab that. Would be nice to know why this broke with 4.0.3pl1 though .... - Colin --------------------------------------------------------------------------- [2000-11-21 08:48:09] stas@php.net #! works for me in latest CVS... --------------------------------------------------------------------------- [2000-11-20 17:46:22] jason@php.net colin>/path/to/php /path/to/test-file.php colin>also outputs the hash-bang line (but that's expected, colin>since it's outside colin>of <? ?> colin>tags and would get treated as HTML). Actually the way Unix treats shebangs is to tracnslate #!/bin/program to /bin/program script So php has code to prune '#'s' out of the statements. But the code just double checks its not stdin thats being parsed. Is the configure script you used to produce the standalone the same? "--with-apxs=/usr/local/apache/bin/apxs" caught my attention. Did you compile the standalone with symbols? If you did and feel like running it through a debugger gdb /path/to/php break 699 run /path/to/script/file.php see if that if statement evaluates as true... it is supposed to(But by your description it sounds like it isnt). You will notice the comment pruneing code lies in a true result of that condition. If you get stuck why dont you email me a copy of your php binary. About the kludgy solution, I know it was painful to put that in. Don't worry though it will be gone soon : ) -Jason --------------------------------------------------------------------------- [2000-11-20 17:38:15] jason@php.net Is the configure script you used to produce the standalone the same? "--with-apxs=/usr/local/apache/bin/apxs" caught my attention. Did you compile the standalone with symbols? If you did and feel like running it through a debugger gdb /path/to/php break 699 run /path/to/script/file.php see if that if statement evaluates as true... it is supposed to(But by your description it sounds like it isnt). You will notice the comment pruneing code lies in a true result of that condition. If you get stuck why dont you email me a copy of your php binary. About the kludgy solution, I know it was painful to put that in. Don't worry though it will be gone soon : ) -Jason --------------------------------------------------------------------------- [2000-11-20 17:17:42] colin@easydns.com My configure line is: ./configure --with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs --enable-track-vars --disable-debug --disable-magic-quotes --enable-ftp --with-gettext --with-xml --with-dom --enable-wddx --with-curl --with-pgsql --with-zlib --enable-versioning --with-openssl --with-snmp --with-sablot --with-mcrypt Running the standalone as: /path/to/php /path/to/test-file.php also outputs the hash-bang line (but that's expected, since it's outside of <? ?> tags and would get treated as HTML). Your grep suggestion works ... kludgy, but it works. I just think there must be something wrong in PHP since I used to run scripts through cron like this all the time without incident. - Colin --------------------------------------------------------------------------- The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online. Full Bug description available at: http://bugs.php.net/?id=7503

« previous php.dev (#38836) next »