我有一个 php 程序,提示用户输入一些参数,然后使用这些参数必须执行批处理 shell 脚本。我已经使用以下功能实现了此功能:
$cmd = "echo \"podcast -c $TCname\" | at $_stimehr:$_stimemn $_sdate";
exec("$cmd", $_RetVal);
这会排队甚至运行。但我相信我有一个似乎无法克服的权限问题。
我的 apache2 以用户 www-data 身份运行,并且我已确保每个人都可以执行 shell 脚本,并且我的工作目录树当前设置为 777(暂时设置为 777,直到我弄清楚这一点)。它仍然启动然后失败,没有任何错误消息,我已经登录到 wazoo 了!没有错误。尝试更改目录时它似乎停止了。
答案1
每当我遇到此类问题时,我都会www-data
在/etc/passwd
.您可以将其更改回nologin
完成测试后的状态。
然后我su - www-data
手动尝试执行该脚本。如果您遇到与权限相关的问题,这应该可以帮助您缩小范围。从 php 运行 shell 脚本有时会产生意想不到的结果。