>  기사  >  백엔드 개발  >  crontab에서 PHP를 실행할 수 없는 문제에 대한 해결책

crontab에서 PHP를 실행할 수 없는 문제에 대한 해결책

WBOY
WBOY원래의
2016-07-29 09:05:04907검색

이 글은 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. Apache 및 nginx를 사용하지 않고 crontab을 사용하여 php를 실행하므로 $_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 코드에서 절대 경로를 사용하세요

더 보기 PHP 관련 콘텐츠에 대해 관심 있는 독자는 이 사이트에서 "PHP 기본 구문 소개 튜토리얼" 및 "PHP 객체 지향 프로그래밍 소개 튜토리얼"이라는 특별 주제를 확인할 수 있습니다.

이 기사가 모든 사람에게 도움이 되기를 바랍니다. PHP 프로그래밍에서.

이상은 관련 내용을 포함하여 crontab이 PHP를 실행할 수 없는 문제에 대한 해결책을 소개하고 있으니 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.