Run a PHP file in a cron job using CPanel
I 开发者_开发知识库am just trying to run a PHP script using a cron job within CPanel - is this the correct syntax:
/usr/bin/php -q /home/username/public_html/cron/cron.php >/dev/null
I am not getting any email notifications stating a cron has been completed, do I need to do anything specific with the PHP file?
I used this command to activate cron job for this.
/usr/bin/php -q /home/username/public_html/yourfilename.php
on godaddy server, and its working fine.
In crontab system :
/usr/bin/php
is php binary path (different in some systems ex: freebsd/usr/local/bin/php
, linux:/usr/bin/php
)/home/username/public_html/cron/cron.php
should be your php script path/dev/null
should be cron output , ex:/home/username/stdoutx.txt
So you can monitor your cron by viewing cron output /home/username/stdoutx.txt
>/dev/null
stops cron from sending mails.
actually to my mind it's better to make php
script itself to care about it's logging rather than just outputting something to cron
This is the easiest way:
php -f /home/your_username/public_html/script.php
And if you want to log the script output to a file, add this to the end of the command:
>> /home/your_username/logs/someFile.txt 2>&1
This is the way:
/usr/bin/php -q /home/username/public_html/yourfilename.php >/dev/null
This cron line worked for me on hostgator VPS using cpanel.
/usr/bin/php -q /home/username/public_html/scriptname.php
I've had problems using /usr/bin/php on CPanel as it is compiled as a "cgi-fcgi" binary and not "cli". Try using /usr/local/bin/php or, as it is first in the path anyway, just use 'php' instead:
php /path/to/script.php
If you want to run the script as an executable, give it +x perms and use the following as the first line of the script:
#!/usr/bin/env php
I hope your problem is with path & php binary as well. If you have fixed the path as per older answers, please use php-cli instead of php command while running cron job.
It may be possible php_sapi_name()
is not returning cli
. Its returning something else like cgi-fcgi
etc.
/usr/bin/php-cli -q /home/username/public_html/cron/cron.php >/dev/null
I hope it will help.
This works fine and also sends email:
/usr/bin/php /home/xxYourUserNamexx/public_html/xxYourFolderxx/xxcronfile.php
The following two commands also work fine but do not send email:
/usr/bin/php -f /home/Same As Above
php -f /home/Same As Above
Suggested By Experts.
/usr/local/bin/php /home/username/public_html/path/to/cron/script
It is actually very simple,
php -q /home/username/public_html/cron/cron.php
For domain specific Multi PHP Cron Job, do like this,
/usr/local/bin/ea-php56 /home/username/domain_path/path/to/cron/script
In the above example, replace “ea-php56” with the PHP version assigned to the domain you wish to use.
Hope this helps someone.
On a Hostgator CPANEL this worked for me:
php /home/here_your_user_name/public_html/cronJob.php
精彩评论