PHP exec()的节点模块命令不起作用

时间:2018-12-06 17:50:47

标签: php node.js mamp node-modules

在Terminal上可以正常工作,并返回预期的结果:

/Users/me/Desktop/Clients/IM/apps/node_modules/.bin/mjml newslettercode.html

这在终端机上也能正常工作

node node_modules/.bin/mjml newslettercode.html

这也可以在终端机上正常运行

node_modules/.bin/mjml newslettercode.html

我正在运行MAMP和域作为我的开发。

从我在浏览器中的.php文件中,我得到exec()错误127并且没有输出。

此测试代码:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

define('ROOT_DIR', realpath(__DIR__.'/..'));

$file =  ROOT_DIR.'/apps/node_modules/.bin/mjml newslettercode.html';

exec($file, $output, $responseCode);

print_r ($file);

echo "<pre>";
print_r($output);
echo "</pre>";

echo "<pre>";
print_r($responseCode);
echo "</pre>";

返回此:

/Users/me/Desktop/Clients/IM/apps/node_modules/.bin/mjml newslettercode.html

Array
(
)

127

我是否假定节点未在我的MAMP主机上运行?我不确定..任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

问题出在应用程序的路径中php无法仅使用node /../..php来找到应用程序,尝试使用下面的命令可以使工作正常:

  

@HamzaNig:/ usr / bin / node主要是默认路径

     

@Joe:/ usr / local / bin / node是他平台上的默认路径