gpt4 book ai didi

php - shell_exec 不适用于 find

转载 作者:太空宇宙 更新时间:2023-11-04 09:28:28 25 4
gpt4 key购买 nike

我正在尝试在其他人创建的服务器上执行 php 脚本。我尝试了 echo shell_exec('ls'); 并且成功了。

var_dump(shell_exec('find / -name "tmp.txt"'));

返回空值。但是,当我在 ssh 控制台中尝试时,输出是正确的。什么会导致它?我可以检查什么

最佳答案

您正试图在根目录中找到某些内容,您的 Web 服务器无权访问(按设计)- 您想要做的是安全问题,因此我的建议是放置您的作品在您网站内的一个文件夹中,由允许访问您驱动器上文件的同一用户拥有,通常为 www-data .

也许你不想读取服务器本身的根目录,而只想读取与网站同目录下的一个文件。关闭 /对于 .将访问当前目录,而不是基本目录:

var_dump(shell_exec('find . -name "tmp.txt"'));

或者,您可以尝试绝对路径:

var_dump(shell_exec('find /path/to/files -name "tmp.txt"'));

这并不常见,但您可能需要指向 find 的绝对路径以及。您可以通过运行 var_dump(shell_exec('find .')); 来测试是否需要这样做如果它没有输出,那么您可能不得不输出。使用 /usr/bin/find相反,如果是这种情况。

Read more about how to set permissions
<强> Apache: File and Directory Ownership and Permissions for Web Content

关于php - shell_exec 不适用于 find,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33857070/

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