[英]How to execute "php artisan migrate" and other Laravel commands in remote server?
[英]PHP: Execute Server Commands To Remote Host
我是 PHP 世界的新手,但想要設置一個相對簡單的 PHP 腳本,當用戶按下網頁上的按鈕時,該腳本將通過 ssh2_exec 向遠程主機執行 shell 命令。 我希望通過 POST 而不是 GET 來處理它。 我想避免使用 bash 腳本的 Web CGI。
在ssh2_exec 上查看此文檔后,我能夠對需要完成的工作有所了解,但我仍然需要相當多的幫助。
為了幫助更好地理解我要完成的任務,讓我解釋一下。 我希望在頁面上有兩個文本字段和一個提交按鈕。 我們將這些文本字段稱為$var1
和$var2
。 我希望用戶填寫兩個文本字段,點擊提交,然后向遠程服務器提交一個命令,如下所示:
# [root@server] $var1 /home/$var2.sh
現在我離我需要去的地方不遠了,但以下是我自己編譯的(非工作)代碼,正在尋找使其工作或改進的方法。 我也意識到連接到遠程服務器並通過 PHP 腳本以 root 身份運行命令不是一個好主意。 但這純粹是為了開發/測試而不是生產。 我只是想熟悉這個過程。 無論如何,這就是我所擁有的:
<?php
$connection = ssh2_connect('192.168.1.1', 22);
ssh2_auth_password($connection, 'root', 'password');
if (isset($_POST['button']))
{
$stream = ssh2_exec($connection, 'touch /root/test/test.txt');
}
?>
<html>
<body>
<form method="post">
<p>
<button name="button">Touch</button>
</p>
</form>
</body>
同樣,我確信上面的代碼對於開發人員來說看起來很糟糕並且完全不正確,但是正如我所說的,我是 PHP 的新手,所以這只是我自己盡力而為。
因此,話雖如此,如果有人有任何類型的見解、有用的鏈接、提示或任何內容 - 將不勝感激!
我將嘗試解釋您需要執行的步驟才能完成您想要的操作。
你會想要在你的網站上的某個地方有一個 HTML 頁面。 這可能是一個僅包含以下內容的index.html
:
<html> <body> <form method="post"> <input type="text" id="text1"><br> <input type="text" id="text2"><br> <button name="button">Touch</button> </form> </body>
您將不得不研究一種稱為 JavaScript 的語言。 JavaScript 將允許您獲取在文本框中輸入的值並通過稱為 Ajax 的東西將它們發送到 PHP。
http://www.w3schools.com/ajax/ajax_intro.asp
簡而言之,Ajax 是您的網站與服務器和客戶端進行通信的一種方式。 您可以將數據從客戶端(您的 HTML 頁面)發送到您的服務器 (PHP) 並在那里處理數據。
但是,還有另一種選擇,您可以使用當前代碼並將action
屬性添加到<form>
標記並將用戶重定向到您的 PHP 頁面,然后根據需要使用$_POST
獲取數據。
這是一個例子: http : //www.w3schools.com/php/php_forms.asp
完成上述步驟后,無論是 Ajax 帖子還是表單帖子,您現在都可以在 PHP 中處理所有值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.