您收到的错误表明未定义对象。很可能一个模块根本没有加载,因为你没有从正确的位置运行脚本,而且某些包含的相对链接无法正常工作。以正确的用户身份运行可能会修复它。或者在运行节点脚本之前尝试更改到正确的目录。或者更改节点脚本中链接的位置。
你在WINDOWS路径中定义了npm,但PHP是否认出了它?
我建议你应该在exec中编写完整的NPM路径来测试它。如果它有效,那么你应该打电话 的 putenv()函数 强> 在执行npm install之前使用正确的参数..
首先尝试:
exec('C:\npm-test\npm install', $output); $output = implode(PHP_EOL, $output); echo $output;
如果它工作,请在调用exec()之前使用putenv()命令。例:
putenv("npm='C:\npm-test\npm'");
//然后执行(...)
好的,我已经成功解决了这个问题!
基本上你需要运行网站(PHP文件所在的位置)作为运行NodeJS的用户!
为此,我在IIS中执行了以下操作:
1.) Find the website 2.) Choose basic settings 3.) Click the connect as... button 4.) Choose 'specific user' 5.) Enter `dom/cameron` and my password 6.) Restart IIS
如果有人对如何让NodeJS运行默认值有任何想法 nt authority\iusr 然后随时发一个答案:)
nt authority\iusr