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

Posted on in Categories , , , last updated May 19, 2015

I‘ve written a PHP script. I would like to run it as a cron job. I’m using CentOS server with Apache web server. How do I setup a PHP script as a cron job on a Linux or Unix-like systems?

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

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 unix os, 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
Sample outputs:

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

Save and close the file.

15 comment

  1. 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.

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

  3. i tried passing arguments to a php script in UNIX

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

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

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

  5. 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

  6. 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

  7. 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

Leave a Comment