编写器:在phpseclib SSH2中找不到命令
我已经使用编写器:在phpseclib SSH2中找不到命令,php,ssh,server,phpseclib,ssh2,Php,Ssh,Server,Phpseclib,Ssh2,我已经使用phpseclib连接了我的服务器,我想在一个特定的文件夹中运行3个命令,但是我在这个库中遇到了几个问题。 1我正在 stdin:不是tty bash: 每次命令后都会出错。我做了谷歌搜索,找到了一个添加的解决方案 $ssh->enablePTY()然后我无法看到我的输出返回1或0。 2添加$ssh->enablePTY()后;当我尝试运行另一个命令时,我面临 If you want to run multiple exec()'s you will need to disable (
phpseclib
连接了我的服务器,我想在一个特定的文件夹中运行3个命令,但是我在这个库中遇到了几个问题。
1我正在
stdin:不是tty bash:
每次命令后都会出错。我做了谷歌搜索,找到了一个添加的解决方案
$ssh->enablePTY()代码>然后我无法看到我的输出返回1或0。
2添加$ssh->enablePTY()后;当我尝试运行另一个命令时,我面临
If you want to run multiple exec()'s you will need to disable (and re-enable if appropriate) a PTY for each one
所以我添加了$ssh->enablePTY()
和$ssh->disablePTY()代码>在每个命令之前和之后,我只能看到1和0,而不是我命令的输出
3我想在这样执行的特定文件夹中背靠背运行3个命令
echo $ssh->exec('cd /home/my/public_html/testmags/; composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /home/my/public_html/testmags/');
但我面对的是composer:command not found
。
我花了两天时间在这上面,但无法解决任何这些问题。
小的帮助将不胜感激。
提前感谢:)对于PTY,您需要在$ssh->exec()之后执行$ssh->read()
。原因是PTY的支持交互。例如
$ssh->enablePTY();
$ssh->exec('passwd');
echo $ssh->read('password:');
$ssh->write("badpw\n");
echo $ssh->read('password unchanged');
顺便说一句,根据您的命令,您可以做的一件事就是将它们链接起来。例如,$ssh->exec('cmd1;cmd2;cmd3')
或$ssh->exec('cmd1&&cmd2&&cmd3')代码>
但我面对的是composer:command not found
您是否安装了composer?什么是$ssh->exec('echo$PATH');echo$ssh->read()代码>说什么?它是否包括(全局)安装Composer的路径(如果确实安装了它?)。根据,如果它是全局安装的,它可能位于/usr/local/bin/
以在另一台服务器上运行composer,您是否检查过它是否已安装?如果是,您是否检查过它是否存在于给定的文件夹中?我已使用PUTTY连接到服务器。Composer命令正在那里工作,但使用此库时它不在那里。