CPanel을 사용하여 크론 작업에서 PHP 파일 실행


102

CPanel 내에서 cron 작업을 사용하여 PHP 스크립트를 실행하려고합니다-이것이 올바른 구문입니까?

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

크론이 완료되었다는 이메일 알림을받지 못합니다. PHP 파일에 대해 특정 작업을 수행해야합니까?


25
많은 프로젝트가 Cpanel에서 호스팅되고 있고 필요한 경우 cron 작업을 실행하는 방법을 알아야한다는 점에서 상당히 관련성이 있다고 생각합니다.
William

7
cPanel이 Server Fault 또는 Stack Overflow에서 허용되지 않는 경우 이에 대한 질문은 어디에 있어야합니까?
유황

8
이 질문이 StackOverflow의 '주제에서 벗어난'질문으로 분류되었지만 내가 여기에있는 질문 중 가장 활발한 질문이라는 것은 매우 아이러니합니다. .... 다른 사람들에게 도움이
되었기를

고맙습니다 @Tatu Ulmanen 그것은 나를 위해 작동합니다!
Tushar Rmesh Saindane

답변:


66

crontab 시스템에서 :

  • /usr/bin/phpPHP 바이너리 경로입니다 (: FreeBSD의 일부 시스템 전 다른 /usr/local/bin/php, 리눅스는 : /usr/bin/php)
  • /home/username/public_html/cron/cron.php PHP 스크립트 경로 여야합니다.
  • /dev/null cron 출력이어야합니다. 예 : /home/username/stdoutx.txt

따라서 cron 출력을 확인하여 cron을 모니터링 할 수 있습니다. /home/username/stdoutx.txt


1
나는 지금 이것을 사용하고 있으며 작동하지만 이메일 알림을받지 못하는 이유는 무엇입니까? php /home/username/public_html/cron/cron.php note PHP 스크립트 #! / usr / bin / php -q
Zabs 2011

cronjob이 u를 위해 이메일을 보내려면 php mail ()을 사용해야합니다. 쉘 스크립팅이나 PHP를 사용하지 않는 한 cronjob에 자동 메일 시스템이 있다고 생각하지 않습니다.
Somy

1
cPanel에서 "cronjobs"탭을 클릭하면 페이지에 두 개의 상자가 있습니다. 하나는 실행하려는 명령을위한 것이고 다른 하나는 출력을 보낼 이메일 주소를위한 것입니다. 이것은의 cPanel 11에
user3640967

2
완전한 명령은 무엇입니까? 모든 옵션이있는 한 줄의 전체 명령을 의미합니다.
Auj 2016

@SomyA Java 스크립트 파일 실행 명령을 알려주십시오.
Narender Reddy


29

>/dev/null cron이 메일을 보내는 것을 중지합니다.

실제로 내 마음에 php무언가를 cron에 출력하는 것보다 로깅에 신경을 쓰는 스크립트 자체 를 만드는 것이 좋습니다.


어떻게하는지 물어봐도 될까요? 어쨌든 cronTabs가 출력하지 않습니까? 내가 할 >/dev/null 2>&1뿐만 아니라 끝에서 ...
ThomasK

@ThomasK 이런 작업을하면 조용해질 것 /path/to/file.php > /dev/null입니다.
k102

19

이것이 가장 쉬운 방법입니다.

php -f /home/your_username/public_html/script.php

스크립트 출력을 파일에 기록하려면 다음을 명령 끝에 추가하십시오.

>> /home/your_username/logs/someFile.txt 2>&1


16

이게 방법이야:

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

11

이 cron 라인은 cpanel을 사용하는 hostgator VPS에서 저에게 효과적이었습니다.

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

10

CPanel에서 "cli"가 아닌 "cgi-fcgi"바이너리로 컴파일 되었기 때문에 / usr / bin / php를 사용하는 데 문제가있었습니다. / usr / local / bin / php를 사용해 보거나 어쨌든 경로의 첫 번째이므로 대신 'php'를 사용하십시오.

php /path/to/script.php

스크립트를 실행 파일로 실행하려면 + x perms를 제공하고 스크립트의 첫 번째 행으로 다음을 사용하십시오.

#!/usr/bin/env php

6

문제가 경로 및 PHP 바이너리에도 있기를 바랍니다. 이전 답변에 따라 경로를 수정했다면 cron 작업을 실행하는 동안 php 명령 대신 php-cli를 사용하십시오.

php_sapi_name()반환되지 않을 수 있습니다 cli. cgi-fcgi등 다른 것을 반환합니다 .

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

도움이 되길 바랍니다.


3

이것은 잘 작동하며 이메일도 보냅니다.

/ usr / bin / php /home/xxYourUserNamexx/public_html/xxYourFolderxx/xxcronfile.php

다음 두 명령도 잘 작동하지만 이메일을 보내지 않습니다.

/ usr / bin / php -f / home / 위와 동일

php -f / home / 위와 동일


2

전문가가 제안합니다.

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


0

도메인 별 다중 PHP 크론 작업 경우 다음과 같이하십시오.

/usr/local/bin/ea-php56 /home/username/domain_path/path/to/cron/script

위의 예에서 "ea-php56"을 사용하려는 도메인에 할당 된 PHP 버전으로 바꿉니다.

이것이 누군가를 돕기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.