首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从php exec()获取Exit Code 127 (命令未找到)

从php exec()获取Exit Code 127 (命令未找到)
EN

Stack Overflow用户
提问于 2022-04-15 16:27:43
回答 1查看 287关注 0票数 0

编辑-添加新的信息在顶部的能见度。www数据用户不能使用exec()命令。所有尝试都返回一个127错误。

我设置了一个简单的脚本,就是这样

代码语言:javascript
运行
复制
<?php
$res = exec("echo EXEC", $res1, $res2);
var_dump($res);
var_dump($res1);
var_dump($res2);
?>

当通过应用程序执行时(当然,应用程序以www-data的形式运行),这将返回127错误代码。

当通过这个命令执行时,它运行得完美无缺的sudo -u root php testExec.php

通过此命令执行时,它再次返回127个错误代码sudo -u www-data php testExec.php

原题

在php中尝试使用exec命令时,我似乎只能得到错误代码127。我正在尝试使用https://github.com/rialto-php/puphpeteer包来生成pdfs,它运行得完美无缺,但我无法找到导致它现在失败的原因。

我一直使用/usr/local/.nvm/versions/node/v14.2.0/bin/node作为节点的路径,但我也尝试在这里复制它,/node/v16.14.2/bin,这样我就可以授予整个目录结构执行权限。在任何一个/两个地方,节点都属于www-data ( php运行的用户),并且具有执行权限(755)。

从命令行运行'/node/v16.14.2/bin/node' '/var/www/html/vendor/nesk/puphpeteer/src/get-puppeteer-version.js' ( puphpeteer生成的初始命令)工作正常,并返回预期的结果"5.5.0",因此节点在那里,并且可执行,并且存在get-傀儡-版本脚本。

在排除故障后,我决定只测试exec,发现这对任何命令都不起作用。我尝试过只运行exec("date");exec("echo EXEC"),它们也返回相同的退出代码127。

disable_functions ini设置为空(通过ini_get('disable_functions')的空结果确认)。安全模式未启用(通过ini_get('safe_mode')的假结果确认)。

如果有人有任何洞察力,为什么执政者根本就不会工作,那就太好了!

环境:

Ubuntu 18.04.4

PHP8.1

EN

Stack Overflow用户

回答已采纳

发布于 2022-04-19 17:22:29

所以经过进一步的调查..。我发现这确实是一个权限问题。我已经检查了该节点,/bin文件夹中的所有内容都具有适当的执行权限。

我错过的(也不确定它是如何更改的)是/bin文件夹本身没有适当的执行权限。加上这些马上就解决了我的问题。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71886521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档