我正在编写一个项目,通过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
的使用引起了一些担忧:
安全性-您必须小心确保应用程序的用户不能在服务器上执行任意代码。
permissions-通过
exec
运行的命令将作为web服务器用户运行;对于Debian/Uubuntu上的Apache,这将是www-data
。