I am trying to execute a php
file via cron every 2 minutes, but it's not working. My crontab is:
*/2 * * * * usr/bin/php /var/www/test/cron.php
What am I doing wrong?
I am trying to execute a php
file via cron every 2 minutes, but it's not working. My crontab is:
*/2 * * * * usr/bin/php /var/www/test/cron.php
What am I doing wrong?
Check the output of which php
and use the absolute path for php (in my case /usr/bin/php5
).
*/2 * * * * /usr/bin/php /var/www/test/cron.php
or just
*/2 * * * * php /var/www/test/cron.php
For clarification, the default $PATH
for cron
is
PATH=/usr/bin:/bin
You can check the $PATH
with a test entry (Source):
* * * * * env > /tmp/env.output
Thus, the file
/tmp/env.output
is created.
You'll have to remove the entry * * * * * env > /tmp/env.output
afterwards.
*/2 * * * * /usr/bin/php /var/www/test/cron.php
if your php interpreter can be found here /usr/bin/php
– A.B.
Apr 30 '15 at 05:40
My recommendation would be to put call the script using standard web path, so you don't mingle the users and permissions, e.g. instead of doing:
/usr/bin/php <script>
rather do:
/usr/bin/wget -q http://localhost/test/cron.php
Then you need to make sure the script can be called just from localhost (f.e. using Apache2 access policy).
This way the cron script will be always run under the same user as the website which is a good policy to have in place.
/
for the path:/usr/bin/php
– muru Apr 29 '15 at 12:39/2 * * * /usr/bin/php -q /var/www/test/cron.php both of them not working. – Mahesh Gareja Apr 30 '15 at 05:14