php를 실행하지 않는 crontab에 대한 해결 방법: 1. php 프로그램에 로그를 작성합니다. 2. crontab에서 실행 결과를 파일로 출력합니다. 3. crontab을 사용하여 php를 실행합니다. 4. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!