我知道之前已经讨论过这个问题,但我仍然无法找到解决方案。我正在尝试从(非常小的)网站上的PHP文件执行Bash脚本,该网站使用内置的Web服务器运行。使用
在终端中运行PHP文件时php -f test.php
它工作正常,bash脚本执行。但是当我启动网络服务器并从网站调用PHP函数时,没有任何反应。使用以下命令调用Bash脚本:
exec('/ home / user / website / bash_script',$ out,$ return);
在PHP文件中,我得到返回= 1。 在网站上,执行bash脚本的PHP脚本由另一个PHP脚本通过以下方式调用:
<input type="button" value="..." onclick="location='test.php'"/>
我首先认为这是我的权限问题,但我在visudo中添加了脚本文件,以便能够以超级用户身份运行它而无需密码但仍然没有运气。我还将文件权限更改为755。 这是test.php(通过终端运行时工作正常):
<?php
exec ('/home/user/website/test');
?>
我也可以执行exec('cp bla bla2');来自网络服务器所以exec()
没有问题EDIT ---------------------------------------------- --------------------------
Bash脚本正在向另一个屏幕发送命令,似乎这是问题的根源。我认为这可以解决我的问题: Screen -X isn't working ("No screen found")