通过SSH运行远程脚本时包含失败

时间:2019-02-14 16:37:09

标签: php ssh require

我在本地运行脚本,完成后将对远程服务器上的脚本进行exec调用。

exec("ssh user@server.com \"php /full/path/to/script.php\"", $output, $return);

它向我显示此错误:

PHP Warning:  require(../resources/vendor/autoload.php): failed to open stream: No such file or directory in /full/path/to/script.php on line 3

我尝试将所需的脚本加载到完整路径,但没有成功。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

因为PHP将CWD(当前工作目录)设置为SSH登录后的位置(可能是用户主文件夹),并且PHP文件中包含的引用被解释为相对于CWD。您应该将目录更改为项目的根目录:

exec("ssh user@server.com \"cd /full/path/to/; php script.php\"", $output, $return);