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 2>&1 &'); ?>
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
>>>
>>>
>>>
>>>
>>> test1.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 "";
>>> print_r($output);
>>> echo "";
>>>
>>>
>>>
>>> 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