【问题标题】:Include in remote script fails when running it via SSH通过 SSH 运行时包含在远程脚本中失败
【发布时间】:2019-02-15 00:59:16
【问题描述】:

我在本地运行一个脚本,完成后对远程服务器上的脚本进行 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

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

【问题讨论】:

    标签: php ssh require


    【解决方案1】:

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

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

    【讨论】:

    • 你让我免于斜眼 - 谢谢!
    猜你喜欢
    • 2014-08-27
    • 1970-01-01
    • 2021-06-13
    • 2021-02-13
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    相关资源
    最近更新 更多