如何将PHP前端与makefile/bash脚本接口


How to interface PHP front-end with makefile/bash script?

我正在编写一个项目,通过CLI和web UI管理多个SSH隧道。

Bash脚本

该服务用Bash编写,可以:

  • CCD_ 2给定隧道或所有隧道
  • CCD_ 3给定隧道或所有隧道
  • 给定隧道或所有隧道的CCD_ 4
  • list所有可用隧道

Makefile脚本

makefile可以执行一些"管理">任务:

  • CCD_ 7为隧道添加配置
  • CCD_ 8为隧道添加配置
  • 等等

Web UI

我想创建一个web界面——使用PHP/CodeIgniter——来控制服务。

问题

  • 如何将CodeIgniter与makefile和bash命令接口
  • 具体来说,我如何使用退出状态向PHP脚本提供信息

PHP的exec(此处为docs(命令可能会满足您的需要。

您可以使用exec运行脚本,并捕获脚本的输出和退出代码。例如:

$output = array();
$exitCode = null;
exec("/path/to/my/script arg1 arg2 2>&1", $output, $exitCode);

$output将是一个字符串数组,即脚本输出中的行。$exitCode将是脚本返回的退出代码。

然而,请注意,exec的使用引起了一些担忧:

  1. 安全性-您必须小心确保应用程序的用户不能在服务器上执行任意代码。

  2. permissions-通过exec运行的命令将作为web服务器用户运行;对于Debian/Uubuntu上的Apache,这将是www-data