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
>/dev/null 2>&1
at the ending as well...
/path/to/file.php > /dev/null
it's gonna be silent.
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
Success story sharing
-q
stands for?-q
is for Quiet mode, suppresses HTTP header output