Search code examples
phplinuxapachecroncentos

Execute PHP script in cron job


In our centos6 server. I would like to execute a php script in cron job as apache user but unfortunately it does not work.

Here is the edition of crontab (crontab -uapache -e)

24 17 * * * php /opt/test.php

and here is the source code of "test.php" file which works fine with "apache" user as owner.

<?php exec( 'touch /opt/test/test.txt');?>

I try to replace php with full path of php (/usr/local/php/bin/php) but also it doesn't work.


Solution

  • Automated Tasks: Cron

    Cron is a time-based scheduling service in Linux / Unix-like computer operating systems. Cron job are used to schedule commands to be executed periodically. You can setup commands or scripts, which will repeatedly run at a set time. Cron is one of the most useful tool in Linux or UNIX like operating systems. The cron service (daemon) runs in the background and constantly checks the /etc/crontab file, /etc/cron./* directories. It also checks the /var/spool/cron/ directory.

    Configuring Cron Tasks

    In the following example, the crontab command shown below will activate the cron tasks automatically every ten minutes:

    */10 * * * * /usr/bin/php /opt/test.php
    

    In the above sample, the */10 * * * * represents when the task should happen. The first figure represents minutes – in this case, on every "ten" minute. The other figures represent, respectively, hour, day, month and day of the week.

    * is a wildcard, meaning "every time".

    Start with finding out your PHP binary by typing in command line:

    whereis php
    

    The output should be something like:

    php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz

    Specify correctly the full path in your command.

    Type the following command to enter cronjob:

    crontab -e
    

    To see what you got in crontab.

    EDIT 1:

    To exit from vim editor without saving just click:

    Shift+:
    

    And then type q!