更改 apache Web 服务器使用的节点版本

问题描述 投票:0回答:1

嗨,这里有一些观察结果, Click Here

我有一个 php 程序 `

<?php
$op=exec('node -v');
$op1=exec('which node');
echo "Node  version : $op";
echo "\n Node path : $op1";
echo "\nUser : ". get_current_user();
?>

` 当我以 ubuntu 用户身份从命令行运行这个程序时

Node  version : v20.11.1
Node path : /home/ubuntu/.nvm/versions/node/v20.11.1/bin/node
User : root

当我以 root 用户身份从命令行运行该程序时

Node  version : v18.20.0
Node path : /root/.nvm/versions/node/v18.20.0/bin/node
User : root

当我从浏览器运行这个文件时

Node version : v10.19.0 
Node path : /usr/bin/node 
User : root

我希望 apache Web 服务器使用的节点版本也设置为节点 18 或节点 20。我该怎么做?因为我想使用一些与节点 10 不兼容的节点模块。如何将 apache Web 服务器的节点 js 版本更改为 18 或 20?

node.js apache ubuntu webserver node-modules
1个回答
0
投票

您的其他用户有一个 .nvm 目录,可以在其中找到节点。运行 httpd 的用户没有,因此它使用系统节点实例。像此处显示的其他用户一样设置您的 apache 用户。或者升级/usr/bin下找到的版本。

另一个可能的修复:

看起来当你用 root 登录时,PATH 变量首先被设置为指向 .nvm 版本,而不是 /usr/bin 下的版本。但是当 Apache 启动时,它可能不会加载 root 所具有的环境。您可以修改您的 envvars apache 文件以将 .nvm 目录添加到您的 PATH 中。

© www.soinside.com 2019 - 2024. All rights reserved.