Ubuntu – Php script not executed by crontab

cronpermissionsPHPscripts

I have setup a cron to execute one of my php scripts. But the problem is the php script is not being executed at all not even partially.

Here is the cron I have set up

45 23 * * * /usr/bin/php -q /var/www/myscript.php

I have tried the following

  1. I removed the cron from normal user to root user still no results.
  2. I changed the permissions on the script using chmod +x /var/www/myscript.php
  3. I have used the command whereis php it gives the following

    php: /usr/bin/php /usr/share/man/man1/php.1.gz
    

Now, I don't know what else I can do. Please Help.

P.S. I can execute the script manully and it runs perfectly.

Best Answer

1. As man php tells us...

   --no-header
   -q             Quiet-mode. Suppress HTTP header output (CGI only).

   --file file
   -f file        Parse and execute file

-q doesn't do anything in php-cli mode. As others have pointed out, you need -f.

2. +x is not required.

Revert it with:

chmod -x /var/www/myscript.php

3. whereis will give you all locations. If you just want the binary, use which php.

$ which php
/usr/bin/php
Related Question