我有一个PHP脚本,我想使用bash脚本运行,所以我可以使用Cron每分钟运行一次php脚本。
据我所知,我需要创建bash脚本来处理php脚本,然后允许我使用Cron工具/计时器。
到目前为止,我被告知需要提出:
#!/pathtoscript/testphp.php
在我的PHP脚本的开头。我不知道该怎么做......
有什么建议吗?感谢。
答案 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
的版本来检查它是否有效