代码之家  ›  专栏  ›  技术社区  ›  user936965

php系统(“npm安装”)不工作

  •  0
  • user936965  · 技术社区  · 7 年前

    我想使用PHP在目录中安装npm。 我使用此命令安装npm:

    system('npm install', $output);
    

    然后我得到了以下回答:127 这意味着,如果我查对了,就没有找到npm命令。我也试过了 npm -v ,这也给出了127个响应。 我的PHP与我在终端中使用的是同一个用户。当我跑步时 npm install npm-v 在我的终端,它工作得很好。

    你知道有什么问题吗? NPM安装在 /usr/local/bin/ 这包括在我的 $PATH 变量

    2 回复  |  直到 7 年前
        1
  •  1
  •   Philipp Palmtag    7 年前

    我最近自己通过控制台使用了系统命令。我找到了

    chdir('/usr/local/bin/');
    

    更改目录的有用函数。请把这个放在系统调用之前。

    link .

    在命令中使用完整路径,如:

    system('/usr/local/bin/npm install', $output);
    

    然后请检查apache用户是否具有查找(或访问)和执行该命令的权限。我认为这是一个许可问题。

    如果您使用的是SELiunux,则可以使用将模式设置为“允许” setenforce 0 . 如果可行,您必须授予apache用户访问权限。不要忘记通过使用将强制级别恢复为“强制” setenforce 1 .

        2
  •  1
  •   user936965 user936965    7 年前

    我解决了这个问题。仍然不确定为什么我必须在PHP中的命令中添加这个,但这对我来说很有效:

    export PATH=$PATH:/usr/local/bin/npm; npm install
    

    当然,简单的解释是NPM现在在我的 PATH echo $PATH 已返回该目录。