programing

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

newsource 2023. 1. 10. 21:13

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

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

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

cron이 완료되었음을 알리는 이메일 알림이 수신되지 않았습니다.PHP 파일로 특별한 작업을 수행해야 합니까?

이 명령어를 사용하여 cron 작업을 활성화했습니다.

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

정상적으로 동작하고 있습니다.

crontab 시스템의 경우:

  • /usr/bin/phpis php binary path (일부 시스템에서는 다릅니다: freebsd)./usr/local/bin/php, Linux:/usr/bin/php)
  • /home/username/public_html/cron/cron.phpphp 스크립트 경로여야 합니다.
  • /dev/nullcron output이어야 합니다.예:/home/username/stdoutx.txt

따라서 cron 출력을 표시함으로써 cron을 감시할 수 있습니다./home/username/stdoutx.txt

>/dev/nullcron이 메일 전송을 중지합니다.

사실 제가 보기엔 더 좋은 건php스크립트는 단순히 cron에 출력하는 것이 아니라 로깅을 고려하도록 자체 스크립팅합니다.

가장 쉬운 방법은 다음과 같습니다.

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

또한 스크립트 출력을 파일에 로깅하려면 명령어 끝에 다음 명령을 추가합니다.

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

방법은 다음과 같습니다.

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

이 cron 행은 cpanel을 사용하는 hostgator VPS에서 동작했습니다.

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

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

php /path/to/script.php

스크립트를 실행 파일로 실행하려면 +x perm을 지정하고 스크립트의 첫 번째 행으로 다음을 사용합니다.

#!/usr/bin/env php

path와 php binary에 대해서도 문제가 있으면 좋겠습니다.이전 응답에 따라 경로를 수정한 경우 cron 작업을 실행하는 동안 php 명령 대신 php-cli를 사용하십시오.

그럴지도 모르겠네요.php_sapi_name()돌아오지 않다cli다른 걸 돌려주는 거야cgi-fcgi기타.

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

도움이 되었으면 좋겠어요.

이 조작은 정상적으로 동작하며, E-메일도 송신합니다.

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

다음 2개의 명령어도 정상적으로 동작하지만 전자 메일을 송신하지 않습니다.

/usr/bin/php -f / home / 위와 같음

php -f / home / 위와 동일

전문가 제안.

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

사실 아주 간단해요

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

도메인 고유의 Multi PHP Cron 작업의 경우 다음과 같이 수행합니다.

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

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

이게 도움이 됐으면 좋겠네요.

Hostgator CPANEL에서는 다음과 같이 동작했습니다.

php /home/here_your_user_name/public_html/cronJob.php

언급URL : https://stackoverflow.com/questions/7332804/run-a-php-file-in-a-cron-job-using-cpanel