CodeIgniter + Command Line + Cron + Cpanel

2019-01-18 21:28发布

问题:

SOLVED: Crap... why is it always you figure something out right AFTER you finally decided to ask for help!!

If anyone else is having this problem, try running from /usr/local/bin/php instead of /usr/bin/php to get codeigniter to pick up on the URI segments.

QUESTION

I have the latest installation of codeigniter and everything seems to be working fine locally. I recently put my files on my server and everything except my cron command is working.

When I try to call a controller through cron (as described here: http://codeigniter.com/user_guide/general/cli.html), I am not getting the controller. Instead, the output I get is simply my default controller (login page).

This worked fine locally and the index.php IS getting called because I'm getting emailed the output from the default page.

Someone asked a similar question here: CodeIgniter Cron Job on Shared Hosting? Responders suggested that it was a problem with Cpanel (which is what i'm now trying to use to set up the cron job), but talking to my hosting provider, they said the whole command is being run. Nevertheless, CI isn't grabbing the URI for the controller. I also checked to make sure the base_url is set correctly (which is proven by the file working fine through a URL call).

Any thoughts? I just can't seem to figure out why it's not grabbing the URI when in command line format: /usr/bin/php index.php controller_class method

回答1:

This was the answer:

Use /usr/local/bin/php instead of /usr/bin/php to get codeigniter to pick up on the URI segments.



回答2:

Here is solution first you need to find path from phpinfo document_root path

php5 /home/abc/public_html/index.php folder_name controller_name function_name

It's 100% working



回答3:

I'm glad you got it working Mike. I ran into similar problems and ended up using the CI Cron Job Bootstrapper on a recent project that was running on a cPanel host. I'm just posting this incase it helps someone else.



回答4:

For me this is what worked:

php54 -f /home/{cpanel_user}/public_html/index.php controller function