/**
* 跨平台执行脚本
*
* @return array
* array['output'] 执行后的输出结果
* array['status'] 执行状态 0为正常 127 找不到脚本 126没有执行该shell脚本权限
*/
function terminal($command) {
// system
if (function_exists ( 'system' )) {
ob_start ();
system ( $command, $return_var );
$output = ob_get_contents ();
ob_end_clean ();
}
// passthru
else if (function_exists ( 'passthru' )) {
ob_start ();
passthru ( $command, $return_var );
$output = ob_get_contents ();
ob_end_clean ();
}
// exec
else if (function_exists ( 'exec' )) {
exec ( $command, $output, $return_var );
$output = implode ( "\n", $output );
}
// shell_exec
else if (function_exists ( 'shell_exec' )) {
$output = shell_exec ( $command );
$return_var = '';
}
else {
$output = 'Command execution not possible on this system';
$return_var = 1;
}
return array (
'output' => $output,
'status' => $return_var
);
}
terminal('./shell/start.sh developer-hub-com-docker-test developer-hub-test:v1 8088 > /dev/null 2>&1 &');
start.sh为执行脚本,必须要有执行权限
#!/bin/sh
/usr/bin/docker stop $1
/usr/bin/docker rm $1
/usr/bin/docker run --name $1 -p $3:80 $2 /bin/bash -c 'php-fpm && sed -i -e "s/\$port/80/g" /etc/nginx/conf.d/developer_hub_com.conf && nginx'