2011-09-06 5 views
7

CodeIgniter에 내장 된 사이트로 cron 작업을하려고합니다. CPanel을 사용하여 cron 작업을 설정하는 가장 좋은 방법은 누구나 제안 할 수있는 CPanel cron 기능에 대한 액세스 권한이 있습니까?codeigniter의 Cron 작업

나는 CodIgniter를 사용하기 때문에 cron 작업 내에서 컨트롤러를 호출하는 방법을 확신 할 수 없습니까?

예 : http://admin.com/sites/publish/

어떻게이 cron 작업을 사용하여 사이트 컨트롤러 내에서 기능을 게시 액세스 것인가? , here를 참조

답변

9

가장 좋은 방법은 CI의 명령 줄을 통해 컨트롤러를 실행할 수 있습니다

php /path/to/index.php controller >> /dev/null 

... 크론 작업의 명령 줄에서 호출하는 것입니다. 나를 위해

+0

이 당신이 생각 내 목적에 맞지 않을까요? php /home/username/public_html/index.php/sites/publish >>/dev/null – Zabs

+2

+1 나와는 달리 질문과 경로를 기반으로 추가 하겠지만'php/path /to/index.php sites publish >>/dev/null' (당신이 방금 내가 명확히 해줄 것이라고 생각한 것을 깨닫는다.) – simnom

+0

안녕하세요 - 그냥 시도하고 cron이 실행 중입니다. 그러나 나는 다음과 같은 Cron 데몬 메시지를받습니다. 나에게 보냈어. NB 컨트롤러는 사이트라고 및 기능은 크론에게 /빈/쉬라고 : /home/username/public_html/index.php/sites/publish : 아니 디렉토리 – Zabs

5

이 컬을 사용하는 일을하고 크론에 URL을 실행하는 쉬운 방법 : 당신이 URL을 확보해야하는 경우, 사용 후를 통해 데이터를 보낼 수

curl http://admin.com/sites/publish/ 

:

curl -X POST -d "apikey=yourapikey&another=variable" http://admin.com/sites/publish/ 

이렇게하면 PHP 매개 변수와 다른 구성으로 싸울 필요가 없습니다.

+0

을 업데이트했으며 전 세계에 cron 작업을 노출합니다. – Peacemoon

+0

htpasswd를 사용하여 보호 할 수 있습니다. curl 대신 php를 사용하는 것이 더 안전하다는 것을 알고 있지만, 어리석은 것들은이 방법이 더 쉽습니다. – juanrossi

2

나는이 같은 방법은, 다른 사람 같은 콘텐츠

<? $_SERVER["SCRIPT_URL"] = "/controllerName/MethodName"; // you can set url in routes if you want 
    $_SERVER["HTTP_HOST"] = "your_site_address.com"; // without http://www 
    require(dirname(__FILE__) . "/../public/index.php"); // path to index.php 
?> 

메이크업 컨트롤러 크론 각 cron 작업의 /cron/my_task.php에 대한 폴더 크론에게

/application 
/cron 
    my_task.php 
/public 

메이크업 스크립트를 만들 수 있지만 추가 할 __construct의 IP 유효성 검사

및 최종 실행

1

cronjob를 명령 줄 컨트롤러, 기능, params가 접근이 시도를 들면:

php index.php/controller/function/param1/param2/param3 etc 

또는

php index.php controller function param1 param2 param3 etc