ChatGPT解决这个技术问题 Extra ChatGPT

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 think it is quite relevant seeing as many projects are hosted on Cpanel, and one would need to know how to run cron jobs if need be
If cPanel isn't allowed on Server Fault or Stack Overflow, where should questions about it be?
quite ironic that this question was classed as 'off-topic' for StackOverflow but is the most active question i've ever had one here..... I hope it helped others :)
Thanx @Tatu Ulmanen It works for me!
You can get email notifications by removing this part ">/dev/null". Also be sure to add the desired email address as the notification email address in cPanel cronjob section.

J
Javascript Coder

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.


What does -q stands for?
@BhavikShah According to php.net/manual/en/features.commandline.options.php, -q is for Quiet mode, suppresses HTTP header output
@William Thanks. Got it.
t
tomb

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


I am using this now and it works but I do not get any email notification any ideas why not? php /home/username/public_html/cron/cron.php note I had to put the following line at the top of the PHP script #! /usr/bin/php -q
If u want cronjob send emails for u, u must use php mail(), i dont thinks cronjob have automatic mail system, unless u using shell scripting or php.
When I click on the "cronjobs" tab in cPanel, there are two boxes on the page - one for the command you wish to execute, and another for the e-mail address you want the output to be sent to. This is in cPanel 11.
What will be full command? I mean full command in one line with all options.
@SomyA please could you tell me the command for run java script file.
k
k102

>/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


may I ask how you do that? Doesn't cronTabs output to something anyway? I do >/dev/null 2>&1 at the ending as well...
@ThomasK if you make a task like this /path/to/file.php > /dev/null it's gonna be silent.
E
Emmanuel

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


A
Asi

This is the way:

/usr/bin/php -q /home/username/public_html/yourfilename.php >/dev/null

W
Wh1T3h4Ck5

This cron line worked for me on hostgator VPS using cpanel.

/usr/bin/php -q /home/username/public_html/scriptname.php

B
BenKennish

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

J
JH_

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.


S
Sajjad

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


A
Ali Akram

Suggested By Experts.

/usr/local/bin/php /home/username/public_html/path/to/cron/script

G
Greenonline

It is actually very simple,

php -q /home/username/public_html/cron/cron.php

A
Anjana Silva

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.


N
Nicoli

On a Hostgator CPANEL this worked for me:

php /home/here_your_user_name/public_html/cronJob.php

关注公众号,不定期副业成功案例分享
Follow WeChat

Success story sharing

Want to stay one step ahead of the latest teleworks?

Subscribe Now