2011-03-31 11 views
29

나는 bron 스크립트를 사용하여 실행하고 싶은 PHP 스크립트를 가지고 있으므로 Cron을 사용하여 매분마다 PHP 스크립트를 실행할 수 있습니다.PHP 스크립트를 실행하는 Bash 스크립트

필자는 내가 Cron 툴/타이머를 사용할 수있게 해주는 PHP 스크립트를 처리하기 위해 bash 스크립트를 만들어야한다는 것을 알고있다.

지금까지 내가 둘 필요가 들었다 :

#!/pathtoscript/testphp.php 

을 내 PHP 스크립트의 시작. 여기에서 무엇을해야할지 모르겠다 ...

어떤 조언이 필요합니까? 감사.

답변

58

당신이 PHP 명령 행 도구로 설치 한 경우 (단말기에 php을 발행 시도하고 작동하는지 참조), 당신의 오두막은 (#!) 라인은 다음과 같이해야합니다 :

#!/usr/bin/php 

에 있음을 넣어 스크립트의 맨 위에있는 스크립트를 실행하고 (chmod +x myscript.php) Cron 작업을 만들어 해당 스크립트를 실행하십시오 (bash 스크립트를 실행하는 것과 같은 방법).

php myscript.php을 사용할 수도 있습니다.

+20

더 호환성을 스크립트를 허용하는, 당신은 정말 사용 "** #!는/usr/빈/ENV PHP는 **"한다, PHP가 "/ usr/bin/php"에 항상 설치되지는 않을 수도 있기 때문입니다. 이해가 되니? – Rican7

0

PHP를 실행하는 것보다 bash 스크립트에서 아무 것도하지 않으면 cron에서/usr/bin/php /path/to/your/file.php와 같은 명령으로 PHP 스크립트를 간단하게 실행할 수 있습니다 .

/usr/bin/php path_to_your_php_file 

당신의 crontab에 :

7

당신은 단지 설정해야합니다.

#!/bin/bash 
/usr/bin/php /path/to/php/file.php 

당신은 PHP의 실행이 필요합니다 (일반적으로는/usr/bin에 있음) 및 실행되는 PHP 스크립트의 경로 :

+0

경로 앞에 PHP를 추가해야했지만 개념이 잘 작동했습니다. –

4

배쉬 스크립트는 다음과 같이해야한다. 이제이 bash 스크립트를 crontab에 넣기 만하면 끝났습니다! 원하는 스크립트 이름 (예 : runPHP.sh 등)과를주고 실행 권한이, 당신이 사용할 수있는

#!/bin/sh 

php /pathToScript/script.php 

저장 :

5

는이 같은 확신 무언가가 당신을 위해 무엇을 찾고 있습니다 해요 그러나 당신이 원하는.

편집 : 내가 잘못하지 않는다면 bash 스크립트를 사용하지 않고 "php ..."명령을 crontab에 추가 할 수도 있습니다.

행운을 빈다.

+0

대부분의 환경에서'php youscript.php'를 호출 할 수는 없지만 올바른 경로를 찾아야합니다. 예 : '/ usr/bin/php myscript.php' 전체 경로를 사용하거나'which php'를 호출하여 동적으로 알아 내고 결과를 나중에 사용할 변수에 쓰십시오. – Hafenkranich

10

이전의 포스터는 말했다 ..

당신이 PHP 명령 줄 도구 ... 당신의 오두막 라인은 다음과 같이 필요로 설치 한 경우 (#!) : #!/usr/bin/php

동안 이 이 될 수 있습니다. 단지 php을 입력 할 수 있다고해서 반드시 php가 될 것임을 의미하지는 않습니다 .../usr/bin/php은 일반적인 장소입니다 ...하지만 어떤 샴페인과 마찬가지로 ... 그것은 귀하의 env에 맞게 조정해야합니다.

특정 실행 파일이 사용자의 $PATH에 위치한 알 수있는 빠른 방법 .. .. ➜ which -a php나를 위해처럼 보이는를 입력하려고

php is /usr/local/php5/bin/php
php is /usr/bin/php
php is /usr/local/bin/php
php is /Library/WebServer/CGI-Executables/php

첫 번째 것은 내가 PHP에서 입력 한 경우 얻을 것이다 기본값입니다. t 명령 프롬프트 ... 그러나 나는 그 중 하나를 shebang에서 직접 사용할 수 있습니다 ... 또한 자주 볼 수 있듯이 실행 파일 이름을 env과 결합 할 수도 있지만 실제로/trust에 대해서는 많이 알지 못합니다. 입니다. 여보.

1

빠른 실행 방법은 특정 실행 파일이 $ PATH에 있는지, 시도하십시오.

php이 어디에 있는지 찾을 수조차 빠른 방법 ...

whereis php 

나는 debian를 실행하고 위의 명령 나에게 도움이

php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz 

희망을 보여주는거야.

당신이 명령 줄 사용을위한 오두막을 사용하려고하는 경우
10
#!/usr/bin/env bash 
PHP=`which php` 
$PHP /path/to/php/file.php 
관련 문제