How to set up cron job for osTicket? What cron job setting shall I use?
Question:
I installed osTicket on my server, and I want to set up a cron job to trigger osTicket’s cron job script. What should I do to set up the cron job?
Answer:
Our webcron service is best for triggering osTicket’s cron job script. Just follow below simple steps to configure cron job for your osTicket:
-
Find rcron.php in “scripts” folder and change:
1) line 24 from
'url'=>'http://yourdomain.com/support/api/tasks/cron',
to
'url'=>'{your osticket installed location}/api/tasks/cron',
NOTE: Don’t change “/api/tasks/cron”!
2) line 25 from
'key'=>'API KEY HERE'
to
'key'=>'your generated API key'
NOTE: Please use your web server’s IP (on which your osticket was installed) to generate the API key. Check below:
-
Rename the filename from rcron.php to a secret name (for example 123rcron.php). Or you can upload it to a secret location on your web server later without changing the filename.
-
Upload 123rcron.php to your web server (to any location that can be accessed via HTTP). For example, http://www.example.com/123rcron.php.
- Open your
, click on “Create New Cron Job” button.
- In field “URL to call”, enter http://www.example.com/rcron.php (replace www.example.com with your install location). Choose an appropriate cron job execution frequancy (for osTicket, we recommend to have the cron job run “every 5 minutes”). Checkout below screenshot:
- If necessary, finish the other optional settings.
- Click “Create Cron Job” button. You’re done! EasyCron will trigger your osTicket’s cron job script dutifully according to your time setting.
- If you haven’t registered your EasyCron account yet, click on the “add a password” link on the top to add an email and password to your account.
i have a problem with cron not working i get the following: — Parse error: syntax error, unexpected T_FUNCTION in /home/thedust2/public_html/help/include/class.ticket.php on line 1923 #351
osTicket member
My php version is 5.3.27
Does cron see the same version? Because you will need 5.3+ for that code to run. (Uses anonymous closure syntax http://www.php.net/manual/en/functions.anonymous.php).
You will have to check that your php cli executable has a greater version than 5.3, this is different to the apache mod_php or fcgi module.. ie, open a terminal and enter the command:
php -v
It should print out the version:
PHP 5.4.9-4ubuntu2.4 (cli) (built: Dec 12 2013 04:29:20)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans
Notice the (cli) in there.. Yours will probably not match mine exactly, but the first bit is the important bit: PHP 5.??
below is the terminal information
PHP 5.3.27 (cli) (built: Sep 5 2013 11:29:45)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
with the ionCube PHP Loader v4.4.1, Copyright (c) 2002-2013, by ionCube Ltd.
osTicket member
@dustinco – Do which php
and make sure the resulting executable is the same as what is on crontab entry.
do you mean.. type in which php via terminal and verify the php location?
/usr/local/bin/php
if so than it is what im using.
if not please explain a little more.. Im new at this but know a few things.
This is my crontab entry:
*/5 8-18 * * 1-5 nobody /usr/bin/nice -n 19 /usr/bin/php /var/www/support/api/cron.php
So, yours should be similar, but using /usr/local/bin/php right?
Is there any chance you could upgrade php?
Or, perhaps it is just that function definition, this might fix it:
// Don't enforce form validation for email
// old style code for <5.3
// Ultimately, only offer validation errors for web for
// non-internal fields. For email, no validation can be
// performed. For other origins, validate as usual
$field_filter = create_function($f,"
switch (strtolower($origin)) {
case 'email':
return false;
case 'web':
return !$f->get('private');
default:
return true;
}
");
Unsure though if the vars will be in scope or not.. haven’t tested, can you?
upgrade to 5.4.17? I will do that now and I will report back.
my crontab is
*/5 * * * * /usr/local/bin/php /home/thedust2/public_html/help/api/cron.php
@dustinco – From the looks of that path you are on Hostgator? I am struggling to get osticket 1.8 working right now.
Here is the error being emailed to my
Parse error: syntax error, unexpected T_FUNCTION in/home3/btwynne/public_html/leadcapturepagebosshelp.com/include/class.ticket.php on line 1923
Help is much appreciated.
ok, did you sort this issue out?
ok, thanks.
Here was my fix using Hostgator and getting the same error. The problem was the PHP on the cron was not the same as the PHP on the server. Here is the solution in my case:
For those of you that use Hostgator and are trying to use osticket 1.8 here is the scoop, well two scoops.
- In your htaccess file in your root you need to add the following code and not everyone is on home3 so look on the left hand side of your cpanel main page.
Attaching an image of the code since it is not allowing the code here.
- Setup this for a cron job:
*/5 * * * *
/opt/php53/bin/php /home3/username/public_html/leadcapturepagebosshelp.com/api/cron.php
In this case leadcapturepagebosshelp.com is an add-on domain. If you just have one primary domain there would be nothing to place here, unless you were installing osticket on a subdomain.
No description provided.