Scheduled.php fix when CLI PHP lacks mysqli support
As I previously discovered (http://forum.sendy.co/discussion/1168/mysqli-requirement-for-scheduled-script), my provider's PHP installation appears to lack mysqli support in the command line version of PHP, though it works fine in the web version. Some other users have run into similar problems.
I came up with a simple workaround that fixed it for me; posting here in case it's of use to others. Essentially, it's just a new script, scheduled-cli.php, which invokes the original scheduled.php script via the web using curl. The cron entry is then modified to call scheduled-cli.php instead of scheduled.php.
Here's my scheduled-cli.php:
<?php ini_set('display_errors', 1);?> <?php include('includes/config.php'); $url = APP_PATH."/scheduled.php"; $c = curl_init($url); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); $page = curl_exec($c); curl_close($c); ?>
Ben, are there any gotchas I should watch out for using this approach?
Thanks,
Eddy
This discussion has been closed.
Comments
Hey Eddy,
Doesn't look like this would be a problem. But I thought of another alternative which may work (since your host's command line version of PHP does not have mysqli), which is by using a curl command instead of php:
curl -L -s http://your_sendy_installation_url/scheduled.php > /dev/null 2>&1
If this works, you don't have to use an additional script like what you've done as a workaround.
Thanks.
Ben
Hi Ben,
That's a much neater solution - thanks! (I prefer not having to tweak the default install if at all possible.)
Just tried it out and it works perfectly.
Cheers,
Eddy