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/phpIf 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.
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- My 10 UNIX Command Line Mistakes
- Linux: 20 Iptables Examples For New SysAdmins

- 25 PHP Security Best Practices For Sys Admins
- The Novice Guide To Buying A Linux Laptop
- 10 Greatest Open Source Software Of 2009
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
Facebook it - Tweet it - Print it -



{ 10 comments… read them below or add one }
Thanks Pal,
Its teach me more on setting the crontab on different server :)
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.
Swapneel is correct. A cronjob runs off of the following format for schedules.
minute hour day month dayofweek command
@Travid and Swapneel
Thanks for the heads-up!
Thanks. It was really helpful for me.
Big big big big thanks!!!
i tried passing arguments to a php script in UNIX
For example: 45 10 * * * /path/to/myphpscript.php -args filename=”hello.txt”
is there a way to pass arguments to a php script in unix
For example: 45 10 * * * /path/to/myphpscript.php -filename=”hello.txt”
I like this for running daily cron handling thanks :)
Great, thanks. Been do lazy to read up on this for a while, but this page makes it simple.