我将尽可能清楚地解释我的问题,如果你不明白我的意思,请随时问我更精确,并原谅我的英语,这不是我的母语.
我的目标
我想做的事情看起来很简单.假设我有2台服务器:S1和S2.
S1是我安装并运行Laravel 5.5的服务器.
S2是一个服务器,我有多个PHP脚本.
我想通过简单点击我的Laravel应用程序中的按钮来运行PHP脚本(在S2上).
我想运行的命令是PHP thenameOfMyfiles
你必须知道的事情
>在命令行中,我可以通过S1连接SSH到S2:ssh -tt -p 2222 myRemoteUser @ myRemoteIp.这工作正常.
>我的大多数测试都会显示文件夹创建的一些尝试,因为更容易看到是否已创建文件夹而不是检查脚本是否正在运行.
我不同的尝试
为了达到这个目标,我尝试了很多东西.首先,我使用Laravelcollective SSH 5.2来从我的Laravel应用程序中使用SSH.
我的配置文件config / remote.PHP,这是我指定远程服务器连接的地方:
return [ default' => 'S1','connections' => [ 'S1' => [ 'host' => '127.0.0.1','username' => 'myUsername','password' => 'myPassword','key' => '','keytext' => '','keyphrase' => '','agent' => '','timeout' => 10,],'S2' => [ 'host' => 'myRemoteIP','username' => 'myRemoteUser','port' => '2222','password' => '','timeout' => 30,'directory' => '/home/myRemoteUser/' ]
试试1
SSH :: into(‘S2’) – > run([‘mkdir imAtestDirectory’]);
每次我尝试使用SSH :: into(‘S2’)我都会得到一个无法连接到远程服务器RuntimeException.
我尝试没有任何SSH密钥,在keytext字段中使用私有/公共SSH密钥,但我仍然得到相同的错误.
我试图将关键字段中的路径放到我的键中,但它说文件〜/ .ssh / mykey不存在.
将我的密钥移动到另一个地方也不起作用,我无法再次连接到远程服务器.
试试2
SSH :: into(‘S1’) – > run([‘ssh -tt -p 2222 myRemoteUser @ myRemoteIp’,’mkdir testDir’])
我试图在命令行中重现我正在做的事情,因为我知道它可以工作.我觉得我正在连接到S2,当我正在查看SSH命令返回的内容时我正在[…] Debian GNU / linux系统附带的程序是免费软件[…]当我在命令行中执行命令时,我得到的消息是相同的,但它不是创建文件夹.
请帮帮我
我的想法已经不多了,我一直在谷歌搜索几个小时,但我找不到如何解决我的问题或任何其他方式做我想做的事情.
如果您需要更高的精度,请随时询问.
编辑
>我一直在尝试其他语法,但没有成功.我仍然对任何建议持开放态度,接下来我会尝试dammeul所说的(检查端口2222两端是否打开)
解决方法 如果您实际上可以通过“尝试2”登录,则应该以不同方式运行代码.使用ssh命令附加命令.你现在正在做的是首先运行ssh(可能会挂起)然后在ssh完成时运行“mkdir”.代替:SSH::into('S1')->run(['ssh -tt -p 2222 myRemoteUser@myRemoteIp "cd && mkdir testDir"'])
(我还添加了cd以确保您在主目录中.
总结以上是内存溢出为你收集整理的通过PHP连接SSH – Laravel全部内容,希望文章能够帮你解决通过PHP连接SSH – Laravel所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)