iT邦幫忙

2

以php在網頁上操控虛擬機

我在Linux上安裝ubuntu的系統,透過xampp在虛擬機架設網頁

想請教一下,有辦法透過php語言的網頁設計一個按鈕或什麼元件來操控我寫在虛擬機的腳本嗎?

2 個回答

4
dragonH
iT邦大師 1 級 ‧ 2019-12-22 17:33:53

理論上應該是可以

大概流程可能是

前端 -> 後端(執行 script) -> return result 給前端 -> 在前端顯示結果

後端可以透過 php 的

exec

system

shell_exec

來執行 script


後端 ping google 的範例

index.php

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
  <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
  <title>Document</title>
</head>
<body>
  <div class = "row mt-5">
    <div class = "col-md-4 m-auto">
      <div class = "row mt-3">
        <div class = "col-md-12">
          <button type = "button" class = "btn btn-outline-primary btn-block" id = "btnPing">Ping Google</button>
        </div>
      </div>
      <div class = "row mt-3">
        <div class = "col-md-12" id = "pingResult"/>
      </div>
    </div>
  </div>
</body>
<script>
  $('#btnPing').click(() => {
    $.ajax({
      type: 'GET',
      url: 'do_ping.php',
      dataType: 'json',
      success(res) {
        console.log(res);
      },
      fail(xhr) {
        console.log(xhr);
      }
    });
  })
</script>
</html>

do_ping.php

<?php
  $results = [];
  exec("ping 8.8.8.8", $results);
  foreach(array_keys($results) as $key) {
    $results[$key] = iconv("cp950", "UTF-8", $results[$key]);
  }
  echo json_encode($results);

result

img

甲土豆 iT邦新手 5 級 ‧ 2019-12-23 09:32:18 檢舉

大神出現
/images/emoticon/emoticon32.gif

0
混水摸魚
iT邦新手 1 級 ‧ 2019-12-23 09:47:51

你可能會遇到的問題https://www.webteach.tw/?p=3271

harrytsai iT邦新手 4 級 ‧ 2019-12-23 10:23:16 檢舉

可以做但是權限要開很大

我要發表回答

立即登入回答