【发布时间】: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 nsudo 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