Bash脚本运行php脚本

mmm*_*eys 40 php bash shell cron

我有一个php脚本,我希望使用bash脚本运行,所以我可以使用Cron每分钟运行一次php脚本.

据我所知,我需要创建bash脚本来处理php脚本,然后允许我使用Cron工具/计时器.

到目前为止我被告知我需要放:

#!/pathtoscript/testphp.php
Run Code Online (Sandbox Code Playgroud)

在我的PHP脚本的开头.我不知道该怎么办......

有什么建议?谢谢.

Raf*_*ler 70

如果您将PHP安装为命令行工具(尝试发送php到终端并查看它是否有效),您的shebang(#!)行需要如下所示:

#!/usr/bin/php
Run Code Online (Sandbox Code Playgroud)

将它放在脚本的顶部,使其成为可执行文件(chmod +x myscript.php),然后创建一个Cron作业来执行该脚本(与执行bash脚本的方式相同).

你也可以使用php myscript.php.

  • 如果你打算使用shebang进行命令行使用,你真的应该使用"**#!/ usr/bin/env php**",因为它允许脚本更加可移植,因为PHP可能并不总是安装在"/ usr/bin/php"中.合理? (27认同)

FDi*_*isk 16

#!/usr/bin/env bash
PHP=`which php`
$PHP /path/to/php/file.php
Run Code Online (Sandbox Code Playgroud)


Ale*_*ray 12

之前的一张海报说..

如果您已将PHP安装为命令行工具...您的shebang(#!)行需要如下所示: #!/usr/bin/php

虽然这可能是真的...只是因为你可以输入php并不一定意味着它将成为PHP的地方...... /usr/bin/php是一个常见的位置......但是和任何shebang一样......它需要根据你的需要量身定做env.

快速查找您的特定可执行文件位于您的位置$PATH,尝试..➜ which -a php ENTER,这对我来说看起来像..

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 ...但我可以在shebang中使用它们中的任何一个,或者直接...你也可以将可执行文件名称与之结合使用env,如常见,但是我真的不太了解/相信这一点.XOXO.


Spy*_*ros 7

你只需要设置:

/usr/bin/php path_to_your_php_file
Run Code Online (Sandbox Code Playgroud)

在你的crontab中.


Ser*_*les 7

我很确定这样的东西就是你要找的东西:

#!/bin/sh

php /pathToScript/script.php
Run Code Online (Sandbox Code Playgroud)

使用所需的脚本名称(例如runPHP.sh)保存并赋予其执行权限,然后您可以随意使用它.

编辑:你可能根本不使用bash脚本,只需将"php ..."命令添加到crontab,如果我没有弄错的话.

祝好运!