【问题标题】:Laravel Command outputs different version of node than command lineLaravel 命令输出的节点版本与命令行不同
【发布时间】:2019-10-15 14:18:48
【问题描述】:

我在包含正在运行的 Laravel 实例的服务器上将我的节点升级到 v10.16.0。

这是升级后的输出:

$ node -v
v10.16.0

这是手动运行 Laravel 预定命令并回显响应的输出:

$ php artisan custom:command
v10.16.0

这是 Laravel 以 5 分钟的时间表运行该命令时的输出:

v6.14.3

Laravel 命令如下:

$process = new Process("node -v");
$process->run();

这怎么可能?当然,Laravel 只是在命令行上以与使用 exec() 相同的方式运行命令,因此应该使用相同的版本。甚至php artisan 似乎也得到了正确的版本。

【问题讨论】:

  • which node 从 bash 和 laravel thingy 运行时的输出是否不同?
  • 有趣。 which node 来自 bash 是 /usr/local/bin/node,来自 laravel 是 usr/bin/node。所以这意味着节点版本只为这个用户更新?如果标准 sudo npm install -g n sudo n stable 技巧不起作用,我该如何在所有用户中更新它?
  • idk,pip 有时也会这样做。这就是为什么我不同时使用这两个
  • 是的,我可以看到这个问题。老实说,我认为模块n 会升级,而不是并排安装另一个版本。我选择完全删除节点,如下所示:stackoverflow.com/questions/11177954/…。然后使用nvm重新安装。我希望它有效。
  • 好的,这样也没有用。我可以sudo su -s /bin/bash my-user 给许多不同的用户。特别是 www-data,它们都可以访问节点。然而 Laravel 仍然无法识别节点。 (现在我已经删除并重新安装了)

标签: php node.js bash laravel-5 command-line


【解决方案1】:
  1. 重启服务器
  2. 确保您已删除旧版本的节点并且您只有 v10

【讨论】:

  • 正是我的想法。它不需要重新启动服务器。但是,删除旧版本的节点会导致我检查其他版本是否存在,如果存在,它在哪里。不知道我会如何检查。
猜你喜欢
  • 2023-03-18
  • 1970-01-01
  • 2022-07-16
  • 2021-01-23
  • 1970-01-01
  • 1970-01-01
  • 2021-03-07
  • 2016-06-17
  • 1970-01-01
相关资源
最近更新 更多