gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 22:13:22 25 4
gpt4 key购买 nike

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

exec("echo 123");

打印

sh: /echo: not found

对我来说,当我想使用 bash 时,php 似乎正在使用 sh shell。我尝试在/etc/passwd 中更改 www-data 的 shell,但这也没有帮助。

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

谢谢,蒂莫


[编辑]

也许这有帮助:

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

关键是,我永远不确定 exec 中的脚本是由哪个用户执行的。


[编辑]

这时候我想,肯定还有其他的权限问题。即使我尝试从 exec 中调用 bash 脚本 test.sh(通过它的完整路径!),php test.php 也只会说。

sh: /test.sh: not found

最佳答案

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

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

关于php - 如何更改 php 的 exec() 的 shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1792643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com