2011-03-31 186 views
29

我有一個PHP腳本,我想用bash腳本運行,所以我可以使用Cron運行php腳本每分鐘左右。Bash腳本運行php腳本

據我所知,我需要創建bash腳本來處理php腳本,這將允許我使用Cron工具/定時器。在我的PHP腳本開始

#!/pathtoscript/testphp.php 

到目前爲止,我被告知我需要把。林不知道該怎麼辦從這裏...

任何意見?謝謝。

回答

58

如果您已經安裝PHP作爲一個命令行工具(嘗試發行php到終端,看看它是否工作),你的家當(#!)行需要看起來像這樣:

#!/usr/bin/php 

把這點腳本的頂部,使其可執行(chmod +x myscript.php),並使Cron作業執行該腳本(與執行bash腳本的方式相同)。

您也可以使用php myscript.php

+20

如果你要使用命令行使用量的家當,你真的應該使用「**#!的/ usr/bin中/ env的PHP **」,因爲它允許腳本更便攜,因爲PHP可能並不總是安裝在「/ usr/bin/php」中。合理? – Rican7 2013-01-31 23:30:58

0

如果你在bash腳本中沒有做任何事情比運行php,你可以簡單地使用/ usr/bin/php /path/to/your/file.php命令從cron運行php腳本。

7

你只需要設置:

/usr/bin/php path_to_your_php_file 

在crontab。

+0

我不得不在路徑前添加一個php,但這個概念起作用。 – 2012-11-06 04:29:53

4

的bash腳本應該是這樣的:

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

您需要的PHP可執行文件(通常在/ usr/bin中),並跑出了PHP腳本的路徑。現在你只需要把這個bash腳本放在crontab上,你就完成了!

5

我敢肯定,這樣的事情是你在找什麼:

#!/bin/sh 

php /pathToScript/script.php 

保存與您所需的腳本的名稱(如runPHP.sh),並給它執行權限,那麼你可以使用它然而你想要。

編輯:你可能不會使用bash腳本,只需將「php ...」命令添加到crontab中,如果我沒有弄錯的話。

祝你好運!

+0

在大多數環境中,您不能簡單地調用'php youscript.php',但必須找出正確的路徑。例如。使用整個路徑'/ usr/bin/php myscript.php'或通過調用'which php'並將結果寫入稍後使用的變量來動態計算出來。 – Hafenkranich 2017-08-03 16:40:48

10

一個以前的海報說..

如果你已經安裝了PHP作爲命令行工具......你的家當行需要這個樣子(#!):#!/usr/bin/php

雖然這可能是真的......只是因爲你可以鍵入php並不一定意味着這就是PHP的地方....../usr/bin/php是一個常見的位置...但與任何shebang一樣...它需要根據您的env量身定製。

一個快速的方法來找出你的特定可執行文件位於您$PATH,嘗試.. ➜which -a phpENTER,這對我來說看起來像..

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中鍵入a t命令提示符...但我可以在任何一個shebang中使用它們,或者直接使用它們...您也可以將可執行文件的名稱與env結合使用,但我並不十分了解/信任。 XOXO。

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