Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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 制作在linux服务器上运行命令的api_Php_Linux_Api_Server - Fatal编程技术网

Php 制作在linux服务器上运行命令的api

Php 制作在linux服务器上运行命令的api,php,linux,api,server,Php,Linux,Api,Server,有没有可能制作一个向服务器发送linux命令的API 我会找这样的东西 // http://localhost/command=netstat <?php $command = $_GET['command']; // Sends server $command ?> //http://localhost/command=netstat exec用于执行外部程序 string exec ( string $command [, array &$output [, int

有没有可能制作一个向服务器发送linux命令的API

我会找这样的东西

// http://localhost/command=netstat
<?php
$command = $_GET['command'];

// Sends server $command
?>
//http://localhost/command=netstat

exec用于执行外部程序

string exec ( string $command [, array &$output [, int &$return_var ]] )

下面是一个示例代码;我这样做是为了使用ffmpeg在php中转换视频

$a = exec('C:\ffmpeg\bin\ffmpeg.exe -i 56c6ed0e49fe0.qt -strict -2 out22.mp4');
希望这会有所帮助。

shell2http可以做到这一点。

所以在主机上运行

shell2http -port 8080 /diskspace "df -h"
然后从浏览器远程或使用
curl
run

# assuming host IP is 1.2.3.4
http://1.2.3.4:8080/diskspace 

为了在启动时保持持久性,我想您可以运行一个脚本。

我希望您打算拥有一个命令和属性的白名单,或者您刚刚开放给任何人来接管您的服务器?下一次的建议是,在发布问题之前尝试谷歌(会更快)。类似于“php运行linux命令”的内容会为您提供许多关于这方面的链接,包括手册:是的,这是可能的——也很容易。但是你真的不应该这样做,除非你完全知道自己在做什么。否则,您的服务器将在数小时甚至数分钟内被破坏,因为这是设计上的不安全因素。我编写了一个包,使用python代码通过完全控制来实现这一点。建议:您可能需要提及与用户输入一起使用时所带来的极端安全威胁。允许传递任何命令和属性/参数(以及不正确的转义等),这不会花费很长时间,直到操作失去对服务器的控制。然后只需在api级别添加安全性。我发送的命令将在本地服务器上工作,因此没有安全威胁。有很多方法可以增加安全性,但答案中应该提到风险,由于许多人只是阅读答案,然后复制/粘贴代码。@MagnusEriksson 100%同意:)exec可以在服务器上执行许多操作,所以您不能打开它让所有用户都做错事。马格纳斯的建议非常有用。