2009-08-04 4 views
1

나는 시간당 (FB 액셀러레이터와 실시간 소셜 콘텐츠를 다루므로 1 시간에 1 번만 자르면된다.)크론 오류 메시지; 그게 내 스크립트 오류를 ​​일으키는거야?

1 시간마다 실행하려고하는 크론 작업이있다. 60 분 동안 지속되는 "run(), sleep (60), run() ..."을 포함합니까? 별도로 실행

2) 주파수는 그것이 현재 출력 :

...web/public/mysqltest.php: ?php: cannot open 
...web/public/mysqltest.php: require_once: not found 
...web/public/mysqltest.php: include_once: not found 
...web/public/mysqltest.php: include_once: not found 
...web/public/mysqltest.php: syntax error at line 5: `(' unexpected 

(나머지 경로)이있다.

어떻게 메시지 디버깅을 시작할 수 있습니까? 내 서버가 PHP 파일을 열 수 없다는 것이 이상하다. 브라우저에서 실행될 때 그것은 훌륭하게 작동합니다. 스크립트의 첫 번째 6 줄은 다음과 같습니다.

<?php 
require_once 'facebook.php'; 
include_once 'lib.php'; 
include_once 'config.php'; 
$facebook = new Facebook($api_key, $secret); 
get_db_conn(); 

내가 말할 수있는 한 가장 멋진 것은 없습니다.

포함/필수 파일이 실제로 같은 디렉토리에 있는지 확인할 수 있습니다. 특정 수준의 액세스 권한이 필요합니까? 모든 도움을 주시면 감사하겠습니다.

답변

2

1은 크론 스크립트 실행 시간에 대한 제한이 없습니다. 개인적으로, 나는 그것이 실행 된 후 45 분 이상 지속되는 cron PHP 스크립트를 가지고있다. 그것은 것이다는 PHP 스크립트 실행 시간 제한이 포함되어 있기 때문에이 경우에 당신이 php.ini 파일을 변경해야 할 수도 있습니다,주의하십시오.

2 당신은 당신의 PHP 스크립트의 시작

#!/usr/bin/php 

다음 놓아야합니다. 이렇게하면 일반적인 스크립트처럼 bash에서 실행이 가능해집니다.
이 작업을 수행하고 테스트 한 후 cron을 넣습니다.

2
  1. 나는 그것에 익숙하지 않습니다.

  2. cron 스크립트에서/path/to/php file.php를 호출해야합니다. 현재 bash를 대신 사용하려는 것 같습니다.
+0

또는 PHP의 첫 줄에 #!/usr/bin/php를 두어 이것을 다음과 같이 직접 실행하십시오. ./script.php –

0

스크립트에서 상대 경로가 아닌 절대 경로를 지정하면 cron이 해당 경로를 찾을 수 있습니다. 스크립트는 cron에서 실행할 때 디렉토리에서 실행되지 않습니다.

2

PHP 소스가 셸 명령 목록으로 실행되고있는 것처럼 보입니다. PHP 인터프리터를 통해 실행하고 있는지 확인하십시오.

+0

정확히! 명확한 대답. –

3

내부적으로 호출되기 때문에 서버에서 파싱되지 않습니다. 당신의 cron 작업의 시작은

는 예를 들어, 당신의 PHP 파서의 경로를 포함해야한다는

알면
/usr/bin/php /home/path_to/php_file/yourfile.php 

물론 PHP에 자신의 서버의 경로를 찾을 필요가

+1

또는 #!/usr/bin/php를 PHP 첫 줄에 놓고 ./script.php –

0

당신은주의해야합니다 환경 변수는 cron으로 정의되지 않습니다.세션에서

당신은

php my_php_file.php 

를 호출 할 수 있으며, PHP는 PATH 변수의 디렉토리에 있기 때문에 그것을 작동합니다.

cron 작업에서 전체 경로 이름을 사용하는 것이 항상 좋습니다.

필요한 모든 변수를 정의하는 스크립트를 실행할 수도 있습니다.

+0

과 같이 직접 실행하거나 PHP의 첫 줄에 #!/usr/bin/php를 입력하고 직접 이와 같이 실행 ./script.php –