【问题标题】:Running terminal command over SSH with PHP return different version?使用 PHP 通过 SSH 运行终端命令返回不同的版本?
【发布时间】:2020-08-20 11:05:12
【问题描述】:

我在服务器上发布了我的应用,并且

我 ssh 进入机器,cd 进入主目录并运行

php -v 然后我得到了PHP 7.4.5 (cli) (built: Apr 18 2020 01:11:34) ( NTS )

如果我通过 SSH 运行相同的命令

ssh MY_USER@SERVER_IP "php -v" 然后我得到了PHP 5.6.22-2 (cli)

我正在尝试远程触发composer install,但它失败了,因为 php版本。

我当然想用 php 7.4 运行命令。

有什么建议吗?

谢谢

附言。如果我运行“whoami”,我会得到相同的用户。

【问题讨论】:

  • 您安装了多个 php cli 版本。您可以使用 whereis php 命令获取 php 的位置
  • 感谢您的回答。确实安装了几个 php cli。
  • @DavidHlavati,你知道我应该如何运行正确的 php 版本吗? :)
  • 好的,我要把它放到一个更大的盒子里,因为我认为它也需要一些格式化,秒

标签: php ssh command-line command


【解决方案1】:

您可以使用whereis 命令检查 php cli 的运行位置,您也可以对 composer 执行相同的操作。 where is 命令返回脚本的路径。

所以当你说whereis php时,你会看到类似这样的响应:

php: /usr/bin/php /usr/share/php /usr/local/php7/bin/php

如果你想使用 php 7.4.5,那么你应该弄清楚 php 7.4.5 的路径在哪里。为此,您可以通过 ssh 进入机器 cd 到主目录并执行 whereis php。然后你会得到一个位置,你也可以使用其他命令。

现在我们需要知道作曲家从哪里运行:

whereis composer
composer: /usr/bin/composer

最后我们可以执行想要的命令了,它是php脚本的路径和composer脚本的路径之一。例如:

/usr/bin/php /usr/bin/composer
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.10.5 2020-04-10 11:44:22

Usage:
  command [options] [arguments]

就是这样。

【讨论】:

    猜你喜欢
    • 2015-06-23
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 2020-09-07
    • 2017-01-25
    • 2010-10-08
    • 2011-01-25
    • 1970-01-01
    相关资源
    最近更新 更多