首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何更改php的exec()的shell

如何更改php的exec()的shell
EN

Stack Overflow用户
提问于 2009-11-24 20:16:03
回答 5查看 10.8K关注 0票数 11

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

代码语言:javascript
运行
复制
exec("echo 123");

版画

sh: /echo:找不到

在我看来,当我想要使用bash时,php似乎在使用shell。我尝试在/etc/passwd中更改www-数据的shell,这也没有帮助。

有没有人知道问题可能来自哪里,或者我如何为php的ubuntu用户更改shell。

谢谢你,蒂莫

编辑

也许这会有帮助:

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

关键是,我从来不确定执行程序中的脚本是哪个用户执行的。

编辑

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

sh: /test.sh: not

EN

回答 5

Stack Overflow用户

发布于 2009-11-24 20:57:27

改用shell_exec()。exec不应该调用任何shell来执行您的程序。或者,您可以使用exec调用bash,如

代码语言:javascript
运行
复制
exec("/bin/bash -c \"echo $foo > bar.txt'\"")
票数 14
EN

Stack Overflow用户

发布于 2009-11-24 20:18:29

我认为问题是没有$PATH设置。尝试使用指向二进制文件的完整路径(即/bin/echo )

票数 0
EN

Stack Overflow用户

发布于 2009-11-24 20:37:58

如果你想做的是:

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

然后,我想这是可行的(不管是什么shell):

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1792643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档