我有一个 bash 脚本(myscript.sh),它在用户“www-data”的 ssh 控制台上工作,但是当我在我的 php 脚本中使用“exec”运行这个脚本时,脚本不起作用。
有什么问题?“www-data”具有外壳“/bin/bash”,当我设置为“/bin/sh”时,脚本也不起作用。
我知道这样做有一种“不安全”的方式,我曾经遇到过类似的问题,您也可以更改文件的所有权限 - 在命令行类型:
首先复制您的原始文件 - 以防万一,所以我们不会进一步搞砸:
cp myscript.sh myscript2.sh
chmod 755 myscript2.sh
并在命令行类型:
chown www-data:www-data myscript2.sh
在 PHP 脚本文件中尝试使用 myscript2。(我记得还发现与此类似的问题与以 root 身份运行 Web 服务器(我假设您使用 Apache)有关。)
顺便说一句,你看过你的错误日志吗?对于不允许的内容,可能会有有用的建议。
注意可执行模式
chmod +x myscript.sh
如果脚本在路径中。否则调用 myscript.sh 时使用完整路径