
나는 램프가 있는 우분투 설정을 가지고 있고 매일 오전 2시에 PHP 페이지를 시작하기 위해 무엇을 입력할지 궁금합니다. 나는 아직도 crontab이 어떻게 작동하는지 연구 중이어서 어떤 것이 작동하는지 테스트할 수 없습니다.
그렇다면 이와 같은 것이 있다면 어떻게 매개변수가 있는 PHP 페이지에 넣을 수 있을까요?
30 18 * * * http://myip/mypage.php?action=do_something
그렇게 입력하시겠습니까, 아니면 절대 경로로 입력하시겠습니까? 이와 같이
30 18 * * * /var/www/mypage.php?action=do_something
답변1
확실히 방법 1을 사용하고 싶습니다. 그건
30 18 * * * wget -O - -q -t http://myip/mypage.php?action=do_something
이렇게 하면 일반적인 웹 경로를 통해 wget(파일 다운로드 프로그램)으로 파일을 가져올 수 있습니다. 이는 Apache가 요청을 처리할 때 PHP가 해당 스크립트를 해석하게 하고 사용자가 스크립트를 실행하게 됨을 의미합니다.
php-cli 애플리케이션을 호출하고 스크립트 경로를 인수로 전달하여 방법 2를 사용하여 이를 실행할 수도 있다고 확신하지만 대부분의 경우 실제 차이는 없습니다.
답변2
cron에 배치하는 명령은 PHP 파일이 실제로 어떻게 작성되는지에 따라 다릅니다. 파일이 웹 서버 아래의 스크립트인 경우 언급한 대로 wget이 제대로 작동합니다. 위의 명령에서 -O는 출력이 파일에 기록됨을 의미하고 -q는 조용하며 -t는 재시도 횟수를 제한한다는 의미입니다.
그러나 PHP 스크립트가 쉘 스크립트인 경우 wget은 쓸모가 없습니다. 이 경우 파일은 실행 가능해야 하며 cron 명령은 다음과 같습니다.
30 18 * * * /usr/bin/env php /path/to/script