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.
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop











{ 13 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.
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
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
thanks a lot.
i run cron 00 11 30 08 4 php /path /script -args argumentName=”value”
it run.
thanks