Question

Cron runs but PHP doesn't

Posted October 17, 2014 4.7k views

Server: Ubuntu 12.04
Web Server: nginx
PHP5-cli is installed.

I’ve edited /etc/crontab and added a new entry that executes a PHP script.

The cron job seems to be running fine but the PHP file isn’t doing anything.

I’ve check the permissions on the PHP file and they are set to 755.

The PHP file basically writes data to a TXT file and send an email. if I execute the PHP directly in the terminal, everything works as expected.

However, via the crontab, it doesn’t.

Here is the contents of my crontab:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

17 * * * * root cd / && run-parts –report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.monthly )
*/5 * * * * root /usr/bin/php /usr/share/nginx/html/functions/cron-test.php > /dev/null 2>&1

I’ve set the cron to run every 5 mins so I can check it is working…

If I run “grep CRON /var/log/syslog” in the terminal, I can see entries related to the cron entry.

Any ideas?

1 comment
  • I am not a cron guru, but I do have several PHP scripts I run on cron. They look like this:

    */15 * * * *  php -f  /var/www/mywebsite/cron.php >/dev/null 2>&1
    

    If I needed to run that as root, I suppose I would just open crontab as my root-user and add that line.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
1 answer

Thanks sierra circle!

I ended up rebuilding the whole droplet again and this time cron jobs seem to work as expected.

Submit an Answer