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.