PHP:proc_open以响应BASH输入

时间:2019-05-13 13:39:10

标签: php shell proc-open

im试图创建一个可以创建OpenVPN文件的PHP脚本。

我必须修复的最后一小段代码如下:

我用proc_open打开一个bash命令,称为“ build-key”,在shell中执行此操作时,我将键入“ ./build-key clientname”以添加一个客户端名。

该脚本需要打开构建键bash(添加设备名称)并执行以下操作:

使用8x换行(我正在使用PHP_EOL),输入“。” ,EOL,“。”,EOL,“ y”,EOL以及最后一个“ y” + EOL都会创建证书。

我想语法有问题。

在以下代码片段中,您可以看到我尝试自动创建客户端LC_12345的尝试。

$descriptorspec = array(
    0 => array("pipe", "r"),  // stdin read by child
    1 => array("pipe", "w"),  // stdout written to by child
    2 => array("file", "error.txt", "a") // stderr
);
$process = proc_open('build-key LC_12345', $descriptorspec, $pipes, $path_openvpn_ca);
if (is_resource($process)) {
    fwrite($pipes[0], PHP_EOL. PHP_EOL. PHP_EOL. PHP_EO. PHP_EOL.PHP_EOL. PHP_EOL. PHP_EOL. '.'. PHP_EOL. '.'. PHP_EOL. 'y'. PHP_EOL. 'y'. PHP_EOL);
    fclose($pipes[0]);
    $output = $pipes[1]; // $pipes[0] is the input and $pipes[2] is the error output
    $output2=$pipes[2];
    }

0 个答案:

没有答案