Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中执行脚本_Php_Linux_Sh - Fatal编程技术网

如何在php中执行脚本

如何在php中执行脚本,php,linux,sh,Php,Linux,Sh,我有一个头顶控制器(对一些机器人来说有点像魔杖)插在我的usb端口上。 我正在尝试在linux上创建一个web服务器,允许用户向机器人发送预加载的代码(因此没有人输入任何内容)。我已经将该命令嵌入到一个脚本文件中,我正试图在php文件中执行该脚本文件。在php中执行脚本文件的代码位在web服务器上按下按钮时运行。然而,当我按下按钮时,什么也没有发生。代码不会发送到控制器,也不会给出错误。 我可以在命令行中毫无问题地运行脚本。但是当我试图从web服务器执行它时,什么也没有发生。我有办法解决这个问题

我有一个头顶控制器(对一些机器人来说有点像魔杖)插在我的usb端口上。 我正在尝试在linux上创建一个web服务器,允许用户向机器人发送预加载的代码(因此没有人输入任何内容)。我已经将该命令嵌入到一个脚本文件中,我正试图在php文件中执行该脚本文件。在php中执行脚本文件的代码位在web服务器上按下按钮时运行。然而,当我按下按钮时,什么也没有发生。代码不会发送到控制器,也不会给出错误。 我可以在命令行中毫无问题地运行脚本。但是当我试图从web服务器执行它时,什么也没有发生。我有办法解决这个问题吗? 这是php文件中的内容

<html>
<body>
<h1><font face="verdana" color="green">SwarmArena</font></h1>
<hr>
<form action = "<?php $_PHP_SELF ?>" method = "POST">
Name: <input type ="text" name = "name"/>. ; <br>
Age: <input type ="text" name="age"/>. ; <br>

New Code: <textarea cols=40 rows=10 name="Newcode">Default text</textar$
<input type = "submit" name="enter"  value="Enter" />
<input type = "submit" name="insert" value="insert" />
<input type = "submit" name="select" value="select" />
<input type = "submit" name="sleep"  value="sleep" />
<input type = "submit" name="reset" value="reset" />
</form>
</body>
</html>

<?php

if(isset($_POST['sleep'])){
$out = shell_exec('./sleep.sh');
echo "$out";
}
?>

谢谢

假设您从PHP脚本中正确执行了命令,研究权限问题可能会很有用

登录运行web服务器的用户,然后尝试从那里手动执行命令。我个人的Web服务器是在名为
apache
的用户下运行的

要查看当前用户,请在命令行中运行
whoami

要更改用户,请运行
su-newuserhere


如果这样做有效,或者您在
root
下运行web服务器,那么您很可能会排除任何权限问题。

假设您在PHP脚本中正确执行命令,查看权限问题可能会很有用

登录运行web服务器的用户,然后尝试从那里手动执行命令。我个人的Web服务器是在名为
apache
的用户下运行的

要查看当前用户,请在命令行中运行
whoami

要更改用户,请运行
su-newuserhere


如果这样做有效,或者您在
根目录下运行web服务器,那么您很可能可以排除任何权限问题。

我不知道您是如何做到这一点的。但单击按钮后,它将提交到一个php页面,该页面将使用
exec和shell\u exec
php命令运行shell脚本

更多的是,有几种可能会导致以下问题:

 - exec and shell_exec are disabled in php.ini
 - The path to the executable is wrong. If the script is in the same
   directory as the php file, try exec(dirname(__FILE__) .
   '/myscript.sh');

我不知道你是怎么做到的。但单击按钮后,它将提交到一个php页面,该页面将使用
exec和shell\u exec
php命令运行shell脚本

更多的是,有几种可能会导致以下问题:

 - exec and shell_exec are disabled in php.ini
 - The path to the executable is wrong. If the script is in the same
   directory as the php file, try exec(dirname(__FILE__) .
   '/myscript.sh');

您是如何尝试从web服务器执行它的?您能展示代码和执行它的方式吗?应该很高兴看到您到目前为止构建了什么。因此,我们可以帮助您。“用php执行脚本文件的代码”——了解这一点非常有用is@Cagy79我已经添加了文件中的所有代码。您打算如何从web服务器执行它?您能展示代码和执行它的方式吗?很高兴看到您到目前为止构建了什么。因此我们可以帮助您。“用php执行脚本文件的代码位”知道这是什么会有用的is@Cagy79我已经添加了文件中的所有代码。我在根目录下运行Web服务器。我在根目录下运行Web服务器。当你说FILE时,你是指php文件的名称吗?不,不是文件名,它是php内置的魔法常量,返回父目录的路径,您不需要对这个“dirname(FILE)”执行任何操作,谢谢,但这不起作用。如果我运行shell_uExec,它会给我预期使用终端获得的输出,但当你说FILE时,它似乎没有对usb端口说话。你是指php文件的名称吗?不,不是文件名,它是php内置的魔法常量,返回父目录的路径,你不需要对这个“dirname(FILE)”执行任何操作谢谢,但那不行。如果我运行shell_uExec,它会提供我希望使用终端获得的输出,但它似乎不与usb端口通信