>  기사  >  백엔드 개발  >  crontab이 php_php 팁을 실행할 수 없는 문제에 대한 솔루션

crontab이 php_php 팁을 실행할 수 없는 문제에 대한 솔루션

WBOY
WBOY원래의
2016-05-16 19:59:351128검색

이 글은 crontab이 php를 실행하지 못하는 문제에 대한 해결책을 분석한 것입니다. 참고하실 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

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

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

코드 복사 코드는 다음과 같습니다.
[root@linux cron]# ls -al |grep 델

-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 코드에서 절대 경로 를 사용하세요.

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

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

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