> 백엔드 개발 > PHP 문제 > crontab이 PHP를 실행하지 않으면 어떻게 해야 합니까?

crontab이 PHP를 실행하지 않으면 어떻게 해야 합니까?

藏色散人
풀어 주다: 2023-03-03 11:32:01
원래의
2851명이 탐색했습니다.

php를 실행하지 않는 crontab에 대한 해결 방법: 1. php 프로그램에 로그를 작성합니다. 2. crontab에서 실행 결과를 파일로 출력합니다. 3. crontab을 사용하여 php를 실행합니다. 4. php 코드 경로에 절대값을 사용합니다.

crontab이 PHP를 실행하지 않으면 어떻게 해야 합니까?

권장: "PHP 튜토리얼"

crontab이 PHP를 실행할 수 없는 문제에 대한 솔루션

crontab을 사용하여 PHP 프로그램을 실행할 때 모든 사람은 자신만의 디버깅 방법을 가지고 있습니다. crontab이 php 프로그램을 실행하지 못하는 문제를 어떻게 해결했는지 살펴보겠습니다.

1. php파일에 실행권한이 있나요?

코드는 다음과 같습니다.

[root@linux cron]# ls -al |grep del
 -rwxr-xr-x  1 zwh  ftpgroup  494 10-20 16:42 del_redis.php
로그인 후 복사

X가 없으면 실행권한이 없다는 뜻이며 당연히 실행이 불가능합니다. 로그인한 사용자가 속한 그룹에 권한이 있는지 여부를 모르는 경우 모든 그룹에 권한을 추가하면 됩니다. 방법은 다음과 같습니다.

코드는 다음과 같습니다.

[root@linux cron]# chmod +x ./del_redis.php
로그인 후 복사

2. 실행 권한이 있지만 여전히 실행이 되지 않는 경우

해결 방법은 다음과 같습니다.

1.php 프로그램에 로그를 작성합니다. 예를 들어 error_log() 함수), 이것도 crontab이 정기적으로 실행되기 때문에 필요합니다. 로그가 없으면 프로그램 실행 결과를 어떻게 알 수 있습니까? 이렇게 하면 로그를 통해 crontab의 실행 상태를 확인할 수 있습니다.

2. 실행 결과를 crontab의 파일로 직접 출력할 수도 있습니다. 그런 다음 이 파일의 실행 상태를 확인하십시오. 예를 들면

코드는 다음과 같습니다.

*/10 * * * * /usr/local/php/bin/php /var/www/cron/del_redis.php >> /home/zhangy/cron.txt
로그인 후 복사

3. crontab을 사용하여 php를 실행하면 apache나 nginx를 사용하지 않으므로 $_SERVER, $_ENV 등의 변수는 전혀 사용할 수 없습니다. 따라서 PHP 코드에 그러한 변수가 있는지 확인하고 그렇다면 제거하십시오.

4. php의 상대 경로 문제

잘못된 사고방식 때문에 이 문제도 무시하기 쉽습니다.

코드는 다음과 같습니다.

include_once'./mysql.php';
로그인 후 복사

php 코드에서 상대 경로를 사용하는 경우 해당 디렉토리에 들어가서 /usr/local/php/bin/php /var/www/cron/을 실행해야만 적용됩니다. level_rank.php. 이 문제를 적어도 두 번은 겪었지만, 다시 만나도 여전히 기억이 나지 않습니다.

해결책은 다음과 같습니다.

코드는 다음과 같습니다.

*/10 * * * * cd /var/www/cron && /usr/local/php/bin/php /var/www/cron/level_rank.php
로그인 후 복사

또는 PHP 코드에서 절대 경로를 사용하세요

위 내용은 crontab이 PHP를 실행하지 않으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿