[英]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.