2012-01-04 6 views
4

데이터베이스의 일부 필드를 업데이트하고 자동화 된 전자 메일을 보내기 위해 매일 예약 된 시간에 PHP 스크립트를 실행해야합니다. 내가 어떻게 할 수 있니?예약 된 시간에 PHP 스크립트를 실행하는 방법

예약 된 시간에 매일 스크립트를 실행하려면 XAMP 서버에 서비스를 작성할 수 있습니까? 데이터베이스를 업데이트하고 예정된 시간에 자동으로 이메일을 보내는 방법을 모르겠습니다. 어떤 아이디어 나 개념을 공유 할 수 있습니까?

Linux 서버에서 실행되는 PHP와 MySQL을 사용하고 있습니다.

답변

3

Cron 작업을 사용해야합니다. the Wikipedia page에서 예제를 확인하십시오.

크론 작업은 필요한 작업을 실행하는 php 실행 파일을 사용하여 스크립트를 호출해야합니다.

0

Linux에서는 .sh 파일을 만들 수 있으며 cron 작업이라고하는 특정 실행 시간을 지정할 수 있습니다. 그래서이 방법을 사용하여 쉘 파일을 만들어서 시간을 지정해야합니다. 리눅스 전문가에게 도움을 받아야합니다.

사용하여 다음 Cron Job

2

그냥, 필요한 작업을 수행하는 스크립트를 만들 당신이 그것을 잘 작동하는지 일단 브라우저에서 URL을 타격하여 테스트합니다. URL을 복사하고 로그 파일은 선택 사항입니다

php ABSOLUTE_URL_TO_SCRIPT >> logfile 

실행 원하는 시간 Cronjob

그런 다음 실행하려면이 명령을 예약 추가 할 수 있습니다. 그러나 그것은 당신에게 무슨 일이 일어 났는지 볼 기회를 줄 것입니다. 예를 들어

는 4 시간마다 스크립트를 실행하려면, 당신의 스크립트를 가정하는 것은 http://localhost/work/scripty.php에 있으며 경우 HTTP 루트의/var/www가,

터미널에서 "crontab을 -e"를 실행 것입니다 가정 다음 줄을 추가하십시오.

* */4 * * * php /var/www/work/scripty.php 

추가 정보가 필요하면 답을 업데이트 할 것입니다.

+0

를 보라. 왜 스크립트를 직접 실행할 수있을 때 Lynx를 사용합니까? –

+0

수정 해 주셔서 감사합니다. lynx는 고통스럽지 않습니다. 왜냐하면 PHP cli에서 스크립트를 실행하더라도 현재 스크립트를 명시 적으로 변경하지 않는 한 상대 PHP 포함은 엉망이되기 때문입니다.그의 스크립트가 수정없이 실행되기를 원합니다 :) – BlackDivine

+0

'include_path'가 적절히 설정되거나 절대 경로로 작업한다면 (현재 파일의 전체 경로는 항상'__FILE__'에 있습니다) 아무런 문제가 없습니다. lynx를 사용하는 것은 불필요한 자원 낭비입니다. 그것은 lynx, 웹 서버 및 PHP를 포함합니다. 스크립트를 직접 실행하면 PHP가 포함됩니다. –

0

php가 python과 같은 데몬을 가지고 있지 않기 때문에 PHP는 자체적으로 스크립트를 실행할 수 없습니다 !! 사용자 지정 스크립트를 호출하려면 OS 도움말을 사용해야합니다. 리눅스에서 예를 들어

: (example.sh) 수출 USE_PHP = PHP CD $ SCRIPT_ROOTDIR $ USE_PHP -f cronfile.php 서비스 = "checkdatabase" (서비스는 cronfile에 전달 된 매개 변수입니다). cron 작업을 설정하는

는 작업마다 사분 시간이 아닌 실행 것이 링크 http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/

관련 문제