使用参数从PHP执行bash脚本

使用参数从PHP执行bash脚本,php,bash,cron,Php,Bash,Cron,我有一个PHP脚本,它将作为cron在Ubuntu服务器上运行 我正在尝试从PHP脚本执行bash脚本,如下所示: exec(escapeshellarg('/bin/bash ') . escapeshellarg("/home/monu/myBash.sh") . escapeshellarg("var1") . escapeshellarg("var2") .escapeshellarg("var3")); sh: 1: /bin/bash /home/monu/myBa

我有一个PHP脚本,它将作为cron在Ubuntu服务器上运行

我正在尝试从PHP脚本执行bash脚本,如下所示:

    exec(escapeshellarg('/bin/bash ') . escapeshellarg("/home/monu/myBash.sh") . escapeshellarg("var1") . escapeshellarg("var2") .escapeshellarg("var3"));
    sh: 1: /bin/bash /home/monu/myBash.sh var1 var2 var3: not found
当我在终端用户(monu)中运行“
php myPHP.php
”时,我得到如下错误:

    exec(escapeshellarg('/bin/bash ') . escapeshellarg("/home/monu/myBash.sh") . escapeshellarg("var1") . escapeshellarg("var2") .escapeshellarg("var3"));
    sh: 1: /bin/bash /home/monu/myBash.sh var1 var2 var3: not found
myBash.sh的内容如下:

    export CLASSPATH=./:./lib/xp.jar:./lib/ojdbc14.jar:./lib/log4j-1.2.8.jar:./lib/log4j.properties:./lib/log4j.xml

    cd someDir
    ./install.sh $A $B $C $D
    cd ..
当我从命令行手动执行BASH脚本时,它会按预期工作

我甚至试过
system()
shell\u exec()
,但还是没有成功

如何从PHP脚本调用此BASH脚本以使其工作,有任何提示吗?

escapeshellarg()
应用于每个参数,而不是整个命令

exec(escapeshellarg('/bin/bash') . ' ' . escapeshellarg("/home/monu/myBash.sh") . ' ' . escapeshellarg(...));

这是因为您的apache/php用户没有访问您的主文件夹的权限。@Jon,我正在终端中运行php脚本,以便在以用户(monu)身份登录时进行调试。所以我想文件权限并没有造成问题。谢谢你的提醒,我已经更新了代码,但错误仍然存在。