Bash脚本运行php脚本

时间:2011-03-31 22:07:11

标签: php bash shell cron

我有一个PHP脚本,我想使用bash脚本运行,所以我可以使用Cron每分钟运行一次php脚本。

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

到目前为止,我被告知需要提出:

#!/pathtoscript/testphp.php

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

有什么建议吗?感谢。

9 个答案:

答案 0 :(得分:67)

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

#!/usr/bin/php

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

您也可以使用php myscript.php

答案 1 :(得分:13)

#!/usr/bin/env bash
PHP=`which php`
$PHP /path/to/php/file.php

答案 2 :(得分: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中使用它们中的任何一个,或者直接...你也可以将可执行文件名称与{{1}组合使用如常见,但我并不太了解/信任 。 XOXO。

答案 3 :(得分:7)

你只需要设置:

/usr/bin/php path_to_your_php_file

在你的crontab中。

答案 4 :(得分:6)

我很确定你正在寻找的是这样的东西:

#!/bin/sh

php /pathToScript/script.php

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

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

祝你好运!

答案 5 :(得分:4)

bash脚本应该是这样的:

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

你需要php可执行文件(通常在/ usr / bin中找到)和要运行的php脚本的路径。现在你只需要将这个bash脚本放在crontab上就可以了!

答案 6 :(得分:1)

  

快速查找$ PATH上特定可执行文件的位置,尝试。

更快找出php的位置......

whereis php

我正在运行debian以及显示我的命令

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

希望有所帮助。

答案 7 :(得分:0)

如果你在bash脚本中没有做任何事情而不是运行php,你可以使用/ usr / bin / php /path/to/your/file.php等命令从cron运行php脚本。

答案 8 :(得分:0)

我在服务器上找到了php-cgi。而且它在环境中运行,因此我可以从任何地方运行。我在bash脚本中成功执行了file.php

#!/bin/bash
php-cgi ../path/file.php

在执行php脚本后,脚本返回了此代码:

X-Powered-By:PHP / 7.1.1 内容类型:text / html; charset = UTF-8

完成!

顺便说一句,首先通过检查发出命令php-cgi -v的版本来检查它是否有效