使用PHP开发linux运维工具

PHP一般情况下是无法直接开发linux运维的,市面上的linux运维工具大多使用python语言开发,如宝塔面板。

虽然PHP也有system,exec等执行系统命令的方法,但这些方法一般是在PHP的用户下执行,权限非常有限,无法达到运维要求,而且这些方法都是全部执行完才返回结果,对于执行时间比较长或者想看执行过程日志的运维需求,很难实现。

好在PHP有SSH2扩展,有了它,就可以轻松实现所有运维的需求。

首先SSH2可以使用任何账号登录,甚至root都可以,因此权限的问题可以完全不用担心。第二SSH2是可以实时输出日志的,我们可以结合websocket实时显示在PHP的网页中。目前小韦云面板就是采用这种方式,实践证明使用PHP开发linux运维工具一点问题都没有。而且小韦云面板由于是基于docker容器技术,PHP是运行在容器内,因此使用SSH2正好可以实现容器与主机之间的通信,一举两得。

SSH2登录支持使用账号密码和证书两种登录方式,一开始小韦云面板是使用账号密码的方式登录,只需要在代码把账号密码配置好就可以通信,非常简单。但由于root密码明文保存在代码里,很不安全。因此后来我们采用了证书的方式,在软件安装过程中自动生成root证书,全部不用输入密码,安全性非常好。

你可能感兴趣的:(使用PHP开发linux运维工具)