Linux / UNIX Setup and Run PHP Script As A Cron Job

by on July 11, 2007 · 15 comments· LAST UPDATED June 4, 2009

in , ,

I've nicely written PHP script that I'd like to run as a cron job. I'm using CentOS 4.5 as server with Apache web server. How do I setup a PHP script as a cron job?

You need to setup execute permission on a php script. You need to use chmod command to change file access permissions. Use chmod command as follows:

chmod +x scriptname.php

Also make sure you add following line to top of php script (first line should be #!/usr/bin/php):

#!/usr/bin/php

If you are using FreeBSD, use:

#!/usr/local/bin/php

#!/usr/bin/php is called as a shebang (pound bang). It execute php script using the interpreter /usr/bin/php.

Save and close the file.

Setup and run php script as a cron job

Now add cron job by typing following command:
$ crontab -e
Output:

# run everday at 10:45
45 10 * * *     /path/to/myphpscript.php

Save and close the file.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 15 comments… read them below or add one }

1 MDZakri July 26, 2007 at 5:30 am

Thanks Pal,

Its teach me more on setting the crontab on different server :)

Reply

2 Swapneel July 31, 2007 at 9:06 pm

My apologies for nitpicking but shouldn’t the cron job be,

45 10 * * * /path/to/myphpscript.php

for the Cron to run at 10:45 as the first field from the left starts with Minute..Hour and so on.

Reply

3 Travis June 4, 2009 at 6:51 pm

Swapneel is correct. A cronjob runs off of the following format for schedules.
minute hour day month dayofweek command

Reply

4 nixCraft June 4, 2009 at 8:41 pm

@Travid and Swapneel

Thanks for the heads-up!

Reply

5 sricha October 23, 2009 at 5:33 pm

Thanks. It was really helpful for me.

Reply

6 azaazaaza February 8, 2010 at 12:00 am

Big big big big thanks!!!

Reply

7 smerez23 April 3, 2010 at 9:56 pm

i tried passing arguments to a php script in UNIX

For example: 45 10 * * * /path/to/myphpscript.php -args filename=”hello.txt”

Reply

8 smerez23 April 3, 2010 at 9:57 pm

is there a way to pass arguments to a php script in unix

For example: 45 10 * * * /path/to/myphpscript.php -filename=”hello.txt”

Reply

9 Rupesh February 15, 2011 at 12:31 pm

I like this for running daily cron handling thanks :)

Reply

10 TonyRiver July 9, 2011 at 1:40 am

Great, thanks. Been do lazy to read up on this for a while, but this page makes it simple.

Reply

11 chamil May 31, 2012 at 10:21 am

I run as a ./email_test.php

before I set as a cron job I run on a terminal,but then I had following error

“/usr/bin/php^M: bad interpreter: No such file or directory centos PHP

Reply

12 dimti July 2, 2012 at 11:25 am

Search your php interpreter with help this command:
locate bin/php
if you need update location database, use:
updatedb
or (if it FreeBSD)
/usr/libexec/locate.updatedb

Reply

13 Damodar August 24, 2012 at 7:53 am

thanks a lot.

i run cron 00 11 30 08 4 php /path /script -args argumentName=”value”

it run.

thanks

Reply

14 Hendrik January 11, 2013 at 10:28 am

Thanks, great help

Reply

15 Dr. H K Sahjwani April 4, 2014 at 5:53 am

I have a website http://www.noidasindhis.com from which I send emails to the registered Sindhis.
My program to send emails is in PHP and runs fine.
The site has been taken from dollar2host under Linux environment. I wish to send my mails at specified intervals using cron job but do not know the Linux command to do so.
Can any one help me?
Sahjwani

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: