Cron runs but PHP doesn't

October 17, 2014 2.2k 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:


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.

1 Answer

Thanks sierra circle!

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

Have another answer? Share your knowledge.