如何更改shell的php的exec()

我想在ubuntu服务器上使用php的exec()函数。 问题是,我总是得到一个错误,找不到命令。 例如使用

exec("echo 123"); 

版画

sh:/ echo:找不到

对我来说,当我想要使用bash时,它看起来像php使用sh shell。 我试图更改/ etc / passwd中的www数据的shell,这也没有帮助。

有没有人有一个想法可能来自哪里,或者我可以如何改变shell的PHP的Ubuntu的用户。

谢谢,Timo


[编辑]

也许这有助于:

我从ssh调用一个bash脚本作为timo,这个脚本调用一个使用exec的php脚本。 我知道,这听起来很奇怪,但它是更大的开发环境的一部分。

关键是,我不知道哪个用户执行exec内部的脚本。


[编辑]

到目前为止,我发现还有另一个权利问题。 即使我尝试从exec内部调用一个bash脚本test.sh(通过它的完整path!),php test.php就会说。

sh:/test.sh:找不到

尝试shell_exec()来代替。 exec不应该调用任何shell来执行你的程序。 或者,你可以用exec调用bash

 exec("/bin/bash -c \"echo $foo > bar.txt'\"") 

我认为问题是没有$ PATH设置。 尝试使用二进制文件的完整路径,例如/ bin / echo

如果你想要做的是:

/usr/bin/mysql --user=asdf --password=asdf mydb < ./dump.sql

然后我想这会工作(不管壳):

/usr/bin/mysql --user=asdf --password=asdf mydb < /full/path/to/dir/dump.sql