미채택 완료

crntab으로 php파일 실행이 안되는 문제

고갱님이 CRONTAB으로 작동되는 방법(직접 요구한건 아니지만 정기적 작업을 위해 CRONTAB 필요)을 원하는데요.

그런데 ROOT 권한은 끝내 못준답니다. ㅠ_ㅠ

 

CRONTAB에

*/1 * * * * /PHP_설치된_경로/php -q /PHP_파일이_있는_경로/save.php

이렇게 등록해 달라했고 했다는데 반응이 없습니다.


*/1 * * * * /PHP_설치된_경로/php /PHP_파일이_있는_경로/save.php
이렇게도 해 달라 했는데 역시 반응이 없답니다.

 

2번째로 등록후 CRONTAB 재시작 해 달라 했는데 했는데도 반응이 없답니다.

 

그런데 SSH로 접속하여 

/PHP_설치된_경로/php -q /PHP_파일이_있는_경로/save.php

/PHP_설치된_경로/php /PHP_파일이_있는_경로/save.php

둘다 실행하면 파일은 정상 작동 잘 됩니다.

 

 

뭐가 문제일까요?

제 생각에는 고갱님이 잘 등록 안한게 아닐까 싶은데 권한을 안주면서 안된다고만 하니까 답답하네요.

 

 

다음부터는 ROOT권한이 필요한데 ROOT 권한을 부여하지 않으면 작업을 진행하지 않으며 을은 갑에게 지급받은 착수금을 반환하지 않는다.

라고 명시해야 겠네요.

답변 3개 / 댓글 2개

cli의 php.ini 경로가 다를수 있습니다

-c php.ini경로

이걸 옵션으로 줘보세요

/var/log/cron 로그를 확인하여 제대로 크론잡이 실행하고 있는지 확인하시구요.

로그가 있는데도 제대로 실행되지 않는다면,

 

코드 제일 상단에 아래와 같이 넣어주세요.

$document_dir = __DIR__;

chdir($document_dir);

 

document_root 가 제대로 설정되지 않아서 발생되는 문제일수 있습니다.

(테스트를 해보시걸 보니 이 문제는 아닐수도 있음. 저의 경우에는 위 코드를 추가하고 별다른 문제가 없었습니다.)

 

 

답변에 대한 댓글 1개

로그를 못봅니다.
ROOT 권한을 주지 않아서요...

글쓰신 디렉토리 관련 코드는 추가했는데 결과를 봐야겠어요.

해당 save.php 파일의 상단에 제대로 경로가 설정되어있나요?

저 같은 경우 크론탭으로 db에 접속해서 쿼리를 조회하고 update 하는 부분이있는데.

save.php 파일의 상단에

include_once('/home/test/public_html/common.php');

이렇게 선언하니 db접속 및 그누보드의 함수들이 사용되더군요

만약

include_once(G5_PATH'/common.php');

이런형태로 save.php 파일의 처음부터 그누보드의 함수나 변수, 상수가 들어가면

인식하지 못하는 경우가 있긴했습니다.

답변에 대한 댓글 1개

제대로 했죠.
SSH로 접속해서 저대로 실행하면 PHP파일이 정상작동 했거든요.

답변을 작성하려면 로그인이 필요합니다.