Re: [PHP] exec() and redirect output of program
This way just lets it do it's own thing, with no output, and PHP won't hang. It'll continue from the CLI after the HTTP session is over. ? exec('php test.php /dev/null 21 '); ? On 5/1/07, Brad Fuller [EMAIL PROTECTED] wrote: I found this on PHP.net: http://us.php.net/manual/en/function.exec.php Note: If you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends. This is what I want... I want to execute another PHP script from the CLI, pass it a parameter and let it go to town after the HTTP request closes. Can someone please illustrate how I can make this work? Thx, Brad -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- Daniel P. Brown [office] (570-) 587-7080 Ext. 272 [mobile] (570-) 766-8107
RE: [PHP] exec() and redirect output of program
Daniel Brown wrote: This way just lets it do it's own thing, with no output, and PHP won't hang. It'll continue from the CLI after the HTTP session is over. ? exec('php test.php /dev/null 21 '); ? On 5/1/07, Brad Fuller [EMAIL PROTECTED] wrote: I found this on PHP.net: http://us.php.net/manual/en/function.exec.php Note: If you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends. This is what I want... I want to execute another PHP script from the CLI, pass it a parameter and let it go to town after the HTTP request closes. Can someone please illustrate how I can make this work? Thx, Brad -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php It seems the script is calling itself even though I'm specifying a different script to run... test2.php ?php echo Hello, World!; ? test1.php ?php if( !isset($_POST['account_id']) || $_POST['account_id'] == ) { echo account_id is required.; exit; } // more stuff here... exec(/usr/bin/php -q /path/to/test2.php, $output); // should run test2.php echo pre; print_r($output); echo /pre; ? http://www.example.com/test1.php Expected Result: Array ( [0] = Hello, World! ) Actual Result: Array ( [0] = X-Powered-By: PHP/5.2.1 [1] = Content-type: text/html [2] = [3] = account_id is required. ) Can anyone explain this and possibly help me find a solution? Thx, Brad -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] exec() and redirect output of program
Brad Fuller wrote: Daniel Brown wrote: This way just lets it do it's own thing, with no output, and PHP won't hang. It'll continue from the CLI after the HTTP session is over. ? exec('php test.php /dev/null 21 '); ? On 5/1/07, Brad Fuller [EMAIL PROTECTED] wrote: I found this on PHP.net: http://us.php.net/manual/en/function.exec.php Note: If you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends. This is what I want... I want to execute another PHP script from the CLI, pass it a parameter and let it go to town after the HTTP request closes. Can someone please illustrate how I can make this work? Thx, Brad -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php It seems the script is calling itself even though I'm specifying a different script to run... test2.php ?php echo Hello, World!; ? test1.php ?php if( !isset($_POST['account_id']) || $_POST['account_id'] == ) { echo account_id is required.; exit; } // more stuff here... exec(/usr/bin/php -q /path/to/test2.php, $output); // should run test2.php echo pre; print_r($output); echo /pre; http://www.example.com/test1.php Expected Result: Array ( [0] = Hello, World! ) Actual Result: Array ( [0] = X-Powered-By: PHP/5.2.1 [1] = Content-type: text/html [2] = [3] = account_id is required. ) Can anyone explain this and possibly help me find a solution? Thx, Brad P.S. I am posting a form to the test1.php page with a valid account_id etc.; after re-reading the message I thought someone might think it's printing that result because nothing is posted. Update: I also found a file called error_log in the folder where test2.php resides, full of several of these lines: [01-May-2007 14:12:52] PHP Warning: Zend Optimizer does not support this version of PHP - please upgrade to the latest version of Zend Optimizer in Unknown on line 0 Could that have something to do with why the script is calling on itself instead of running the specified php script? I recently had the hosting company rebuild PHP, first they did --enable-suexec (to run PHP as CGI) and then later rebuilt again to --enable-pcntl and --enable-sigchild, as I thought I would be needing that functionality. Did that break the CLI? Please help, Thx. Brad -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] exec() and redirect output of program
On 5/1/07, Brad Fuller [EMAIL PROTECTED] wrote: Brad Fuller wrote: Daniel Brown wrote: This way just lets it do it's own thing, with no output, and PHP won't hang. It'll continue from the CLI after the HTTP session is over. ? exec('php test.php /dev/null 21 '); ? On 5/1/07, Brad Fuller [EMAIL PROTECTED] wrote: I found this on PHP.net: http://us.php.net/manual/en/function.exec.php Note: If you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends. This is what I want... I want to execute another PHP script from the CLI, pass it a parameter and let it go to town after the HTTP request closes. Can someone please illustrate how I can make this work? Thx, Brad -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php It seems the script is calling itself even though I'm specifying a different script to run... test2.php ?php echo Hello, World!; ? test1.php ?php if( !isset($_POST['account_id']) || $_POST['account_id'] == ) { echo account_id is required.; exit; } // more stuff here... exec(/usr/bin/php -q /path/to/test2.php, $output); // should run test2.php echo pre; print_r($output); echo /pre; http://www.example.com/test1.php Expected Result: Array ( [0] = Hello, World! ) Actual Result: Array ( [0] = X-Powered-By: PHP/5.2.1 [1] = Content-type: text/html [2] = [3] = account_id is required. ) Can anyone explain this and possibly help me find a solution? Thx, Brad P.S. I am posting a form to the test1.php page with a valid account_id etc.; after re-reading the message I thought someone might think it's printing that result because nothing is posted. Update: I also found a file called error_log in the folder where test2.php resides, full of several of these lines: [01-May-2007 14:12:52] PHP Warning: Zend Optimizer does not support this version of PHP - please upgrade to the latest version of Zend Optimizer in Unknown on line 0 Could that have something to do with why the script is calling on itself instead of running the specified php script? I recently had the hosting company rebuild PHP, first they did --enable-suexec (to run PHP as CGI) and then later rebuilt again to --enable-pcntl and --enable-sigchild, as I thought I would be needing that functionality. Did that break the CLI? Please help, Thx. Brad It seems that the php binary isn't the same version as the php library used in the webserver and so that there's a problem loading Zend. Are you sure that the PHP binary is also replaced when they reinstalled PHP? Tijnema -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] exec() and redirect output of program [SOLVED]
Tijnema ! wrote: On 5/1/07, Brad Fuller [EMAIL PROTECTED] wrote: Brad Fuller wrote: Daniel Brown wrote: This way just lets it do it's own thing, with no output, and PHP won't hang. It'll continue from the CLI after the HTTP session is over. ? exec('php test.php /dev/null 21 '); ? On 5/1/07, Brad Fuller [EMAIL PROTECTED] wrote: I found this on PHP.net: http://us.php.net/manual/en/function.exec.php Note: If you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends. This is what I want... I want to execute another PHP script from the CLI, pass it a parameter and let it go to town after the HTTP request closes. Can someone please illustrate how I can make this work? Thx, Brad -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php It seems the script is calling itself even though I'm specifying a different script to run... test2.php ?php echo Hello, World!; ? test1.php ?php if( !isset($_POST['account_id']) || $_POST['account_id'] == ) { echo account_id is required.; exit; } // more stuff here... exec(/usr/bin/php -q /path/to/test2.php, $output); // should run test2.php echo pre; print_r($output); echo /pre; http://www.example.com/test1.php Expected Result: Array ( [0] = Hello, World! ) Actual Result: Array ( [0] = X-Powered-By: PHP/5.2.1 [1] = Content-type: text/html [2] = [3] = account_id is required. ) Can anyone explain this and possibly help me find a solution? Thx, Brad P.S. I am posting a form to the test1.php page with a valid account_id etc.; after re-reading the message I thought someone might think it's printing that result because nothing is posted. Update: I also found a file called error_log in the folder where test2.php resides, full of several of these lines: [01-May-2007 14:12:52] PHP Warning: Zend Optimizer does not support this version of PHP - please upgrade to the latest version of Zend Optimizer in Unknown on line 0 Could that have something to do with why the script is calling on itself instead of running the specified php script? I recently had the hosting company rebuild PHP, first they did --enable-suexec (to run PHP as CGI) and then later rebuilt again to --enable-pcntl and --enable-sigchild, as I thought I would be needing that functionality. Did that break the CLI? Please help, Thx. Brad It seems that the php binary isn't the same version as the php library used in the webserver and so that there's a problem loading Zend. Are you sure that the PHP binary is also replaced when they reinstalled PHP? Tijnema Well, I finally got it working... I simply call php instead of using the full path /usr/bin/php. When I type which php from the shell I get /usr/local/bin/php so I'm not sure if the CLI binary maybe got moved when we switched to CGI mode or what, anyway I still get the Zend Optimizer Warning message when I run the script from the command line but for some reason it doesn't write to error_log when the script is called from the exec() function.. Maybe that's simply because the errors are being redirected to /dev/null... But anyway it works now :) I will call up our hosting company and see if we can do something about that Zend Optimizer warning. Thanks Daniel and Tijnema for the help. Cheers, Brad -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] exec() and redirect output of program [SOLVED]
Brad, The error_log file is written by httpd (Apache). It actually just sounds like they need to upgrade their Zend Optimizer, which is a cinch to do. On 5/1/07, Brad Fuller [EMAIL PROTECTED] wrote: Tijnema ! wrote: On 5/1/07, Brad Fuller [EMAIL PROTECTED] wrote: Brad Fuller wrote: Daniel Brown wrote: This way just lets it do it's own thing, with no output, and PHP won't hang. It'll continue from the CLI after the HTTP session is over. ? exec('php test.php /dev/null 21 '); ? On 5/1/07, Brad Fuller [EMAIL PROTECTED] wrote: I found this on PHP.net: http://us.php.net/manual/en/function.exec.php Note: If you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends. This is what I want... I want to execute another PHP script from the CLI, pass it a parameter and let it go to town after the HTTP request closes. Can someone please illustrate how I can make this work? Thx, Brad -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php It seems the script is calling itself even though I'm specifying a different script to run... test2.php ?php echo Hello, World!; ? test1.php ?php if( !isset($_POST['account_id']) || $_POST['account_id'] == ) { echo account_id is required.; exit; } // more stuff here... exec(/usr/bin/php -q /path/to/test2.php, $output); // should run test2.php echo pre; print_r($output); echo /pre; http://www.example.com/test1.php Expected Result: Array ( [0] = Hello, World! ) Actual Result: Array ( [0] = X-Powered-By: PHP/5.2.1 [1] = Content-type: text/html [2] = [3] = account_id is required. ) Can anyone explain this and possibly help me find a solution? Thx, Brad P.S. I am posting a form to the test1.php page with a valid account_id etc.; after re-reading the message I thought someone might think it's printing that result because nothing is posted. Update: I also found a file called error_log in the folder where test2.php resides, full of several of these lines: [01-May-2007 14:12:52] PHP Warning: Zend Optimizer does not support this version of PHP - please upgrade to the latest version of Zend Optimizer in Unknown on line 0 Could that have something to do with why the script is calling on itself instead of running the specified php script? I recently had the hosting company rebuild PHP, first they did --enable-suexec (to run PHP as CGI) and then later rebuilt again to --enable-pcntl and --enable-sigchild, as I thought I would be needing that functionality. Did that break the CLI? Please help, Thx. Brad It seems that the php binary isn't the same version as the php library used in the webserver and so that there's a problem loading Zend. Are you sure that the PHP binary is also replaced when they reinstalled PHP? Tijnema Well, I finally got it working... I simply call php instead of using the full path /usr/bin/php. When I type which php from the shell I get /usr/local/bin/php so I'm not sure if the CLI binary maybe got moved when we switched to CGI mode or what, anyway I still get the Zend Optimizer Warning message when I run the script from the command line but for some reason it doesn't write to error_log when the script is called from the exec() function.. Maybe that's simply because the errors are being redirected to /dev/null... But anyway it works now :) I will call up our hosting company and see if we can do something about that Zend Optimizer warning. Thanks Daniel and Tijnema for the help. Cheers, Brad -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- Daniel P. Brown [office] (570-) 587-7080 Ext. 272 [mobile] (570-) 766-8107