【问题标题】:How to execute an interactive shell program from a PHP webpage如何从 PHP 网页执行交互式 shell 程序
【发布时间】:2011-06-23 18:18:44
【问题描述】:

假设我有一个本地网页,当按下按钮时,它会执行 C 中的程序。我已经可以做到这一点。问题是该程序输出日志并需要用户输入。我的问题是:如何显示类似 bash 的窗口并通过它运行该程序,以便通过屏幕看到输出和输入?

【问题讨论】:

  • SSH 不是更安全/可靠/实用/简单的方法吗?
  • 为什么不将程序输出解析回 php 并显示在屏幕(浏览器)上。我会坚持 C 将完整程序分发为 c (exe) php 和 C 中的值是什么?在任何情况下,c 程序都必须分发给用户。
  • 或许知道c做什么和php做什么会有所帮助
  • 我只想在另一个窗口中打开终端。它不必显示在网页上。
  • @gvalero87 没有说明 c 程序的做法,甚至没有说明为什么首先需要 php。

标签: php shell exec interactive


【解决方案1】:

我为 jquery "Terminal Emulator" 开发插件,你可以看看这个。如果您将 C 程序编写为 JSON-RPC,则可以使用一行 javascript 创建终端。

另一种解决方案是根本不使用 PHP,而是将代码创建为用 C 甚至 Bash 编写的 CGI。

更新:您可以将您的程序修改为 CGI 脚本

int main() {
  printf("Content-Type: text/plain\n\n");
  // code of your program here
}

把它放到cgi-bin目录下通过浏览器运行http://yourserver.com/cgi-bin/program它会在浏览器中显示输出

【讨论】:

  • 你的提议超出了我的想象。我只是想在另一个窗口中打开终端。它不必在网页上。虽然我更喜欢你的想法。这是我的论文项目,所以如果我能在短时间内完成,我会做的。无论如何,你知道该怎么做吗?
  • 你可以使用这个 sn-p wklej.org/id/472868 但它不处理遍历它的目录,只执行来自 'QUERY_STRING' 的代码,它不安全,没有密码检查。
【解决方案2】:

也许你可以使用ajaxterm,并指定你想作为shell运行的程序:

ajaxterm.py --command=/your/command --port=yourfavoriteport

您可以将用户重定向到指定的端口,或者通过 iframe 显示终端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 2010-10-10
    • 2013-03-23
    • 2017-10-14
    • 1970-01-01
    • 2013-06-27
    相关资源
    最近更新 更多